- Home
- Modbus register maps
- SmartGen
- HGM9510N / HGM9520N / HGM9530N
Generator controller · Modbus register map
SmartGen HGM9510N / HGM9520N / HGM9530N Modbus register map
Updated 16 October 2026
SmartGen's HGM9510N, HGM9520N and HGM9530N are genset paralleling controllers; the HGM9520N variant also commands a mains breaker. Two RS485 ports speak Modbus RTU and the RJ45 port speaks Modbus TCP, all with the same register tables. Status, alarms and measurements are holding registers read with FC03; remote keys are FC05 coil writes; the clock and two load-share setpoints are FC06 writes. This map covers status words, voltages, currents, powers, engine values, breaker and genset state codes, counters and the remote command coils.
This page lists 134 Modbus registers for the SmartGen HGM9510N / HGM9520N / HGM9530N — 30 writable — with the table, 0-based wire address, data type, word order, scale, units and access of each, re-typed from SmartGen’s own free documentation (linked below) and checked against it.
- Manufacturer
- SmartGen
- Model
- HGM9510N / HGM9520N / HGM9530N
- Equipment type
- Generator controller
- Registers
- 134 (30 writable)
- Transport
- Modbus RTU, Modbus TCP
- Default unit ID
- 1
- Default serial
- 9600 baud, 8N1
- TCP port
- 502
- Documented addressing
- 0-based (the number printed is the address on the wire)
- 32-bit word order
- CDAB low word first (word-swapped)
- Also known as
- HGM9520N, HGM9530N
Integration notes: SmartGen HGM9510N / HGM9520N / HGM9530N
Poll register 0000 for mode and common alarm flags, 0260 for genset state, 0264/0268 for breaker states, and the measurement block 0120-0259. To start: send Remote Manual (coil 4), confirm bit 10 of register 0, send Remote Start (coil 0), then follow Generator Status until Normal Running.
Minimum registers to map
Addresses are 0-based wire addresses. Enough to monitor and run the unit; map more as the job needs.
| Register | Name | Type | Why | Access |
|---|---|---|---|---|
| HR 0 | Summary Status Word | BITMAP16 | Mode and common alarm flags | Read |
| HR 260 | Generator Status | UINT16 | Genset running state | Read |
| HR 264 | Gen Breaker (ATS) Status | UINT16 | Generator breaker state | Read |
| HR 146 | Gen UA | UINT32 CDAB | Generator phase A voltage (32-bit) | Read |
| HR 166 | A Phase Current | UINT16 | Phase A current | Read |
| HR 180 | Total Active Power | INT32 CDAB | Total active power (32-bit) | Read |
| HR 212 | Engine Speed | UINT16 | Engine speed | Read |
| CO 0 | Remote Start Key (STARTS ENGINE) | BIT | Remote start command | Write |
Enable Modbus control & writes
Set the controller address in the parameter menu (Controller Parameter Setting, default password 0318); the setting applies once saved. Each controller on a network needs a unique address.
Byte order & addressing
- Status bits are packed into FC03 registers (word.bit notation); FC01/FC02 are not listed as supported function codes.
- 32-bit values are low word first (CDAB).
- Remote key coils accept FF00 only and act once per write, like a key press. Remote outputs and Remote Lock are latched: FF00 sets, 0000 clears.
- Read at most 120 registers per request.
Network setup
- RS485: address default 1 (1-245 per the data-format list; 1-254 per the address table), 9600 bps, 8 data bits, parity none/odd/even (default none), 1 or 2 stop bits; at least 200 ms timeout; up to 32 units per segment.
- The TR terminal has a built-in 120 Ω resistor; link terminals 35 and 36 to enable it at the bus ends.
- Ethernet: Modbus TCP on port 502, 10/100 Mbit, CAT5e or better, max 100 m per segment. The built-in switch supports ring redundancy.
Watch out for
- These controllers start engines and close breakers onto a live bus or the mains. Make sure the site is safe and the operators know before sending start, close or mode commands.
- The document's start sequence needs Manual mode first: a Remote Start in Auto is not part of the documented procedure. Check bit 10 of register 0 before starting.
- On the HGM9520N, coils 5/6 are close/open keys and the document does not say how the controller chooses between closing and opening; read the breaker state (0264/0268) first so a repeated write does not drop the load.
- Remote Stop switches the controller to Stop mode, which takes it out of Auto; send Remote Auto afterwards to re-arm automatic operation.
- The load-share setpoints 4368/4370 only act when the controller is in gen control (constant power) mode.
SmartGen HGM9510N / HGM9520N / HGM9530N Modbus registers
Address = 0-based wire address (the documented number is shown under it when it differs) · Order: ABCD = high word first, CDAB = low word first · Scale: engineering value = raw × scale.
| Table | Address | Name | Description | Type | Order | Scale | Units | Access | Values / bits |
|---|---|---|---|---|---|---|---|---|---|
| CO | 0doc 0000 | Remote Start Key (STARTS ENGINE) | FC05 FF00 once = Start key; the documented procedure selects Manual mode first. | BIT | Write | ||||
| CO | 1doc 0001 | Remote Stop | FC05 FF00 once = Stop key; puts the controller in Stop mode. | BIT | Write | ||||
| CO | 3doc 0003 | Remote Auto Mode | Write FF00 once. | BIT | Write | ||||
| CO | 4doc 0004 | Remote Manual Mode | Write FF00 once. | BIT | Write | ||||
| CO | 5doc 0005 | Remote Gen Close (9510N/9530N) / Mains Close-Open (9520N) | FC05 FF00 once. 9510N/9530N: gen breaker close. 9520N: mains close/open key. | BIT | Write | ||||
| CO | 6doc 0006 | Remote Gen Open (9510N/9530N) / Gen Close-Open (9520N) | FC05 FF00 once. 9510N/9530N: gen breaker open. 9520N: gen close/open key. | BIT | Write | ||||
| CO | 7doc 0007 | Remote Up Key | Write FF00 once. | BIT | Write | ||||
| CO | 8doc 0008 | Remote Down Key | Write FF00 once. | BIT | Write | ||||
| CO | 11doc 0011 | Remote Confirm Key | Write FF00 once. | BIT | Write | ||||
| CO | 12doc 0012 | Remote Mute Key | Write FF00 once. | BIT | Write | ||||
| CO | 15doc 0015 | Remote Engine Fast Stop | FC05 FF00 once; fast engine stop. | BIT | Write | ||||
| CO | 17doc 0017 | Remote Alarm Reset | Write FF00 once. | BIT | Write | ||||
| CO | 20doc 0020 | Remote Output 1 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 21doc 0021 | Remote Output 2 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 22doc 0022 | Remote Output 3 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 23doc 0023 | Remote Output 4 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 24doc 0024 | Remote Output 5 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 25doc 0025 | Remote Output 6 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 26doc 0026 | Remote Output 7 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 27doc 0027 | Remote Output 8 | FF00 = active, 0000 = inactive. | BIT | Write | ||||
| CO | 31doc 0031 | Remote Lock | FF00 = remote lock on, 0000 = off; state is bit 12 of register 0. | BIT | Write | ||||
| HR | 0doc 0000 | Summary Status Word | Common alarm classes and operating mode flags. | BITMAP16 | Read | bit 0 = Common Alarm; bit 1 = Common Shutdown Alarm; bit 2 = Common Warning Alarm; bit 3 = Common Trip and Stop Alarm; bit 4 = Common Trip Alarm; bit 5 = Common Safety Trip and Stop Alarm; bit 6 = Common Safety Trip Alarm; bit 7 = Common Block Alarm; bit 8 = In Test Mode; bit 9 = In Auto Mode; bit 10 = In Manual Mode; bit 11 = In Stop Mode; bit 12 = Remote Lock | |||
| HR | 1doc 0001 | Shutdown Alarms Word 1 | First word of the 15-word shutdown alarm field (0001-0015). | BITMAP16 | Read | bit 0 = Emergency Stop; bit 1 = Overspeed; bit 2 = Underspeed; bit 3 = Speed Signal Loss; bit 4 = Gen Overfrequency; bit 5 = Gen Underfrequency; bit 6 = Gen Overvoltage; bit 7 = Gen Undervoltage; bit 8 = Crank Failure; bit 9 = Gen Overcurrent; bit 10 = Current Imbalance; bit 11 = Earth Fault; bit 12 = Reverse Power; bit 13 = Over Power; bit 14 = Loss of Excitation; bit 15 = ECU Communication Failure | |||
| HR | 91doc 0091 | Warning Alarms Word 1 | First word of the 15-word warning field (0091-0105). | BITMAP16 | Read | bit 0 = Emergency Stop; bit 1 = Overspeed; bit 2 = Underspeed; bit 3 = Speed Signal Loss; bit 4 = Gen Overfrequency; bit 5 = Gen Underfrequency; bit 6 = Gen Overvoltage; bit 7 = Gen Undervoltage; bit 8 = Crank Failure; bit 9 = Gen Overcurrent; bit 10 = Current Imbalance; bit 11 = Earth Fault; bit 12 = Reverse Power; bit 13 = Over Power; bit 14 = Loss of Excitation; bit 15 = ECU Communication Failure | |||
| HR | 106doc 0106 | Digital Input Status | Physical input states. | BITMAP16 | Read | bit 0 = Emergency Stop Input; bit 1 = Aux. Input 1; bit 2 = Aux. Input 2; bit 3 = Aux. Input 3; bit 4 = Aux. Input 4; bit 5 = Aux. Input 5; bit 6 = Aux. Input 6; bit 7 = Aux. Input 7; bit 8 = Aux. Input 8; bit 9 = Aux. Input 9; bit 10 = Aux. Input 10; bit 11 = Aux. Input 11; bit 12 = Aux. Input 12; bit 13 = Aux. Input 13; bit 14 = Aux. Input 14; bit 15 = Aux. Input 15 | |||
| HR | 108doc 0108 | Relay Output Status | Physical output states. | BITMAP16 | Read | bit 0 = Fuel Output; bit 1 = Crank Output; bit 2 = Aux. Output 1; bit 3 = Aux. Output 2; bit 4 = Aux. Output 3; bit 5 = Aux. Output 4; bit 6 = Aux. Output 5; bit 7 = Aux. Output 6; bit 8 = Aux. Output 7; bit 9 = Aux. Output 8 | |||
| HR | 114doc 0114 | Mains / Gen Switch Status | BITMAP16 | Read | bit 0 = Mains Normal; bit 1 = Mains On Load; bit 2 = Gen Normal; bit 3 = Gen Closed | ||||
| HR | 120doc 0120 | Busbar/Mains UAB | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 122doc 0122 | Busbar/Mains UBC | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 124doc 0124 | Busbar/Mains UCA | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 126doc 0126 | Busbar/Mains UA | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 128doc 0128 | Busbar/Mains UB | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 130doc 0130 | Busbar/Mains UC | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 132doc 0132 | Busbar/Mains UA Phase Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 133doc 0133 | Busbar/Mains UB Phase Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 134doc 0134 | Busbar/Mains UC Phase Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 135doc 0135 | Busbar/Mains Frequency | UINT16 | × 0.01 | Hz | Read | |||
| HR | 140doc 0140 | Gen UAB | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 142doc 0142 | Gen UBC | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 144doc 0144 | Gen UCA | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 146doc 0146 | Gen UA | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 148doc 0148 | Gen UB | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 150doc 0150 | Gen UC | UINT32 | CDAB | × 0.1 | V | Read | ||
| HR | 152doc 0152 | Gen UA Phase Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 153doc 0153 | Gen UB Phase Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 154doc 0154 | Gen UC Phase Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 155doc 0155 | Gen Frequency | UINT16 | × 0.01 | Hz | Read | |||
| HR | 156doc 0156 | Sync Voltage Difference | INT16 | × 0.1 | V | Read | |||
| HR | 157doc 0157 | Sync Frequency Difference | INT16 | × 0.01 | Hz | Read | |||
| HR | 158doc 0158 | Sync Phase Difference | INT16 | × 0.1 | ° | Read | |||
| HR | 159doc 0159 | Gen Active Load Actual | Current generator active power percentage. | INT16 | × 0.1 | % | Read | ||
| HR | 160doc 0160 | Gen Active Load Target | INT16 | × 0.1 | % | Read | |||
| HR | 161doc 0161 | Gen Reactive Load Actual | INT16 | × 0.1 | % | Read | |||
| HR | 162doc 0162 | Gen Reactive Load Target | INT16 | × 0.1 | % | Read | |||
| HR | 163doc 0163 | Governor Output | Speed bias output, -100.0 to 100.0 %. | INT16 | × 0.1 | % | Read | ||
| HR | 164doc 0164 | AVR Output | Voltage bias output, -100.0 to 100.0 %. | INT16 | × 0.1 | % | Read | ||
| HR | 166doc 0166 | A Phase Current | UINT16 | × 0.1 | A | Read | |||
| HR | 167doc 0167 | B Phase Current | UINT16 | × 0.1 | A | Read | |||
| HR | 168doc 0168 | C Phase Current | UINT16 | × 0.1 | A | Read | |||
| HR | 169doc 0169 | Earth Current | UINT16 | × 0.1 | A | Read | |||
| HR | 170doc 0170 | A Phase Current Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 171doc 0171 | B Phase Current Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 172doc 0172 | C Phase Current Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 173doc 0173 | Earth Current Angle | UINT16 | × 0.1 | ° | Read | |||
| HR | 174doc 0174 | A Phase Active Power | INT32 | CDAB | × 0.1 | kW | Read | ||
| HR | 176doc 0176 | B Phase Active Power | INT32 | CDAB | × 0.1 | kW | Read | ||
| HR | 178doc 0178 | C Phase Active Power | INT32 | CDAB | × 0.1 | kW | Read | ||
| HR | 180doc 0180 | Total Active Power | INT32 | CDAB | × 0.1 | kW | Read | ||
| HR | 182doc 0182 | A Phase Reactive Power | INT32 | CDAB | × 0.1 | kvar | Read | ||
| HR | 184doc 0184 | B Phase Reactive Power | INT32 | CDAB | × 0.1 | kvar | Read | ||
| HR | 186doc 0186 | C Phase Reactive Power | INT32 | CDAB | × 0.1 | kvar | Read | ||
| HR | 188doc 0188 | Total Reactive Power | INT32 | CDAB | × 0.1 | kvar | Read | ||
| HR | 190doc 0190 | A Phase Apparent Power | INT32 | CDAB | × 0.1 | kVA | Read | ||
| HR | 192doc 0192 | B Phase Apparent Power | INT32 | CDAB | × 0.1 | kVA | Read | ||
| HR | 194doc 0194 | C Phase Apparent Power | INT32 | CDAB | × 0.1 | kVA | Read | ||
| HR | 196doc 0196 | Total Apparent Power | INT32 | CDAB | × 0.1 | kVA | Read | ||
| HR | 212doc 0212 | Engine Speed | UINT16 | rpm | Read | ||||
| HR | 213doc 0213 | Battery Voltage | UINT16 | × 0.1 | V | Read | |||
| HR | 214doc 0214 | Charger (D+) Voltage | UINT16 | × 0.1 | V | Read | |||
| HR | 220doc 0220 | Engine Temperature (sensor) | Analog temperature sensor; range -50 to 10000. | INT16 | °C | Read | |||
| HR | 222doc 0222 | Oil Pressure (sensor) | UINT16 | kPa | Read | ||||
| HR | 224doc 0224 | Fuel Level (sensor) | UINT16 | % | Read | ||||
| HR | 232doc 0232 | Load Percentage | Range -100 to 100 %; listed as signed because the range is negative. | INT16 | % | Read | |||
| HR | 234doc 0234 | ECU Oil Temperature | ECU engines only. | INT16 | °C | Read | |||
| HR | 239doc 0239 | ECU Exhaust Temperature | ECU engines only. | INT16 | °C | Read | |||
| HR | 241doc 0241 | ECU Fuel Consumption | ECU engines only. | INT16 | × 0.1 | L/h | Read | ||
| HR | 242doc 0242 | ECU Accumulated Fuel | ECU engines only. | UINT32 | CDAB | L | Read | ||
| HR | 251doc 0251 | Mains Active Load | INT16 | × 0.1 | % | Read | |||
| HR | 252doc 0252 | Mains Reactive Load | INT16 | × 0.1 | % | Read | |||
| HR | 253doc 0253 | Mains Active Power | INT32 | CDAB | × 0.1 | kW | Read | ||
| HR | 255doc 0255 | Mains Reactive Power | INT32 | CDAB | × 0.1 | kvar | Read | ||
| HR | 257doc 0257 | Mains Apparent Power | INT32 | CDAB | × 0.1 | kVA | Read | ||
| HR | 260doc 0260 | Generator Status | UINT16 | Read | 0 = Standby; 1 = Preheat; 2 = Fuel Output; 3 = Crank; 4 = Crank Rest; 5 = Safety Run; 6 = Start Idle; 7 = High Speed Warming Up; 8 = Wait for Load; 9 = Normal Running; 10 = High Speed Cooling; 11 = Stop Idle; 12 = ETS; 13 = Wait for Stop; 14 = After Stop; 15 = Stop Failure | ||||
| HR | 262doc 0262 | Remote Start Status | UINT16 | Read | 0 = No Delay; 1 = Start Delay; 2 = Stop Delay | ||||
| HR | 264doc 0264 | Gen Breaker (ATS) Status | UINT16 | Read | 0 = Synchronizing; 1 = Close Delay; 2 = Wait for Closing; 3 = Closed; 4 = Unloading; 5 = Open Delay; 6 = Wait for Opening; 7 = Opened | ||||
| HR | 266doc 0266 | Mains Status | UINT16 | Read | 0 = Normal; 1 = Normal Delay; 2 = Abnormal; 3 = Abnormal Delay | ||||
| HR | 268doc 0268 | Mains Breaker (ATS) Status | UINT16 | Read | 0 = Synchronizing; 1 = Close Delay; 2 = Wait for Closing; 3 = Closed; 4 = Unloading; 5 = Open Delay; 6 = Wait for Opening; 7 = Opened | ||||
| HR | 270doc 0270 | Accumulated Running Hours | UINT16 | h | Read | ||||
| HR | 271doc 0271 | Accumulated Running Minutes | UINT16 | min | Read | ||||
| HR | 272doc 0272 | Accumulated Running Seconds | UINT16 | s | Read | ||||
| HR | 273doc 0273 | Accumulated Start Count | UINT16 | Read | |||||
| HR | 274doc 0274 | Accumulated Energy kWh | UINT32 | CDAB | × 0.1 | kWh | Read | ||
| HR | 276doc 0276 | Accumulated Energy kvarh | UINT32 | CDAB | × 0.1 | kvarh | Read | ||
| HR | 278doc 0278 | Accumulated Energy kVAh | UINT32 | CDAB | × 0.1 | kVAh | Read | ||
| HR | 282doc 0282 | Maintenance Left Hours | UINT16 | h | Read | ||||
| HR | 283doc 0283 | Maintenance Left Minutes | UINT16 | min | Read | ||||
| HR | 284doc 0284 | Maintenance Left Seconds | UINT16 | s | Read | ||||
| HR | 288doc 0288 | Controller Model | Model code number. | UINT16 | Read | ||||
| HR | 289doc 0289 | Software Version | UINT16 | × 0.1 | Read | ||||
| HR | 290doc 0290 | Hardware Version | UINT16 | × 0.1 | Read | ||||
| HR | 291doc 0291 | Release Year | Last two digits. | UINT16 | Read | ||||
| HR | 292doc 0292 | Release Month | UINT16 | Read | |||||
| HR | 293doc 0293 | Release Day | UINT16 | Read | |||||
| HR | 296doc 0296 | Controller Time: Year | Last two digits; writable with FC06. | UINT16 | Read/write | ||||
| HR | 297doc 0297 | Controller Time: Month | Writable with FC06. | UINT16 | Read/write | ||||
| HR | 298doc 0298 | Controller Time: Day | Writable with FC06. | UINT16 | Read/write | ||||
| HR | 299doc 0299 | Controller Time: Weekday | Writable with FC06. | UINT16 | Read/write | ||||
| HR | 300doc 0300 | Controller Time: Hour | Writable with FC06. | UINT16 | Read/write | ||||
| HR | 301doc 0301 | Controller Time: Minute | Writable with FC06. | UINT16 | Read/write | ||||
| HR | 302doc 0302 | Controller Time: Second | Writable with FC06. | UINT16 | Read/write | ||||
| HR | 303doc 0303 | Module MSC ID | Unit ID on the load-sharing (MSC) bus, 0-31. | UINT16 | Read | ||||
| HR | 305doc 0305 | Total Modules on MSC | Number of controllers seen on the MSC bus. | UINT16 | Read | ||||
| HR | 306doc 0306 | Multi-unit Total Active Power | Sum across paralleled sets. | INT32 | CDAB | × 0.1 | kW | Read | |
| HR | 407doc 0407 | Current Run Time Hours | Time of the current run. | UINT16 | h | Read | |||
| HR | 408doc 0408 | Current Run Time Minutes | UINT16 | min | Read | ||||
| HR | 409doc 0409 | Current Run Time Seconds | UINT16 | s | Read | ||||
| HR | 410doc 0410 | Current Run Energy | INT32 | CDAB | × 0.1 | kWh | Read | ||
| HR | 412doc 0412 | THD 1 | INT16 | × 0.1 | % | Read | |||
| HR | 413doc 0413 | THD 2 | INT16 | × 0.1 | % | Read | |||
| HR | 414doc 0414 | THD 3 | INT16 | × 0.1 | % | Read | |||
| HR | 415doc 0415 | Gen Voltage Unbalance | INT16 | × 0.1 | % | Read | |||
| HR | 511doc 0511 | Alarm Quantity | Number of active alarms. | UINT16 | Read | ||||
| HR | 4368 | Load Share Active Power Setpoint | Write-only, FC06; 0-1000 = 0.0-100.0 %. Used in gen control (constant power) mode. | UINT16 | × 0.1 | % | Write | ||
| HR | 4370 | Load Share Reactive Power Setpoint | Write-only, FC06; 0-1000 = 0.0-100.0 %. | UINT16 | × 0.1 | % | Write |
Notes on this map
- 32-bit values put the low 16 bits at the lower address: the document's example reads A-phase active power at 0174-0175 as E240h, 0001h and combines them to 0001E240h (123456). That is CDAB word order; it is applied to every 4-byte value in the table.
- The alarm area 0001-0105 is seven 15-word fields (shutdown, trip-and-stop, trip, safety trip-and-stop, safety trip, block, warning). Each field uses the same bit layout from the alarm data table; only the first word of the shutdown and warning fields is mapped here. Bits of later words are in the document (pp. 36-41).
- Engine temperature (0220) has no signedness printed but its range starts at -50, so it is listed as signed 16-bit.
- Left out: ROCOF (0136), Negative/Zero phase angle (0202-0203) and Aux. sensor values (0226, 0228) because no scale or unit is printed; Unbalanced Current (0204) because it is marked both 0-65535 and signed; Multi-unit Total Reactive Power (0285) because its unit is printed as kvarh; expansion module (AIN24/AIN8) values, per-breaker A/B counters (0341-0352), J1939 DM1/DM2 fault lists and the ECU aftertreatment/indicator block 0533-0625.
- A reading of 32766 means no valid data.
- FC06 is only accepted at 0296-0302 (clock) and at the two load-share setpoints 4368 and 4370; all other registers are read-only.
- Generator status codes 14 and 15 are After Stop and Stop Failure in this document (the order is reversed compared with the HGM6100N document).
- Left out: the per-phase, average and mains power factors (0198-0201, 0259). They are 2-byte registers with ratio 0.001, but the printed range -100.000 to 100.000 does not fit a 16-bit value at that ratio, so the scale is contradictory.
- Left out: the delay values that follow each state code (0261, 0263, 0265, 0267, 0269); no unit or ratio is printed for them.
- The RS485 data-format list gives the communication address as 1-245, while the address-assignment table elsewhere in the document says 1-254.
Check it against the live device. A register map tells you what the controller can expose; the unit in front of you may differ by firmware or options. Read a few registers and compare them with the unit’s own display; for a 32-bit value the float and byte-order decoder shows all four word orders at once, so a wrong word order or scale is obvious. New to this? Read what a register map is and why addresses are off by one.
Questions about the SmartGen HGM9510N / HGM9520N / HGM9530N
What Modbus registers does the SmartGen HGM9510N / HGM9520N / HGM9530N have?
This map lists 134 registers: 21 coils, 113 holding registers. 30 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the SmartGen HGM9510N / HGM9520N / HGM9530N Modbus addresses 0-based or 1-based?
The manufacturer's document numbers registers 0-based (the number printed is the address on the wire). Every address on this page is the 0-based wire address you put in the request; the documented number is shown under it where it differs. Tables print a decimal 'Modbus Address' (used here as the wire address) and a 1-based 'PLC Address' (40001 style). The document's examples confirm it: address 0174 is requested as 0x00AE and the load-share setpoint 4368 as 0x1110. Bit flags are printed as word.bit, e.g. 0000.10 = bit 10 of register 0.
What byte order does the SmartGen HGM9510N / HGM9520N / HGM9530N use for 32-bit values?
Multi-register values in this map use CDAB (low word first (word-swapped)). Set your client to this order for every 32/64-bit value in the table.
What are the minimum Modbus registers to integrate the SmartGen HGM9510N / HGM9520N / HGM9530N?
Start with HR 0 Summary Status Word (Mode and common alarm flags); HR 260 Generator Status (Genset running state); HR 264 Gen Breaker (ATS) Status (Generator breaker state); HR 146 Gen UA (Generator phase A voltage (32-bit)); HR 166 A Phase Current (Phase A current); HR 180 Total Active Power (Total active power (32-bit)); HR 212 Engine Speed (Engine speed); CO 0 Remote Start Key (STARTS ENGINE) (Remote start command).
How do I enable Modbus control of the SmartGen HGM9510N / HGM9520N / HGM9530N?
Set the controller address in the parameter menu (Controller Parameter Setting, default password 0318); the setting applies once saved. Each controller on a network needs a unique address.
Where is the official SmartGen HGM9510N / HGM9520N / HGM9530N Modbus documentation?
The source is HGM9510N/HGM9520N/HGM9530N Genset Controller Communication Protocol, revision 2024-07-22 (v1.5), published free by SmartGen at https://www.smartgen.cn/yun/data/download/HGM9510N_HGM9520N_HGM9530N_Protocol_en.pdf.
More SmartGen Modbus register maps
- Generator controller
SmartGen HGM4010N / HGM4020N
HGM4010N (auto start) and HGM4020N (AMF) genset controllers, HGM4000N communication protocol v1.2.
Also known as: HGM4010N, HGM4000N - Generator controller
SmartGen HGM6100N / HGM6100CAN Series
HGM6100N and HGM6100CAN genset controllers (HGM6110 auto-start and HGM6120 AMF variants), protocol document v1.7.
Also known as: HGM6100CAN, HGM6110N, HGM6120N, HGM6110CAN, HGM6120CAN - Generator controller
SmartGen HGM7100N Series
HGM7110N (auto start) and HGM7120N (AMF) genset controllers, protocol document v1.3.
Also known as: HGM7110N, HGM7120N
Source: HGM9510N/HGM9520N/HGM9530N Genset Controller Communication Protocol · rev. 2024-07-22 (v1.5). Register numbers, types, scaling and units are reproduced as published; descriptions are our own.