Pymodbus 读取寄存器连续读取失败

Pymodbus read register continuosly in read time fails

我有一个用于测量机器人轴运动的智能传感器,我会使用 modbus 读取每个读取位置的值(每 100 毫秒读取一次值) 我尝试使用 pymodbus:

slave = ModbusSerialClient(port='/dev/ttyAMA4', parity=N, baudrate=9600, timeout=1)
slave.connect()

while True:
    print(slave.read_input_registers(300013, 2, unit=10))
    time.sleep(0.01)

问题是,我的脚本启动并读取第一个值,但在 5.6 秒后退出,因为对设备的请求太多(设备不响应​​) 有一种方法可以调用 modbus 设备并在“实时”中获取值,例如,由于连续调用量大,每毫秒都没有问题?

非常感谢

  1. 您的代码大约每 10 毫秒而不是 100 毫秒读取一次值。打字错误?
  2. 由于您的目的是“实时”获取值,但是您可以达到多快主要取决于传感器,如果您可以从传感器数据表中找到规格,例如最小轮询间隔,请相应编码,否则,您可以继续使用不同的间隔值进行测试,直到您满意为止。