我正在使用pymodbus读取Wago 750-881 PLC上的寄存器。我也在Modbus Poll实用程序上读取相同的寄存器,以及HMI。 Modbus轮询和HMI正在正确读取,但pymodbus程序不正确。
以下是代码:
from pymodbus.client.sync import ModbusTcpClient
c = ModbusTcpClient(host="192.168.1.20")
chk = c.read_holding_registers(257, 1, unit = 1)
response = c.execute(chk)
print response.getRegister(0)
以下是运行代码的响应:
>>> runfile('C:/Users/Mike/modbustest2.py', wdir='C:/Users/Mike')
18283
正确的输出应该是2043.它还在其他寄存器上读取相同的数字“18283”。我知道问题必须与代码有关,因为我可以从其他程序/设备读取寄存器。任何帮助表示赞赏。
答案 0 :(得分:0)
您可能正在阅读错误的注册表,或错误的单元ID,或两者的某种组合。
如果您使用Wireshark捕获第三方软件和您自己的软件正在做什么,您应该能够很快发现差异。