最近,我负责一个涉及读取Modbus数据的项目,特别是pymodbus软件包。在进入该项目之前,我想用python模拟一些Modbus数据的读写(无需使用机器)。使用他们主页上的示例数据,我尝试使用客户端进行写入,但是遇到Modbus错误

香港专业教育学院试图调查此事,看看我可以挖掘出什么,想知道我是否需要服务器来读写。但是我不确定我在套接字和串行方面的经验,我只需要使用正确的端口建立连接即可简单地编写(但是我知道Modbus是不同的)。

这是代码

client = ModbusTcpClient('localhost')
client.write_coil(1, True)
result = client.read_coils(1,1)
print(result.bits[0])
client.close()


这是我的错误“ pymodbus.exceptions.ConnectionException:Modbus错误:[连接]无法连接[ModbusTcpClient(localhost:502)]”

我希望输出可以简单地编写Modbus而不需要任何内容​​,而不必在另一端进行侦听,但是在尝试连接/写入时,我总是收到错误消息。 (很抱歉,如果很难理解,我的大脑无处不在,一般来说,我对Modbus都是陌生的)。

最佳答案

如果要发送Modbus查询,但没有任何Modbus硬件,则需要在计算机上运行虚拟Modbus服务器。

您可以看一下examples

您可能还需要为端口502的防火墙添加一条规则。如果您使用的是Linux,则可以将端口两端的端口号切换为更高的值,例如5020,以避免此问题。

10-02 18:41