我正在尝试构建一个使用raspberry pi和modbus rtu读取实时数据的记录器。所以我能够读取实时值,即每秒数据。但我只能在有限的时间内阅读它,比如半小时左右。但我希望全年都能读取传入的数据。发生了什么事情是在它读取一段时间后出现通信错误或modbus rtu错误,例如值错误r I / O错误。代码不会进一步执行,因此停止读取数据。在这种情况下可能涉及的错误是什么?什么是可能发生的编码错误,这些错误不允许我24小时读取数据?请帮忙!
答案 0 :(得分:2)
您应该将读取数据的部分代码包装到“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。