1

我在使用 pymodbus、python 2.7 和 Windows 从我的 WAGO 750-881 PLC 读取寄存器时遇到了一些问题。我可以使用 Modbus Poll 实用程序很好地阅读,所以我认为问题出在我的 python 代码中。使用以下代码我得到错误:runfile('C:/Users/Mike/modbustest2.py', wdir='C:/Users/Mike') Exception Response(131, 3, IllegalValue)

from pymodbus.client.sync import ModbusTcpClient

c = ModbusTcpClient(host="192.168.1.20")
chk = c.read_holding_registers(257,10, unit = 1)
response = c.execute(chk)        
print response

我意识到我的代码应该阅读print response.registers,但.registers扩展似乎对我不可用。print response.registers抛出此错误:AttributeError: 'ExceptionResponse' object has no attribute 'registers'我只包含该print response错误,因为我认为它可能在某些方面有所帮助。有谁知道问题可能是什么?

4

1 回答 1

1

您将返回一个 ExceptionResponse 对象,异常代码为“IllegalValue”。

最可能的原因是您正在读取 PLC 认为不存在的寄存器。

当然,这个对象没有 registers 属性,因为它不是 ReadHoldingRegisters 响应。

于 2016-09-09T17:39:39.377 回答