Modbus Addressing Explained: A Simple Guide for HVAC Installers
In this article, you will learn:
· What Is a Modbus Address?
· How to Set a Modbus Address on a Thermostat
· Common Modbus Addressing Mistakes
· Modbus Addressing Explained: Communication Parameters and Function Codes
· Troubleshooting Modbus Address Issues
Click any topic above to jump directly to that section.
What Is a Modbus Address?
This modbus addressing explained guide breaks down the basic rules for device identification on field networks.
In a Modbus RTU network, each device must have a unique address so the master device — typically a building management system (BMS) or PLC — can communicate with it. Think of it like a room number in a hotel: the master knows which room to send a command to, and each room only responds when its number is called.
Modbus addresses typically range from 1 to 247. Address 0 is reserved for broadcast messages (sent to all devices), and addresses above 247 are not used in standard Modbus RTU networks.
When multiple thermostats or controllers are connected on the same RS485 bus, each one must have a different address. If two devices share the same address, the master will receive conflicting responses and communication will fail.
This Modbus addressing explained guide covers core rules for HVAC integration. Understanding Modbus register addressing helps installers read and configure the Modbus register map correctly and avoid frequent communication faults on RS485 networks.
How to Set a Modbus Address on a Thermostat
On most Modbus thermostats, the address is set through the device menu. The exact steps may vary by model, but the general process is similar.
Example: Setting the Address on a Typical FCU Thermostat
Press the Power/On-Off key to save and exit.
1. Enter advanced settings mode – With the thermostat in the power-off state, press and hold the Mode key and Fan Speed key simultaneously for 5 seconds.
2. The display will show an address setting interface (often indicated by Ad or a similar prompt).
3. Use the Up/Down keys to adjust the address value.
4. Use the Mode key to move between digit positions (if the address has multiple digits).
5. Press the Power/On-Off key to save and exit.
Recommended Addressing Practice
| Practice | Reason |
|---|---|
| Start addressing from 1 | Keep addressing simple and sequential. |
| Document each device address | Helps with troubleshooting and future expansion. |
| Avoid using address 0 | Reserved for broadcast messages. |
| Leave gaps between addresses | Allows for future device additions without reconfiguring the entire network. |
As covered in this Modbus addressing explained tutorial, installers working on building retrofit projects rely on a clear Modbus register map. Accurate Modbus register addressing guarantees stable data transmission between FCU thermostats and Modbus gateways for BMS or KNX integration.
✅ Table 1: Advanced Mode Parameters (H1–H9)
| Code | Function | Default | Range | Description |
|---|---|---|---|---|
| H1 | Temperature Compensation | -2 | -9 ~ +9°C | Adjusts displayed temperature offset |
| H2 | Start Differential | 01 | 01 ~ 05°C | Temperature control hysteresis |
| H3 | Frost Protection | — | 01 ~ 05°C / — | Disable = “–“ |
| H4 | Power-on State | 02 | 00: Off / 01: On / 02: Memory | Restores last state after power failure |
| H5 | Temperature Lower Limit | 05 | 00 ~ 34°C | Minimum settable temperature |
| H6 | Temperature Upper Limit | 35 | 05 ~ 99°C | Maximum settable temperature |
| H7 | Fan Control Mode | 01 | 00: Free / 01: Controlled | Fan on/off logic |
| H8 | Standby Backlight | 00 | 00 ~ 99s | Backlight auto-off delay |
| H9 | System Type | 02 | 02: 2-pipe / 04: 4-pipe | Piping system configuration |
On most Modbus thermostats, the address can be set via the front panel. Refer to the product manual for model-specific instructions.
Common Modbus Addressing Mistakes
Even experienced installers can run into addressing issues. Here are the most frequent problems and how to avoid them:
| Mistake | Consequence | Solution |
|---|---|---|
| Duplicate addresses | Communication errors or no response from devices | Assign a unique address to each device. Document addresses during installation. |
| Address out of range | Device does not respond | Ensure the address is between 1 and 247. |
| Default address not changed | Multiple devices using the same default address (e.g., 1) | Always change the default address when adding new devices to an existing network. |
| Address not saved | Device reverts to old address after power cycle | Confirm the address setting is saved before exiting the configuration menu. |
Modbus Addressing Explained: Communication Parameters and Function Codes
Addressing alone is not enough — all devices on the same Modbus RTU network must also use the same communication parameters.
Standard Modbus RTU Communication Settings
| Parameter | Typical Setting |
|---|---|
| Baud rate | 9600 bps |
| Data bits | 8 |
| Stop bits | 1 |
| Parity | None |
Common Modbus Function Codes for Thermostats
| Function Code | Description | Use Case |
|---|---|---|
| 0x03 | Read Holding Registers | Read current temperature, setpoint, fan speed |
| 0x06 | Write Single Register | Change setpoint or fan speed |
| 0x10 | Write Multiple Registers | Change multiple parameters at once |
If a thermostat receives a request it does not support, it returns an exception response with the highest bit of the function code set to 1. For example, if the master requests function code 0x04 (which is not supported), the thermostat will respond with 0x84.
Troubleshooting Modbus Address Issues
If communication fails, the problem is often related to addressing or wiring. Here is a quick checklist:
| Symptom | Likely Cause | Solution |
|---|---|---|
| No response from any device | Wiring issue or incorrect baud rate | Check RS485 wiring and verify communication settings. |
| Intermittent communication | Duplicate addresses or electrical noise | Check for address conflicts and ensure proper cabling. |
Device responds with error code 0x01 (Illegal Function) | Function code not supported | Use function codes 0x03 (read), 0x06 (write), or 0x10 (write multiple). |
Device responds with error code 0x02 (Invalid Data Address) | Register address is out of range | Check the register address against the product’s Modbus map. |
Device responds with error code 0x03 (Invalid Data Value) | Data value exceeds the allowed range | Ensure the value is within the valid range. |
Exception Response Example
If the master sends an unsupported function code (e.g., 0x04), the thermostat will return:
| Device Address | Function Code | Error Code | CRC Low | CRC High |
|---|---|---|---|---|
| 0x01 | 0x84 | 0x01 | 0x82 | 0xC0 |
✅ Table 2: Modbus RTU Communication Parameters
| Parameter | Typical Setting |
|---|---|
| Baud Rate | 9600 bps |
| Data Bits | 8 |
| Stop Bits | 1 |
| Parity | None |
| Communication Interval | 300ms |
| Device Address Range | 1 ~ 247 |
For more detailed protocol information, visit the official Modbus website.
Related Reading
· What is Modbus RTU and How Does It Work in HVAC Systems?
· RS485 Modbus Thermostat Setup: Step-by-Step Guide
· Modbus Thermostat for Fan Coil Unit Systems: A Complete Application Guide
For more technical guides and product information, browse our blog or contact our engineering team for a free consultation.
