Understanding Modbus Data Types for Analog Signals: What’s the Difference?

Modbus is one of the most widely used communication protocols in industrial automation. It’s simple, open, and effective but when it comes to analog data, understanding the different data types and how they’re transmitted is crucial for engineers, technicians, and system integrators alike.
In this guide, we’ll break down the Modbus data types for analog values, explain their structure, show how to interpret them, and clarify the differences so you can configure, read, and troubleshoot Modbus networks with confidence.
What is Modbus?
Modbus is a master-slave (client-server) protocol developed by Modicon (now Schneider Electric) for industrial control systems. It supports communication over:
- RS-232
- RS-485
- Ethernet (Modbus TCP/IP)
Modbus organizes data into different register types, each with a specific purpose. When dealing with analog signals (like temperature, pressure, or flow), Modbus uses Input Registers (30001–39999) or Holding Registers (40001–49999).
Common Modbus Analog Data Types
Analog data can be represented in various formats depending on the data size (16-bit or 32-bit) and data structure (signed/unsigned, integer/float). Let’s go through the most common ones:
1. 16-bit Integer (INT or UINT)
- Size: 1 register (16 bits)
- Range:
- Signed INT: -32,768 to 32,767
- Unsigned INT: 0 to 65,535
- Use Case: Simple analog values like pressure, speed, or percentage
2. 32-bit Integer (INT32 or UINT32)
- Size: 2 consecutive registers (32 bits)
- Range:
- Signed: -2,147,483,648 to 2,147,483,647
- Unsigned: 0 to 4,294,967,295
- Use Case: High-resolution values or accumulators
- Note: Ensure proper byte and word order (endianness)
3. 32-bit IEEE Floating Point (FLOAT)
- Size: 2 registers
- Format: IEEE 754 standard
- Use Case: Analog signals like temperature, flow, voltage, current
- Precision: Higher than integer values
4. BCD (Binary Coded Decimal)
- Size: Typically 1 or 2 registers
- Use Case: Legacy systems; values displayed in decimal but stored in binary-coded format
5. Scaled Integer
- Size: 1 register
- Use Case: Value multiplied by a scale factor (e.g., 253 represents 25.3°C)
- Advantage: Saves register space
Register Types Used for Analog Data
| Register Type | Code Range | Read/Write | Used For |
|---|---|---|---|
| Holding Register | 40001–49999 | Yes | Analog input/output values |
| Input Register | 30001–39999 | No | Read-only analog inputs |
➡️ Most analog sensor readings are placed in Input Registers, while analog output setpoints are usually placed in Holding Registers.
Word & Byte Ordering (Endianness)
When reading 32-bit values across 2 registers, the order matters:
- Big-Endian: High word first, then low word
- Little-Endian: Low word first, then high word
- Swapped Words: Some devices use mixed ordering
📌 Always refer to the device’s Modbus map to confirm the byte and word order.
Example: Reading a 32-bit Float
You want to read temperature data from Holding Registers 40010 and 40011:
- Value: 0x41A00000 (in hex)
- Interpreted as IEEE 754 FLOAT = 20.0°C
Use a Modbus client like ModScan, Modbus Poll, or a PLC function block with correct data decoding.
Practical Tips for Engineers
- Always read the device documentation – Different vendors use different formats.
- Use Modbus simulators to test the communication and validate byte order.
- Tag and scale values correctly in SCADA or HMI systems.
- Verify polling intervals to avoid overwhelming the Modbus network.
- Log raw register values when troubleshooting for easier decoding.
Summary Table: Modbus Analog Data Types
| Data Type | Register Size | Value Type | Use Case |
| INT16 | 1 register | Integer | Pressure, speed, % readings |
| UINT16 | 1 register | Integer | Counters, status values |
| INT32 | 2 registers | Integer | Flow meters, energy counters |
| UINT32 | 2 registers | Integer | Large counters, timestamps |
| FLOAT (IEEE) | 2 registers | Float | Temperature, voltage, flow |
| SCALED INT | 1 register | Integer | Scaled sensor readings |
📌 Final Thoughts
Choosing the correct Modbus analog data type is essential for accurate and reliable data exchange. Whether you’re dealing with a pressure transmitter, a temperature controller, or a VFD, knowing how to interpret and scale analog signals ensures better performance, fewer errors, and easier integration.
