reading/writing 时无法连接到 ModbusTcpClient 的 modbus 错误

modbus error failing to connect to ModbusTcpClient when reading/writing

最近我的任务涉及读取 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 Error: [Connection] Failed to connect[ModbusTcpClient(localhost:502)]"

我希望输出可以简单地写入 Modbus 而不需要任何东西,而不必在另一端监听,但我在尝试 connect/write 时不断收到错误消息。 (很抱歉,如果这很难理解,我的大脑到处都是,而且我对 Modbus 非常陌生)。

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

你可以看看examples

您可能还需要在防火墙中为端口 502 添加规则。如果您在 Linux 上,您可以将两端的端口切换为更大的数字,例如 5020,以避免此问题。