This thread explains a common addressing mistake when reading control box analog outputs over Modbus TCP.
Status
Known answer.
Symptoms
- AO0 is set to a value in the program, for example 10.
- A Modbus read at address 100 returns 0.
- The connection status looks fine.
Cause and fix
- Function code 0x03 (read holding registers) reads back the register written by write holding register. It does not return the control box AO0 value.
- Use function code 0x04 (read input registers) at address 100 to read AO0.
Two Fairino robots on Modbus TCP
The same check helps when two robots exchange data. One robot must be the slave and the other the master, with the register setup matching on both sides. A green connection light does not prove the data is correct. Users reported shifted addresses, so write a known test value and read it back first.
Please reply with
- Robot model and software version
- Function code and address you use
- Master device or PLC
- Expected and received value