Table 1 Register Map Guide
Table 1 Register Map Guide
This page is a technical reference for the Kholer Decision Maker 550 Modbus Register Map / Point List. It provides a high-level guide to the register ranges used for monitoring, configuration, history, and remote functions. The table below is commonly used during commissioning and troubleshooting when integrating a Kohler Decision Maker 550 controller into a SCADA system, BMS, PLC, or protocol gateway.
In Modbus terminology, the ranges shown here use the 4xxxx convention, which typically refers to Holding Registers. However, integrators should be aware that Modbus addressing is often presented in multiple ways depending on the tool or driver in use. Some software expects the address as a 4xxxx number (example: 40001), while other software expects a zero-based offset (example: 0), and still others expect a one-based offset (example: 1). If values appear shifted by one register, this is usually an addressing convention issue rather than a device problem.
Before implementing a full point list, confirm the following integration parameters:
- Function code (typically Read Holding Registers / FC03 for 4xxxx ranges)
- Register addressing convention (4xxxx vs offset-based addressing)
- Data type and scaling (UINT16, INT16, 32-bit values, IEEE-754 floats, engineering units)
- Byte order / word order for multi-register values (varies by client and gateway)
- Write permissions (some registers may be read-only or write-only)
The ranges below are grouped by functional area so you can quickly locate the correct block during integration. For example, monitoring points are typically read cyclically, while setup and factory ranges are accessed only during configuration or service operations.
Kholer Decision Maker 550 Modbus Register Map / Point List
Table 1: Register Map Guide
| Description | Registers |
|---|---|
| Monitoring | 40001–40083 |
| Electrical Output | 40001–40032 |
| Engine Status | 40033–40060 |
| Analog Input Status | 40061–40076 |
| Digital Input Status | 40077–40078 |
| Controller Status | 40079–40083 |
| Maintenance | 40084–40112 |
| Time/Date | 40113–40115 |
| Time Delay Settings | 40116–40124 |
| Settings and Setpoints | 40125–40146 |
| Factory Setup | 40147–40226 |
| Digital Input Setup | 40227–40499 |
| Analog Input Setup | 40500–40739 |
| Remapped Registers * | 40740–40837 |
| Relay Driver Output Status (see Section 2.5.4) | 40838–40839 |
| Relay Driver Output Setup | 40840–40870 |
| Event History | 40871–41270 |
| Customer-Defined Character Strings | 41271–41295 |
| Reserved and Write-Only Registers | 41296–41305 |
| Remote Functions | 41306–41413 |
| Reserved for Factory Use | 41314–41499 |
| "System Event Stack (status of fault warnings and shutdowns, inputs, outputs, and MDEC alarms; see Section 2.5.6.)" | 41500–41515 |
| Reserved for Wireless Monitor | 41516–41536 |
| Reserved | 41537–41549 |
| Defined Common Faults (Define/Inspect) | 41550–41805 |
| Reserved | 41806–49998 |
| Device ID | 49999 |
| * Registers 40740–40837 have been mapped to 41550–41647 (Defined Common Faults) for compatibility with earlier versions. |
Integration Notes and Practical Interpretation
The table is a range guide, not a full point list. In a typical integration workflow, you use this guide to: (1) identify which functional block contains the points you need, (2) locate the detailed register definitions in the manufacturer documentation, and (3) configure the Modbus client (BMS, PLC, SCADA, or gateway) with the correct addressing and data interpretation.
A few practical patterns are worth highlighting:
- Monitoring (40001–40083) is generally the best starting point for initial connectivity testing. These ranges typically provide read-only status values that can be polled cyclically without affecting operation.
- Settings, setpoints, and setup ranges often require additional caution. Writes may be restricted, may require certain operating states, or may need confirmation steps (device-specific).
- Event History (40871–41270) and related logs can be higher volume. If you poll these registers too frequently, you can consume bandwidth and increase scan times. These are usually read on-demand or at a slower rate.
- Reserved and write-only registers should not be blindly scanned. Many integrators will deliberately exclude reserved/write-only ranges to avoid unexpected behavior or meaningless data.
For clients that require offset addressing, a common rule of thumb is: 40001 (human format) often maps to 0 (offset format). This is not universal, but it explains a large portion of off-by-one or off-by-40001 issues seen in the field. Always validate with a small read test before scaling to hundreds of points.
Finally, note the remapped registers statement. The device maintains compatibility with earlier versions by mapping certain register ranges into a newer block. This matters when comparing documentation revisions or when replacing a controller in an existing integration—two systems might expose similar information under different ranges depending on firmware version.
Frequently Asked Questions (FAQ)
Are these 4xxxx addresses Holding Registers?
Typically yes. The 4xxxx convention is commonly used to represent Modbus Holding Registers and is often read using function code FC03 (Read Holding Registers). However, always confirm the device documentation and your client’s addressing scheme.
Why do I read the wrong value when I request register 40001?
The most common cause is addressing format mismatch. Some clients want 40001, others want a zero-based offset (0), and some require one-based offsets (1). If your values look shifted, test by adjusting the starting address by ±1 and confirm the expected point.
Can I scan the entire range from 40001 to 49999?
It is not recommended. Large scans increase network load and scan time and may include reserved or write-only registers that are not intended for polling. Use the range guide to target specific blocks and only poll the points you need.
How often should I poll the Monitoring registers?
Poll rate depends on the network, controller performance, and required responsiveness. A common approach is to poll key monitoring values on a periodic interval (for example, 1–10 seconds), while polling configuration and history registers only on demand or at slower intervals.
What does “Reserved and Write-Only Registers” mean in practice?
Reserved registers may not contain meaningful data or may be undefined for the current firmware. Write-only registers may be used for commands or internal control functions and may return invalid values when read. Integrations typically avoid these unless a specific function requires them.
What is the purpose of the remapped registers note?
It indicates that registers 40740–40837 have also been mapped to 41550–41647 for backward compatibility. This helps older integrations continue working against newer firmware or configuration layouts. If documentation revisions differ, this note is often the reason.