2

最近我的任务是一个涉及读取 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 非常陌生)。

4

1 回答 1

3

如果你想发送 Modbus 查询并且你没有任何 Modbus 硬件,你需要在你的计算机上运行一个虚拟的 Modbus 服务器。

你可以看看例子

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

于 2019-09-10T12:00:35.410 回答