You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The protocol is simply Modbus RTU (the serial protocol) or also just called "TELNET" tunneled over TCP at port 8080.
To read data "holding register" are read (that is the $03 byte after the Unit-ID $01, which is the first byte). That's also the reason for the Modbus CRC at the end of the package. I would almost bet money on that the RS-422 Modbus port is using identical registers to communicate with the inverter. The registers value are 16-bit in MSB (high byte first), that is important e.g. for the serial number, which is stored in the registers 0 to 8 and therefore 18 ASCII characters long.
This also should make documenting it easier, because just the registers need to be documented – and not bytes in a buffer.
Here a minimal Python example to read the first 102 registers:
#!/usr/bin/env python3
from pymodbus.client.tcp import ModbusTcpClient as ModbusClient
from pymodbus.transaction import ModbusRtuFramer as ModbusFramer
client = ModbusClient(host='192.168.16.254', port=8080, framer=ModbusFramer)
client.connect()
print(client.read_holding_registers(0,102, slave=1).registers)
client.close()
The text was updated successfully, but these errors were encountered:
The protocol is simply Modbus RTU (the serial protocol) or also just called "TELNET" tunneled over TCP at port 8080.
To read data "holding register" are read (that is the $03 byte after the Unit-ID $01, which is the first byte). That's also the reason for the Modbus CRC at the end of the package. I would almost bet money on that the RS-422 Modbus port is using identical registers to communicate with the inverter. The registers value are 16-bit in MSB (high byte first), that is important e.g. for the serial number, which is stored in the registers 0 to 8 and therefore 18 ASCII characters long.
This also should make documenting it easier, because just the registers need to be documented – and not bytes in a buffer.
Here a minimal Python example to read the first 102 registers:
The text was updated successfully, but these errors were encountered: