Python通过TCP读取Modbus

时间:2018-08-13 10:00:07

标签: python modbus pymodbus3

我有一个modbus设备,并且已将modbus RTU连接到以太网转换器(,而没有将modbus RTU连接到modbus TCP转换器)。

我遇到的所有模块都可以读取常规的Modbus RTU,Modbus TCP,Modbus ASCII。但是我还没有看到任何模块可以通过以太网端口读取modbus。

当我使用ModScan进行测试时,选择Remote TELNET Server可以看到数据。

有没有办法我可以使用python读取数据?

1 个答案:

答案 0 :(得分:0)

这是常见的情况,设备是远程串行/ TCP转换器。 MOXA有很多吨。

您应该了解:

  • 'modbus rtu'-这是串行modbus,包含data + crc16
  • 'modbus tcp'-这是TcpHeader [6个字节] +数据。
  • “ modbus 基于TCP的rtu ”-这是您的情况。

标准的modbus tcp / rtu转换设备不仅更改物理(例如以太网/ rs485),而且更改协议本身,删除tcp标头并添加crc。

简单的串行/ tcp转换器(就像您一样)不会修改协议。

为tcp-client手动指定rtu-framer后,您可以使用可爱的PyModbus。

client = ModbusClient('localhost', port=5020, framer=ModbusRtuFramer)

https://pymodbus.readthedocs.io/en/latest/source/example/synchronous_client.html