Modbus - Knowledge Base

General Modbus wiki page covering concepts, addressing, data representation, and integration pitfalls.

Categories:

What Modbus Is

Modbus is an application-layer industrial protocol used for point-oriented data exchange between a client (master) and one or more servers (slaves). It is widely used in building automation gateways and field devices due to simple framing and broad vendor support.

Core Variants

VariantTransportTypical Use
Modbus RTURS-485 serialField bus segments, multidrop trunks
Modbus TCPEthernet/TCPPlant or BAS IP backbone integration

Data Model

Modbus exchanges values by register/coil address, not semantic object names.

  • Coils: discrete read/write bits
  • Discrete Inputs: discrete read-only bits
  • Holding Registers: read/write 16-bit words
  • Input Registers: read-only 16-bit words

Addressing Notes

[!NOTE] Modbus literature often shows one-based reference numbers (for example 40001) while many software tools require zero-based offsets.

Integration quality depends on explicitly documenting whether each mapping uses reference-style or offset-style addressing.

Word/Byte Order

For 32-bit and 64-bit values, interoperability depends on word order and byte order alignment between source and destination systems.

[!WARNING] Most field issues labeled as “bad scaling” are actually endianness mismatch.

Implementation Checklist

  1. Confirm register map revision with vendor.
  2. Confirm address base convention (reference vs offset).
  3. Confirm datatype and signedness.
  4. Confirm byte/word ordering for multi-register values.
  5. Validate at least one known-good engineering value.

Common Problems

  • Off-by-one addressing errors — Modbus literature shows 1-based reference numbers (e.g. 40001) but most tools require 0-based offsets. This is the most common mapping error. See Modbus Addressing & Register Reference for a full breakdown.
  • Wrong value or bad scaling — Usually an endianness mismatch, not a scaling factor error. See Modbus Data Types & Byte Order Reference to identify the correct byte/word order.
  • No response from device — Serial parameter mismatch, duplicate Slave ID, or wiring fault. See Modbus Troubleshooting Guide for a step-by-step diagnosis workflow.
  • Register map doesn’t match device — Firmware revision mismatch. Always confirm the register map revision against the installed firmware version. See How to Read a Modbus Register Map.

Need more help?

If this page does not resolve the issue, contact Chipkin support with the product model, protocol details, and any diagnostics you have already captured.

Open Chipkin Support