小编典典

用pymodbus读取寄存器

python

我对Modbus和PyModBus非常陌生,但是我花了很多时间尝试阅读和试验它。如果有人能指出正确的方向,我将不胜感激。

我在寄存器40001、40003、40005和40007上分别有一个具有距离,速度,加速度和减速度的驱动器。最初,我可以使用client.write_register(0000,n)写入距离寄存器。在尝试写入速度后,驱动器开始陷入混乱和故障状态,并以应有的速度旋转10倍。但是,真正的优先级是读取寄存器。我正在尝试从这些寄存器中读取数据,并且具有零运气。我尝试使用

request = client.read_holding_registers(0000,4)
response = client.execute(request)
print response

但是,我得到的只是“ ReadRegisterResponse(0)”。

因此,我的首要任务是尝试从这些寄存器中读取值…有什么建议吗?(顺便说一下,这是通过TCP)


阅读 218

收藏
2021-01-20

共1个答案

小编典典

尝试:

 response = client.read_holding_registers(0x00,4,unit=1)

其中单位值为从站的设备ID。

要打印全部:

print response.registers

也可以直接获取一个值(例如第三个寄存器):

print response.getRegister(2)

要么

print response.registers[2]
2021-01-20