What Is Modbus?

How can a temperature sensor, an electricity meter, and a control system exchange information even though they come from different manufacturers? In industrial and building automation, the answer is often Modbus.

An Introduction to Industry’s Common Language

Modbus is a communication protocol used to read measurements, transfer status information, and send control commands between devices. Developed by Modicon in 1979, it has become a familiar feature in everything from manufacturing plants to ventilation systems.

How Modbus Works

Modbus follows a simple pattern: a client sends a request, and a server responds. The client might be a supervisory control system, while the server could be an electricity meter or a temperature controller. Older documentation often uses the terms master and slave for these roles.

A typical exchange might look like this:

  1. The control system asks an electricity meter for the current power reading.
  2. The meter retrieves the value from its registers.
  3. The meter sends a response.
  4. The control system interprets the value and displays it to the operator.

The client can also write values, for example to change a setpoint or activate an output, provided the device supports it.

Registers: The Key to the Information

Modbus organizes information into four basic data types:

Data type Contents Normal access
Coils Binary values, such as on/off Read and write
Discrete inputs Binary status values Read only
Input registers 16-bit registers, such as measurements Read only
Holding registers 16-bit registers, such as settings Read and write

‍

The device manufacturer determines what each address means. One register might contain a temperature, while another indicates an alarm or an operating mode.

This makes the device’s register map essential. It specifies which addresses are used, how values should be interpreted, and which functions the device supports.

For example, a temperature reading might be stored as the integer 235. If the register map specifies a scaling factor of 0.1, the temperature is 23.5 °C. Larger numbers and floating-point values may span multiple registers, so their order must also be interpreted correctly.

‍

Read more