python - 多个服务器 pymodbus 连接问题 Modbus TCP

标签 python modbus modbus-tcp

当我尝试使用 pymodbus 和 raspberry pi 读取保持寄存器时遇到问题。我似乎无法同时连接两个服务器/从属设备(一个或另一个都可以工作,但在一起,我无法从两个设备读取寄存器)。这些连接问题似乎是导致错误消息的原因。也许我在这里缺少一些简单的东西?

from pymodbus.client.sync import ModbusTcpClient
import time

#modbus connection to 1st device

client1 = ModbusTcpClient('172.168.1.9', port=659)
connection1 = client1.connect()

#modbus connection to 2nd device

client2 = ModbusTcpClient('192.168.1.8', port=502)
connection2 = client2.connect()

#read registers of 1st device
request1 = client1.read_holding_registers(11,27) #covert to float
result1 = request1.registers
print (result1)
close = client1.close()

#read registers of 2nd device
request2 = client2.read_holding_registers(1,7) #covert to float
result2 = request2.registers
print (result2)
close = client2.close()

这是我收到的错误信息:

[18, 57, 48, 984, 31, 1, 16, 1, 2, 78, 87, 4, 4, 0, 299, 65517, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Traceback (most recent call last):
  File "gpsonce", line 20, in <module>
    request2 = client2.read_holding_registers(1,7) #covert to float
  File "/usr/local/lib/python2.7/dist-packages/pymodbus-1.2.0-py2.7.egg/pymodbus/client/common.py", line 109, in read_holding_registers
    return self.execute(request)
  File "/usr/local/lib/python2.7/dist-packages/pymodbus-1.2.0-py2.7.egg/pymodbus/client/sync.py", line 82, in execute
    raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[192.168.1.8:502]

我知道如果我将它们分解成不同的脚本并同时运行它们,也会出现相同的错误。

独立地,就像一次运行一个,它们正确执行,没有错误。

非常感谢大家的帮助!

最佳答案

我在 PC 上试过没有问题。你确实有不需要的行:

connection1 = client1.connect()
..
connection2 = client2.connect()

也许这就是问题所在......

关于python - 多个服务器 pymodbus 连接问题 Modbus TCP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118083/

相关文章:

python - Django,Modelform不呈现

python - 有效地采用稀疏数据的移动平均值并在python中过滤高于阈值

python - 导入错误 : cannot import name cbook

Android Modbus RTU 库

algorithm - 将数字集拆分为定义的 "interval length"算法中尽可能少的子集

python - 如何使用正则表达式在字符串中查找具有特定规则的子字符串?

java - Jamod(modbus,Java)大师编程,为什么会重复事务?

python - 如何修复 PyModbus 无法通过 IME 使用 IF96015 接口(interface)解码响应错误

modbus - 如何使用libmodbus计算出 'read/write'函数?(c代码)

modbus - 为什么我们需要 Modbus 中的输入寄存器、线圈位和输入位