Python 通信 modbus tcp 与 plc saia sbc

Posted

技术标签:

【中文标题】Python 通信 modbus tcp 与 plc saia sbc【英文标题】:Python comunication modbus tcp with plc saia sbc 【发布时间】:2020-05-16 23:29:48 【问题描述】:

我正在尝试通过Modbus TCP通信读取saia sbc PCD2 M4_x plc的寄存器和标志。我知道 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 没有该状态,即使我在开始编写代码时更改它,结果仍然保持不变。即使我改变地址。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Python 通信 modbus tcp 与 plc saia sbc的主要内容,如果未能解决你的问题,请参考以下文章

ModBus(RTU TCP UDP通信)及利用socket通信(DTU)实现Modbus-RTU通信协议

modbus协议与tcp协议有啥关系?

modbus tcp 到 rtu的转换

Modbus TCP和Modbus Rtu的区别

使用 Ruby 的 ModBus TCP 通信:未能实现 HelloWorld

python 基于modbus_tk库实现modbusTCP 主站和从站[非常详细]