sanny32 / OpenModScan

Open ModScan is a Free Modbus Master (Client) Utility
MIT License
194 stars 26 forks source link

Offset +1 on all registers #2

Closed MarkoBursic closed 1 year ago

MarkoBursic commented 1 year ago

If I read holding register Address 0001 it actually tries to read register 0, so exception is throwed. To read register 1 you have to set Address to 0002. It applies to all kind of registers.

image

image

sanny32 commented 1 year ago

Please let me know from what register 0 or 1 address space started in your device.

MarkoBursic commented 1 year ago

After examination of the device (Corrigo HVAC controller) and reading the Modbus protocol specs I came to conclusion that maybe the device protocol is implemented in incorrect way. For example, from manual the outdoor temperature is input register 1, translated in modbus space this shall be input register 30001, then subtract 30001 as per modbus specs, the query address shall be 0000 (blue numbers in Wireshark debug), but it throws error, this for any range of registers (coils, contacts, input registers, holding registers).

Short: Closed, Modbus device incorrectly implemented.