/ / protocolo de comunicación modbus en python - python-2.7, modbus

protocolo de comunicación modbus en python - python-2.7, modbus

Estoy tratando de construir un registrador que lea lo realdatos de tiempo usando raspberry pi y el modbus rtu. Así que puedo leer los valores en tiempo real, es decir, cada segundo dato. Pero solo puedo leerlo por un tiempo limitado, digamos media hora más o menos. Pero quiero leer los datos entrantes todo el día, todo el año. Lo que sucede es después de que se lee durante un tiempo y hay un error de comunicación o un error de rtu de modbus, como el error de valor r error de E / S. El código no se ejecuta más y, por lo tanto, deja de leer los datos. ¿Cuáles son los errores que pueden estar involucrados en tales casos? ¿Cuáles son todos los errores de codificación que pueden ocurrir y que no me permiten leer datos durante 24 horas? ¡por favor ayuda!

Respuestas

2 para la respuesta № 1

Debería envolver su parte del código donde lee los datos, en un bloque "try-except". Entonces su programa puede imprimir un mensaje de error en lugar de fallar.

He escrito sobre esto en la documentación de mi biblioteca MinimalModbus Python: https://minimalmodbus.readthedocs.org/en/master/usage.html#handling-communication-errors

Por ejemplo, en lugar de usar:

print(instrument.read_register(4143))

Utilizar:

try:
print(instrument.read_register(4143))
except IOError:
print("Failed to read from instrument")
except ValueError:
print("Instrument response is invalid")

Puedes leer más sobre las excepciones en el Tutorial de Python: Manejo de excepciones.