Why Are My Modbus Values Wrong Even Though Communication Works?
When replies arrive but numbers are wrong, check register offsets, data types, word order, signed values and scaling, with a decoded register.
Controls & Instrumentation · Last reviewed
If communication works, the device is answering and the link is healthy. A wrong value then means the PLC reads the right bits and interprets them wrongly. There are a small number of ways this happens, and each leaves a recognizable pattern.
Writing to a Modbus register changes the process. When testing, use read-only functions first, and make any write only with the approval of the system owner and with the process in a safe state.
Related tools and labs
Calculators, labs and simulators are part of the All-Access Pass.
More troubleshooting
- Why Is a 4-20 mA Loop Reading Wrong or Stuck?
- Why Does a PLC Output Not Turn On the Field Device?
- Why Does My PLC Lose Communication with Modbus Devices?
- Why Does My PID Loop Keep Oscillating?
- Why Does My Control Valve Hunt or Stick?
- Why Is My Temperature Sensor Reading Incorrectly?
- Why Is an Electric Motor Overheating?
- Why Does a Circuit Breaker Keep Tripping?
Questions
What is byte and word order?
A 32-bit value takes two 16-bit registers. Devices differ in which register holds the high half, and within a register which byte comes first. Many PLCs let you choose the order.
Why do manuals use 40001?
Modbus documentation often uses a convention that numbers holding registers from 40001. The protocol address is that number minus 40001. Tools differ in which they expect.
How can I confirm the scaling?
Compare against a reading on the device display, or against a calibrated reference, at two different values.
Educational material. Examples use simplified, hypothetical inputs and are not a design, a construction document or professional engineering advice. Confirm requirements with the codes and standards adopted where the work is built and with a licensed engineer.