- Home
- Modbus register maps
- SmartGen
- HGM6100N / HGM6100CAN Series
Generator controller · Modbus register map
SmartGen HGM6100N / HGM6100CAN Series Modbus register map
Updated 16 October 2026
SmartGen's HGM6100N family are single-genset auto-start (HGM6110) and AMF (HGM6120) controllers. The RS485 port is a Modbus RTU slave with fixed register tables: status and alarm bits as coils (FC01), measurements and run counters as holding registers (FC03), and remote control as single-coil writes (FC05). This map covers the common status/alarm coils, the electrical and engine measurements, genset state codes, counters and the remote start/stop/mode/breaker commands.
This page lists 145 Modbus registers for the SmartGen HGM6100N / HGM6100CAN Series — 7 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
- HGM6100N / HGM6100CAN Series
- Equipment type
- Generator controller
- Registers
- 145 (7 writable)
- Transport
- Modbus RTU
- Default unit ID
- 1
- Default serial
- 9600 baud, 8N1
- Documented addressing
- 0-based (the number printed is the address on the wire)
- Also known as
- HGM6100CAN, HGM6110N, HGM6120N, HGM6110CAN, HGM6120CAN
Integration notes: SmartGen HGM6100N / HGM6100CAN Series
Wire to RS485 A/B, set the controller's Module Address, then poll holding registers 0000-0054 with FC03 and coils 0000-0081 with FC01. Remote commands are single FC05 writes of FF00 to coils 0000-0006, the same addresses that read back as status bits.
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 |
|---|---|---|---|---|
| CO 0 | Common Alarm (read) / WRITE = REMOTE START ENGINE | BIT | Common alarm (read) / remote start (write) | Read/write |
| CO 41 | Auto Mode | BIT | Auto mode active | Read |
| HR 34 | Controller Running Status | UINT16 | Genset running state | Read |
| HR 7 | Gen UA | UINT16 | Generator phase A voltage | Read |
| HR 14 | A Phase Current | UINT16 | Phase A current | Read |
| HR 26 | Active Power | INT16 | Total active power | Read |
| HR 23 | Engine Speed | UINT16 | Engine speed | Read |
| HR 24 | Battery Voltage | UINT16 | Battery voltage | Read |
Enable Modbus control & writes
Set a unique Module Address (1-254, default 1) from the front-panel parameter menu (default password 0318); the new setting applies once saved. Baud rate (2400/4800/9600/19200/115200, default 9600) and parity (none/odd/even, default none) are also controller settings.
Byte order & addressing
- Remote command coils are written with FF00 and each command is sent once only; they act as one-shot commands, not latched states.
- Coils 0-6 mean different things for read (FC01) and write (FC05).
- Run hours, start count and energy are split into a high part and a 0-9999 low part combined as high x 10000 + low, not as a 32-bit word pair.
- Supported function codes are 01, 03, 05 and 06 only. Read at most 120 registers per request.
Network setup
- Use 120 Ω shielded twisted pair, shield grounded at one end only.
- The controller has an internal 120 Ω terminator that is enabled by default in its settings; disable it on units that are not at the end of the bus.
- Default: address 1, 9600 bps, 8 data bits, no parity, 1 stop bit; allow at least 200 ms response timeout.
- Up to 32 controllers per RS485 segment, 1000 m at 9600 bps.
Watch out for
- This controller starts a real engine. Confirm the genset is safe to run and local staff are informed before writing coils 0-6; a write to coil 0 is a start command even though the same address reads as Common Alarm.
- HGM6120 coils 5/6 are named close/open keys and the document does not say how the controller chooses between closing and opening; a write while the breaker is closed may open it and drop the load. Read Gen On-load (coil 7) / Mains On-load (coil 6) first.
- After a remote stop, check the mode coils 40-43 and send Remote Auto (coil 3) if the set must stay ready for automatic operation.
SmartGen HGM6100N / HGM6100CAN Series 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 | Common Alarm (read) / WRITE = REMOTE START ENGINE | Read: 1 = common alarm. FC05 write FF00 = remote start; the engine will crank. | BIT | Read/write | ||||
| CO | 1doc 0001 | Common Warning (read) / WRITE = REMOTE STOP ENGINE | Read: 1 = common warning. FC05 write FF00 = remote stop command. | BIT | Read/write | ||||
| CO | 2doc 0002 | Common Shutdown (read) / WRITE = REMOTE TEST MODE | Read: 1 = common shutdown alarm. FC05 write FF00 = remote Test command. | BIT | Read/write | ||||
| CO | 3doc 0003 | Remote Mode (read) / WRITE = REMOTE AUTO MODE | Read: 1 = remote mode. FC05 write FF00 = switch controller to Auto. | BIT | Read/write | ||||
| CO | 4doc 0004 | Remote Lock (read) / WRITE = REMOTE MANUAL MODE | Read: 1 = remote lock. FC05 write FF00 = switch controller to Manual. | BIT | Read/write | ||||
| CO | 5doc 0005 | Reserved (read) / WRITE = GEN BREAKER COMMAND | FC05 write FF00: HGM6120 gen close/open key; HGM6110 gen open (drops load). | BIT | Read/write | ||||
| CO | 6doc 0006 | Mains On-load (read) / WRITE = MAINS OR GEN BREAKER COMMAND | Read: 1 = mains on load. FC05 FF00: HGM6120 mains close/open; HGM6110 gen close. | BIT | Read/write | ||||
| CO | 7doc 0007 | Gen On-load | BIT | Read | |||||
| CO | 8doc 0008 | Emergency Stop | BIT | Read | |||||
| CO | 9doc 0009 | Overspeed Shutdown | BIT | Read | |||||
| CO | 10doc 0010 | Underspeed Shutdown | BIT | Read | |||||
| CO | 11doc 0011 | Speed Signal Loss Shutdown | BIT | Read | |||||
| CO | 12doc 0012 | Overfrequency Shutdown | BIT | Read | |||||
| CO | 13doc 0013 | Underfrequency Shutdown | BIT | Read | |||||
| CO | 14doc 0014 | Overvoltage Shutdown | BIT | Read | |||||
| CO | 15doc 0015 | Undervoltage Shutdown | BIT | Read | |||||
| CO | 16doc 0016 | Gen Overcurrent Shutdown | BIT | Read | |||||
| CO | 17doc 0017 | Crank Failure | BIT | Read | |||||
| CO | 18doc 0018 | High Water Temp. Shutdown | BIT | Read | |||||
| CO | 19doc 0019 | Low Oil Pressure Shutdown | BIT | Read | |||||
| CO | 20doc 0020 | Frequency Loss Alarm | BIT | Read | |||||
| CO | 21doc 0021 | Input Shutdown Alarm | BIT | Read | |||||
| CO | 22doc 0022 | Low Fuel Level Shutdown | BIT | Read | |||||
| CO | 23doc 0023 | Low Coolant Level Shutdown | BIT | Read | |||||
| CO | 24doc 0024 | High Water Temp. Warning | BIT | Read | |||||
| CO | 25doc 0025 | Low Oil Pressure Warning | BIT | Read | |||||
| CO | 26doc 0026 | Gen Overcurrent Warning | BIT | Read | |||||
| CO | 27doc 0027 | Stop Failure Warning | BIT | Read | |||||
| CO | 28doc 0028 | Low Fuel Level Warning | BIT | Read | |||||
| CO | 29doc 0029 | Charging Failure Warning | BIT | Read | |||||
| CO | 30doc 0030 | Battery Undervoltage Warning | BIT | Read | |||||
| CO | 31doc 0031 | Battery Overvoltage Warning | BIT | Read | |||||
| CO | 32doc 0032 | Input Warning Alarm | BIT | Read | |||||
| CO | 33doc 0033 | Speed Signal Loss Warning | BIT | Read | |||||
| CO | 34doc 0034 | Low Coolant Level Warning | BIT | Read | |||||
| CO | 35doc 0035 | Temp. Sensor Open Warning | BIT | Read | |||||
| CO | 36doc 0036 | Oil Pressure Sensor Open Warning | BIT | Read | |||||
| CO | 37doc 0037 | Maintenance Time Due Warning | BIT | Read | |||||
| CO | 38doc 0038 | Charger Fail to Charge Warning | BIT | Read | |||||
| CO | 39doc 0039 | Overpower Warning | BIT | Read | |||||
| CO | 40doc 0040 | Test Mode | BIT | Read | |||||
| CO | 41doc 0041 | Auto Mode | BIT | Read | |||||
| CO | 42doc 0042 | Manual Mode | BIT | Read | |||||
| CO | 43doc 0043 | Stop Mode | BIT | Read | |||||
| CO | 44doc 0044 | Temp. Sensor Open Shutdown | BIT | Read | |||||
| CO | 45doc 0045 | Oil Pressure Sensor Open Shutdown | BIT | Read | |||||
| CO | 46doc 0046 | Maintenance Time Due Shutdown | BIT | Read | |||||
| CO | 47doc 0047 | Overpower Shutdown | BIT | Read | |||||
| CO | 48doc 0048 | Emergency Stop Input | BIT | Read | |||||
| CO | 49doc 0049 | Aux. Input 1 | BIT | Read | |||||
| CO | 50doc 0050 | Aux. Input 2 | BIT | Read | |||||
| CO | 51doc 0051 | Aux. Input 3 | BIT | Read | |||||
| CO | 52doc 0052 | Aux. Input 4 | BIT | Read | |||||
| CO | 53doc 0053 | Aux. Input 5 | BIT | Read | |||||
| CO | 54doc 0054 | Liquid Leakage Shutdown (HGM6100N) / Reserved (CAN) | Meaning differs by variant. | BIT | Read | ||||
| CO | 56doc 0056 | Crank Relay Output | BIT | Read | |||||
| CO | 57doc 0057 | Fuel Relay Output | BIT | Read | |||||
| CO | 58doc 0058 | Aux. Output 1 | BIT | Read | |||||
| CO | 59doc 0059 | Aux. Output 2 | BIT | Read | |||||
| CO | 60doc 0060 | Aux. Output 3 | BIT | Read | |||||
| CO | 61doc 0061 | Aux. Output 4 | BIT | Read | |||||
| CO | 62doc 0062 | Overcurrent Shutdown Input (HGM6100N) / Fuel 1 Output Control (CAN) | Meaning differs by variant. | BIT | Read | ||||
| CO | 63doc 0063 | Overspeed Shutdown Input (HGM6100N) / Liquid Leakage Warning (CAN) | Meaning differs by variant. | BIT | Read | ||||
| CO | 64doc 0064 | Mains Fault | BIT | Read | |||||
| CO | 65doc 0065 | Mains Normal | BIT | Read | |||||
| CO | 66doc 0066 | Mains Overvoltage | BIT | Read | |||||
| CO | 67doc 0067 | Mains Undervoltage | BIT | Read | |||||
| CO | 68doc 0068 | Mains Loss Phase | BIT | Read | |||||
| CO | 69doc 0069 | Mains Blackout | BIT | Read | |||||
| CO | 70doc 0070 | High Temp. Shutdown (HGM6100N) / Reserved (CAN) | HGM6100N: linked to the analog temperature sensor. | BIT | Read | ||||
| CO | 71doc 0071 | Low Oil Pressure Shutdown (HGM6100N) / Reserved (CAN) | HGM6100N: linked to the analog oil pressure sensor. | BIT | Read | ||||
| CO | 72doc 0072 | Gen Normal | BIT | Read | |||||
| CO | 73doc 0073 | Gen Overvoltage | BIT | Read | |||||
| CO | 74doc 0074 | Gen Undervoltage | BIT | Read | |||||
| CO | 75doc 0075 | Gen Overfrequency | BIT | Read | |||||
| CO | 76doc 0076 | Gen Underfrequency | BIT | Read | |||||
| CO | 77doc 0077 | Gen Overcurrent | BIT | Read | |||||
| CO | 78doc 0078 | Scheduled Not Run Time Indication | BIT | Read | |||||
| CO | 79doc 0079 | Liquid Leakage Warning (HGM6100N) / ECU Warning (CAN) | Meaning differs by variant. | BIT | Read | ||||
| CO | 80doc 0080 | ECU Shutdown Alarm | HGM6100CAN only. | BIT | Read | ||||
| CO | 81doc 0081 | ECU Comm. Failure Alarm | HGM6100CAN only. | BIT | Read | ||||
| HR | 0doc 0000 | Mains UA | Mains phase A to neutral voltage. | UINT16 | V | Read | |||
| HR | 1doc 0001 | Mains UB | UINT16 | V | Read | ||||
| HR | 2doc 0002 | Mains UC | UINT16 | V | Read | ||||
| HR | 3doc 0003 | Mains UAB | Mains line-to-line voltage A-B. | UINT16 | V | Read | |||
| HR | 4doc 0004 | Mains UBC | UINT16 | V | Read | ||||
| HR | 5doc 0005 | Mains UCA | UINT16 | V | Read | ||||
| HR | 7doc 0007 | Gen UA | Generator phase A to neutral voltage. | UINT16 | V | Read | |||
| HR | 8doc 0008 | Gen UB | UINT16 | V | Read | ||||
| HR | 9doc 0009 | Gen UC | UINT16 | V | Read | ||||
| HR | 10doc 0010 | Gen UAB | Generator line-to-line voltage A-B. | UINT16 | V | Read | |||
| HR | 11doc 0011 | Gen UBC | UINT16 | V | Read | ||||
| HR | 12doc 0012 | Gen UCA | UINT16 | V | Read | ||||
| HR | 14doc 0014 | A Phase Current | UINT16 | × 0.1 | A | Read | |||
| HR | 15doc 0015 | B Phase Current | UINT16 | × 0.1 | A | Read | |||
| HR | 16doc 0016 | C Phase Current | UINT16 | × 0.1 | A | Read | |||
| HR | 17doc 0017 | Water Temp. Value | Coolant temperature; listed as unsigned. | UINT16 | °C | Read | |||
| HR | 18doc 0018 | Water Temp. Sensor Resistance | UINT16 | × 0.1 | Ω | Read | |||
| HR | 19doc 0019 | Oil Pressure Value | UINT16 | kPa | Read | ||||
| HR | 20doc 0020 | Oil Pressure Sensor Resistance | UINT16 | × 0.1 | Ω | Read | |||
| HR | 21doc 0021 | Fuel Level Value | UINT16 | % | Read | ||||
| HR | 22doc 0022 | Fuel Level Sensor Resistance | UINT16 | × 0.1 | Ω | Read | |||
| HR | 23doc 0023 | Engine Speed | UINT16 | rpm | Read | ||||
| HR | 24doc 0024 | Battery Voltage | UINT16 | × 0.1 | V | Read | |||
| HR | 25doc 0025 | D+ Voltage | Charge alternator D+ terminal voltage. | UINT16 | × 0.1 | V | Read | ||
| HR | 26doc 0026 | Active Power | Total generator active power. | INT16 | kW | Read | |||
| HR | 27doc 0027 | Reactive Power | INT16 | kvar | Read | ||||
| HR | 28doc 0028 | Apparent Power | INT16 | kVA | Read | ||||
| HR | 29doc 0029 | Power Factor | INT16 | × 0.01 | Read | ||||
| HR | 30doc 0030 | Maintenance Countdown Hours | UINT16 | h | Read | ||||
| HR | 31doc 0031 | Maintenance Countdown Minutes | UINT16 | min | Read | ||||
| HR | 34doc 0034 | Controller Running Status | Engine/genset sequence state. | 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 = Stop Failure; 15 = After Stop | |||
| HR | 36doc 0036 | Auto Running Status | Remote start sequence state. | UINT16 | Read | 0 = No Delay; 1 = Start Delay; 2 = Stop Delay | |||
| HR | 38doc 0038 | ATS Running Status | Transfer state code; the document gives no value table. | UINT16 | Read | ||||
| HR | 40doc 0040 | Mains Status | UINT16 | Read | 0 = Normal; 1 = Abnormal; 2 = No Delay | ||||
| HR | 42doc 0042 | Accum. Run Time Hours (high part) | Total hours = this x 10000 + next register. | UINT16 | h | Read | |||
| HR | 43doc 0043 | Accum. Run Time Hours (low part) | 0-9999; add to high part x 10000. | UINT16 | h | Read | |||
| HR | 44doc 0044 | Accum. Run Time Minutes | UINT16 | min | Read | ||||
| HR | 45doc 0045 | Accum. Run Time Seconds | UINT16 | s | Read | ||||
| HR | 46doc 0046 | Accum. Start Count (high part) | Total starts = this x 10000 + next register. | UINT16 | Read | ||||
| HR | 47doc 0047 | Accum. Start Count (low part) | 0-9999; add to high part x 10000. | UINT16 | Read | ||||
| HR | 48doc 0048 | Accum. Energy (high part) | Total kWh = this x 10000 + next register. | UINT16 | kWh | Read | |||
| HR | 49doc 0049 | Accum. Energy (low part) | 0-9999; add to high part x 10000. | UINT16 | kWh | Read | |||
| HR | 50doc 0050 | Software Version | UINT16 | × 0.1 | Read | ||||
| HR | 51doc 0051 | Hardware Version | UINT16 | × 0.1 | Read | ||||
| HR | 52doc 0052 | A Phase Active Power | INT16 | kW | Read | ||||
| HR | 53doc 0053 | B Phase Active Power | INT16 | kW | Read | ||||
| HR | 54doc 0054 | C Phase Active Power | INT16 | kW | Read | ||||
| HR | 71doc 0071 | Controller Model | Model code number. | UINT16 | Read | ||||
| HR | 72doc 0072 | Controller Time: Year | Last two digits of the year. | UINT16 | Read | ||||
| HR | 73doc 0073 | Controller Time: Month | UINT16 | Read | |||||
| HR | 74doc 0074 | Controller Time: Day | UINT16 | Read | |||||
| HR | 75doc 0075 | Controller Time: Weekday | 0-6. | UINT16 | Read | ||||
| HR | 76doc 0076 | Controller Time: Hour | UINT16 | Read | |||||
| HR | 77doc 0077 | Controller Time: Minute | UINT16 | Read | |||||
| HR | 78doc 0078 | Controller Time: Second | UINT16 | Read | |||||
| HR | 79doc 0079 | Firmware Release Year | Last two digits of the year. | UINT16 | Read | ||||
| HR | 80doc 0080 | Firmware Release Month | UINT16 | Read | |||||
| HR | 81doc 0081 | Firmware Release Day | UINT16 | Read | |||||
| HR | 92doc 0092 | Gen UA Phase Angle | INT16 | ° | Read | ||||
| HR | 93doc 0093 | Gen UB Phase Angle | INT16 | ° | Read | ||||
| HR | 94doc 0094 | Gen UC Phase Angle | INT16 | ° | Read | ||||
| HR | 95doc 0095 | Mains UA Phase Angle | INT16 | ° | Read | ||||
| HR | 96doc 0096 | Mains UB Phase Angle | INT16 | ° | Read | ||||
| HR | 97doc 0097 | Mains UC Phase Angle | INT16 | ° | Read |
Notes on this map
- Coil addresses 0-6 are shared: FC01 reads return status bits, while an FC05 write of FF00 to the same address issues a remote command (start, stop, test, auto, manual, breaker). Each entry names both meanings; the write meaning is in capitals.
- HGM6110 (auto start) and HGM6120 (AMF) differ at command coils 5 and 6; HGM6100N and HGM6100CAN differ at several status coils (54, 62, 63, 70, 71, 79). Both meanings are given in the names.
- The FC05 table describes the command value as '00FFH', but the worked example frame sends FF 00 (high byte FF), which is also the standard Modbus ON value; use FF00.
- Left out: mains and gen frequency (0006, 0013). The table prints ratio 0.1 Hz, but NOTE 1 uses frequency with ratio 0.01 Hz as its worked example, so the scale is contradictory.
- Left out: the state delay registers (0035, 0037, 0039, 0041) and Load Output Percentage (0055), because no ratio is printed for them.
- Left out: the 32-bit current and power registers at 0206-0217 and 2500-2511. The document says value = high part x 65536 + low part but never says which address holds the high part, so the word order is not established. The 16-bit versions (0014-0016, 0026-0028) are included.
- Left out: ECU-only (HGM6100CAN) engine data 0032-0033 and 0056-0219 (J1939 values, DM1/DM2 fault codes, aftertreatment indicators) and the HGM6100N fuel-level logging block 0098-0114.
- A reading of 32766 means no valid data (the controller shows ###).
- Water temperature, oil pressure and fuel level are documented as unsigned, so negative coolant temperatures cannot be represented as documented.
- The ATS running status (0038) has no value table in the document; only the raw code is available.
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 HGM6100N / HGM6100CAN Series
What Modbus registers does the SmartGen HGM6100N / HGM6100CAN Series have?
This map lists 145 registers: 81 coils, 64 holding registers. 7 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.
Are the SmartGen HGM6100N / HGM6100CAN Series 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) next to a 'PLC Address' (1-based: coils 0001.., holding registers 40001..). The document's own example reads battery voltage at Modbus address 0024 with start address 0x0018, which confirms the Modbus Address column is the 0-based PDU address.
What are the minimum Modbus registers to integrate the SmartGen HGM6100N / HGM6100CAN Series?
Start with CO 0 Common Alarm (read) / WRITE = REMOTE START ENGINE (Common alarm (read) / remote start (write)); CO 41 Auto Mode (Auto mode active); HR 34 Controller Running Status (Genset running state); HR 7 Gen UA (Generator phase A voltage); HR 14 A Phase Current (Phase A current); HR 26 Active Power (Total active power); HR 23 Engine Speed (Engine speed); HR 24 Battery Voltage (Battery voltage).
How do I enable Modbus control of the SmartGen HGM6100N / HGM6100CAN Series?
Set a unique Module Address (1-254, default 1) from the front-panel parameter menu (default password 0318); the new setting applies once saved. Baud rate (2400/4800/9600/19200/115200, default 9600) and parity (none/odd/even, default none) are also controller settings.
Where is the official SmartGen HGM6100N / HGM6100CAN Series Modbus documentation?
The source is HGM6100N/HGM6100CAN Genset Controller Communication Protocol, revision 2025-07-01 (v1.7), published free by SmartGen at https://www.smartgen.cn/yun/data/download/HGM6100N_HGM6100CAN_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 HGM7100N Series
HGM7110N (auto start) and HGM7120N (AMF) genset controllers, protocol document v1.3.
Also known as: HGM7110N, HGM7120N - Generator controller
SmartGen HGM9510N / HGM9520N / HGM9530N
HGM9510N, HGM9520N and HGM9530N paralleling genset controllers, protocol document v1.5.
Also known as: HGM9520N, HGM9530N
Source: HGM6100N/HGM6100CAN Genset Controller Communication Protocol · rev. 2025-07-01 (v1.7). Register numbers, types, scaling and units are reproduced as published; descriptions are our own.