我有一个modbus设备,并且已将modbus RTU连接到以太网转换器(,而没有将modbus RTU连接到modbus TCP转换器)。
我遇到的所有模块都可以读取常规的Modbus RTU,Modbus TCP,Modbus ASCII。但是我还没有看到任何模块可以通过以太网端口读取modbus。
当我使用ModScan
进行测试时,选择Remote TELNET Server
可以看到数据。
有没有办法我可以使用python读取数据?
答案 0 :(得分:0)
这是常见的情况,设备是远程串行/ TCP转换器。 MOXA有很多吨。
您应该了解:
标准的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