Python通过TCP读取modbus

Python通过TCP读取modbus,python,modbus,pymodbus3,Python,Modbus,Pymodbus3,我有一个modbus设备,并将modbus RTU连接到以太网转换器(,而不是modbus RTU连接到modbus TCP转换器) 我遇到的所有模块都可以读取普通Modbus RTU、Modbus TCP、Modbus ASCII。但我还没有看到任何模块通过以太网端口读取modbus 当我使用ModScan进行测试时,我可以在选择Remote TELNET Server时看到数据 是否有一种方法可以使用python读取这些数据???这是一种常见情况,设备是远程串行/tcp转换器。艾条有好几吨那

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

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

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


是否有一种方法可以使用python读取这些数据???

这是一种常见情况,设备是远程串行/tcp转换器。艾条有好几吨那么重

你应该明白:

  • “modbus rtu”-这是串行modbus,包含数据+crc16
  • “modbus tcp”-这是TcpHeader[6字节]+数据
  • “tcp上的modbusrtu”-这是您的情况
标准modbus tcp/rtu转换设备不仅改变了物理(以太网/rs485 eg),而且还改变了协议本身,删除了tcp头并添加了crc

简单的串行/tcp转换器(如您所拥有的)不会修改协议

手动为tcp客户端指定rtu成帧器后,可以使用可爱的PyModbus

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

您需要有关此“以太网转换器”的更多信息,基本上是使用哪种协议?它是基于UDP还是基于TCP?使用哪个端口号?转换器基于TCP。我没试过端口23和5001协议?(我知道这不是Modbus TCP)。有没有手册,零件号?@Ronaldo我在用Moxa NPort 5110()。网站上只说了
串行到以太网解决方案
,所以我不太了解它的工作原理,我想按顺序读取数据寄存器(以防tcp删除该格式),因为我想读取不同寄存器中的各种参数