Modbus TCP客户端无法连接

时间:2018-05-27 13:04:12

标签: pymodbus3 pymodbus

背景资料:

我正在尝试从能量计读取数据。我已经将gprs调制解调器连接到仪表(通过rs485)端口。此调制解调器通过tcp-ip协议将数据发送到指定的服务器和端口。在服务器上(aws ec2实例)我可以看到设备的连接。

问题:

当我尝试使用PyModbus连接到此设备时,我无法打开连接。

from pymodbus.client.sync import ModbusTcpClient as Modbusclient
client= Modbusclient(host=<internal ip of the connection>, port=5025)
if client.connect():
    print("Connected")
else:
    print("Not Connected")

响应总是&#34;未连接&#34;。

我确保a)端口是开放的。 b)IP地址在服务器上列入白名单

为什么我无法连接?我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

在我的特定情况下,gprs调制解调器充当了串行tcp网关。所以我必须创建一个串口,然后连接到它。我最终做的是:

  1. 使用socat命令
  2. 在Linux上创建一对串行端口(例如p1和p2)
  3. 创建一个简单的tcp监听器(使用python中的套接字库)
  4. 将所有数据从tcp端口转发到p1
  5. 从pymodbus.client.sync
  6. 导入ModbusSerialClient
  7. 使用Modbus串行客户端连接到P2。