python中的modbus通信协议
modbus communication protocol in python
我正在尝试构建一个使用 raspberry pi 和 modbus rtu 读取实时数据的记录器。所以我能够读取实时值,即每秒数据。但我只能在有限的时间内阅读它,比如半小时左右。但是我想整年整年读取传入的数据。发生的事情是在它读取一段时间后出现通信错误或 modbus rtu 错误,例如值错误 r I/O 错误。代码不会进一步执行,因此会停止读取数据。在这种情况下可能涉及哪些错误? 24 小时内无法读取数据的所有可能发生的编码错误是什么?请帮助!
您应该将读取数据的代码部分包装到 "try-except" 块中。然后您的程序可以打印错误消息而不是崩溃。
我在我的 MinimalModbus Python 库的文档中写过这个:https://minimalmodbus.readthedocs.org/en/master/usage.html#handling-communication-errors
例如,而不是使用:
print(instrument.read_register(4143))
使用:
try:
print(instrument.read_register(4143))
except IOError:
print("Failed to read from instrument")
except ValueError:
print("Instrument response is invalid")
您可以在 Python 教程中阅读有关异常的更多信息:Handling Exceptions。
我正在尝试构建一个使用 raspberry pi 和 modbus rtu 读取实时数据的记录器。所以我能够读取实时值,即每秒数据。但我只能在有限的时间内阅读它,比如半小时左右。但是我想整年整年读取传入的数据。发生的事情是在它读取一段时间后出现通信错误或 modbus rtu 错误,例如值错误 r I/O 错误。代码不会进一步执行,因此会停止读取数据。在这种情况下可能涉及哪些错误? 24 小时内无法读取数据的所有可能发生的编码错误是什么?请帮助!
您应该将读取数据的代码部分包装到 "try-except" 块中。然后您的程序可以打印错误消息而不是崩溃。
我在我的 MinimalModbus Python 库的文档中写过这个:https://minimalmodbus.readthedocs.org/en/master/usage.html#handling-communication-errors
例如,而不是使用:
print(instrument.read_register(4143))
使用:
try:
print(instrument.read_register(4143))
except IOError:
print("Failed to read from instrument")
except ValueError:
print("Instrument response is invalid")
您可以在 Python 教程中阅读有关异常的更多信息:Handling Exceptions。