Modbus TCP 客户端未连接

Modbus TCP Client does not connect

背景资料:

我正在尝试从我的电表读取数据。我已将 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")

响应总是 "Not Connected"。

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

为什么我无法连接?我在这里错过了什么?

在我的特殊情况下,gprs 调制解调器充当 serial-over-tcp gateway.So 我必须创建一个串行端口然后连接到它。我最终做的是:

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