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 我必须创建一个串行端口然后连接到它。我最终做的是:
- 使用 socat 命令在 Linux 上创建一对串行端口(例如 p1 和 p2)
- 创建一个简单的 tcp 侦听器(使用 python 中的套接字库)
- 将所有数据从tcp端口转发到p1
- 从 pymodbus.client.sync
导入 ModbusSerialClient
- 使用 Modbus 串行客户端连接到 P2。
背景资料:
我正在尝试从我的电表读取数据。我已将 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 我必须创建一个串行端口然后连接到它。我最终做的是:
- 使用 socat 命令在 Linux 上创建一对串行端口(例如 p1 和 p2)
- 创建一个简单的 tcp 侦听器(使用 python 中的套接字库)
- 将所有数据从tcp端口转发到p1
- 从 pymodbus.client.sync 导入 ModbusSerialClient
- 使用 Modbus 串行客户端连接到 P2。