Python 3.x Python通信modbus tcp与plc saia sbc

Python 3.x Python通信modbus tcp与plc saia sbc,python-3.x,tcp,pymodbustcp,easy-modbus,Python 3.x,Tcp,Pymodbustcp,Easy Modbus,我正在尝试读取saia sbc PCD2 M4x的寄存器和标志​​plc通过Modbus TCP通信。我知道plc的IP地址和通信端口,但是每次读取标志或寄存器时,我总是得到不同的值​​从那些场景中。我确信这不是modbus通信中经常出现的寄存器偏移问题。我写的代码是列出的代码,也是结果 from easymodbus.modbusClient import ModbusClient modbusclient = ModbusClient(IP_address, Port) modbusclie

我正在尝试读取saia sbc PCD2 M4x的寄存器和标志​​plc通过Modbus TCP通信。我知道plc的IP地址和通信端口,但是每次读取标志或寄存器时,我总是得到不同的值​​从那些场景中。我确信这不是modbus通信中经常出现的寄存器偏移问题。我写的代码是列出的代码,也是结果

from easymodbus.modbusClient import ModbusClient
modbusclient = ModbusClient(IP_address, Port)
modbusclient.connect()
read = modbusclient.read_coils(0, 10)
print(read)
modbusclient.close()

read=[False, False, True, False, True, True, False, False, False, False]

但是,标志0到10没有这种状态,即使我在启动编写的代码时更改了它,结果仍然是一样的。即使我更改了地址。

您必须通过Modbus进行通信吗? 我对此不熟悉,但我使用另一种方法。 Saia PCD确实接受非常容易拨打的CGI电话。 在他们的网站上有一个很好的Web服务器和CGI文档。 如果您考虑使用这种通信方式,我可以帮助您编写一个用于读写寄存器的库,并从任何PCD读取错误。