Easy Modbus
  1. Home
  2. Modbus register maps
  3. SmartGen
  4. HGM4010N / HGM4020N

Generator controller · Modbus register map

SmartGen HGM4010N / HGM4020N Modbus register map

Updated 25 October 2026

Short answer

SmartGen's HGM4000N family are compact single-genset controllers: the HGM4010N starts and stops on a remote signal, the HGM4020N adds mains monitoring and automatic transfer (AMF). One RS485 port is a Modbus RTU slave with fixed tables: alarm and status bits as coils (FC01), measurements and counters as holding registers (FC03), and remote keys as single-coil writes (FC05). This map covers the status and alarm coils, mains and generator voltages, currents, powers, engine values, sequence states, counters and the remote start/stop/mode/breaker commands.

This page lists 150 Modbus registers for the SmartGen HGM4010N / HGM4020N — 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
HGM4010N / HGM4020N
Equipment type
Generator controller
Registers
150 (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)
32-bit word order
CDAB low word first (word-swapped)
Also known as
HGM4010N, HGM4000N
Source document
HGM4000N Genset Controller Communication Protocol · rev. 2023-04-20 (v1.2)
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: SmartGen HGM4010N / HGM4020N

Integration in brief

Wire to RS485 A/B, set the Controller Address, then poll holding registers 0000-0081 with FC03 and coils 0000-0084 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.

RegisterNameTypeWhyAccess
CO 0Common Alarm (read) / WRITE = REMOTE STARTBITCommon alarm (read) / remote start (write)Read/write
CO 41Auto ModeBITAuto mode activeRead
HR 34Controller Running StatusUINT16Genset running stateRead
HR 7Gen UAUINT16Generator phase A voltageRead
HR 14A Phase CurrentUINT16Phase A currentRead
HR 26Active PowerUINT16Total active powerRead
HR 23SpeedUINT16Engine speedRead
HR 24Battery VoltageUINT16Battery voltageRead

Enable Modbus control & writes

Set a unique Controller Address (1-254, default 1) from the front panel: menu, Parameter Setting, password (default 0318), Controller Address. The setting applies once saved. Parity is none, odd or even (default none); the document gives 9600 bps as the only baud rate.

Byte order & addressing

Network setup

Watch out for

SmartGen HGM4010N / HGM4020N 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.

150 of 150 shown
SmartGen HGM4010N / HGM4020N Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
CO0doc 0000Common Alarm (read) / WRITE = REMOTE STARTRead: 1 = common alarm. FC05 write FF00 = remote start; the engine will crank.BITRead/write
CO1doc 0001Common Warning Alarm (read) / WRITE = REMOTE STOPRead: 1 = common warning. FC05 write FF00 = remote stop command.BITRead/write
CO2doc 0002Common Shutdown Alarm (read) / WRITE = REMOTE TEST MODERead: 1 = common shutdown. FC05 write FF00 = remote Test command.BITRead/write
CO3doc 0003Remote Mode (read) / WRITE = REMOTE AUTO MODERead: 1 = remote mode. FC05 write FF00 = switch controller to Auto.BITRead/write
CO4doc 0004Reserved (read) / WRITE = REMOTE MANUAL MODEFC05 write FF00 = switch controller to Manual.BITRead/write
CO5doc 0005Reserved (read) / WRITE = GEN BREAKER COMMANDFC05 write FF00: HGM4020N gen close/open key; HGM4010N gen open key.BITRead/write
CO6doc 0006Mains On-load (read) / WRITE = MAINS OR GEN BREAKER COMMANDRead: 1 = mains on load. FC05 FF00: HGM4020N mains close/open; HGM4010N gen close.BITRead/write
CO7doc 0007Gen On-load1 = generator supplying the load.BITRead
CO8doc 0008Emergency StopBITRead
CO9doc 0009Overspeed Alarm ShutdownBITRead
CO10doc 0010Underspeed Alarm ShutdownBITRead
CO11doc 0011Speed Signal Loss ShutdownBITRead
CO12doc 0012Overfrequency Alarm ShutdownBITRead
CO13doc 0013Underfrequency Alarm ShutdownBITRead
CO14doc 0014Overvoltage Alarm ShutdownBITRead
CO15doc 0015Undervoltage Alarm ShutdownBITRead
CO16doc 0016Gen Overcurrent ShutdownBITRead
CO17doc 0017Crank FailureBITRead
CO18doc 0018High Water Temp. Alarm ShutdownBITRead
CO19doc 0019Low Oil Pressure Alarm ShutdownBITRead
CO20doc 0020Frequency Loss AlarmBITRead
CO21doc 0021Input Shutdown AlarmBITRead
CO22doc 0022Low Fuel Level Shutdown AlarmBITRead
CO23doc 0023Low Coolant Level Shutdown AlarmBITRead
CO24doc 0024High Water Temp. Warning AlarmBITRead
CO25doc 0025Low Oil Pressure Warning AlarmBITRead
CO26doc 0026Gen Overcurrent Warning AlarmBITRead
CO27doc 0027Stop Failure Warning AlarmBITRead
CO28doc 0028Low Fuel Level WarningBITRead
CO29doc 0029Charging Failure WarningBITRead
CO30doc 0030Battery Undervoltage Warning AlarmBITRead
CO31doc 0031Battery Overvoltage Warning AlarmBITRead
CO32doc 0032Input Warning AlarmBITRead
CO33doc 0033Speed Signal Loss WarningBITRead
CO34doc 0034Low Coolant Level WarningBITRead
CO35doc 0035Temp. Sensor Open WarningBITRead
CO36doc 0036Oil Pressure Sensor Open WarningBITRead
CO37doc 0037Fuel Level Sensor Open WarningBITRead
CO38doc 0038Aux. Sensor Open WarningBITRead
CO39doc 0039Aux. Sensor WarningBITRead
CO40doc 0040Test Mode1 = controller in Test mode.BITRead
CO41doc 0041Auto Mode1 = controller in Auto mode.BITRead
CO42doc 0042Manual Mode1 = controller in Manual mode.BITRead
CO43doc 0043Stop Mode1 = controller in Stop mode.BITRead
CO44doc 0044Temp. Sensor Open ShutdownBITRead
CO45doc 0045Oil Pressure Sensor Open ShutdownBITRead
CO46doc 0046Fuel Level Sensor Open ShutdownBITRead
CO47doc 0047Aux. Sensor Open ShutdownBITRead
CO48doc 0048Emergency Stop InputPhysical emergency-stop input state.BITRead
CO49doc 0049Aux. Input 1BITRead
CO50doc 0050Aux. Input 2BITRead
CO51doc 0051Aux. Input 3BITRead
CO52doc 0052Aux. Input 4BITRead
CO53doc 0053Aux. Input 5BITRead
CO56doc 0056Crank Relay OutputPhysical crank relay state.BITRead
CO57doc 0057Fuel Relay OutputPhysical fuel relay state.BITRead
CO58doc 0058Aux. Output 1BITRead
CO59doc 0059Aux. Output 2BITRead
CO60doc 0060Aux. Output 3BITRead
CO61doc 0061Aux. Output 4BITRead
CO62doc 0062Aux. Output 5BITRead
CO63doc 0063Maintenance Time Due WarningBITRead
CO64doc 0064Mains Fault1 = mains abnormal.BITRead
CO65doc 0065Mains Normal1 = mains within limits.BITRead
CO66doc 0066Mains OvervoltageBITRead
CO67doc 0067Mains UndervoltageBITRead
CO68doc 0068Mains Loss PhaseBITRead
CO69doc 0069Mains BlackoutBITRead
CO70doc 0070Charger Fail to Charge WarningBITRead
CO71doc 0071Overpower WarningBITRead
CO72doc 0072Gen Normal1 = generator output within limits.BITRead
CO73doc 0073Gen Overvoltage WarningBITRead
CO74doc 0074Gen Undervoltage WarningBITRead
CO75doc 0075Gen Overfrequency WarningBITRead
CO76doc 0076Gen Underfrequency WarningBITRead
CO77doc 0077Gen Overcurrent WarningBITRead
CO78doc 0078Scheduled Not Run1 = a scheduled not-run period is active.BITRead
CO79doc 0079ECU WarningBITRead
CO80doc 0080Aux. Sensor ShutdownBITRead
CO81doc 0081Maintenance Time Due Shutdown AlarmBITRead
CO82doc 0082Overpower Shutdown AlarmBITRead
CO83doc 0083ECU Alarm ShutdownBITRead
CO84doc 0084ECU Failure ShutdownBITRead
HR0doc 0000Mains UAMains phase-to-neutral voltage.UINT16VRead
HR1doc 0001Mains UBMains phase-to-neutral voltage.UINT16VRead
HR2doc 0002Mains UCMains phase-to-neutral voltage.UINT16VRead
HR3doc 0003Mains UABMains line-to-line voltage.UINT16VRead
HR4doc 0004Mains UBCMains line-to-line voltage.UINT16VRead
HR5doc 0005Mains UCAMains line-to-line voltage.UINT16VRead
HR7doc 0007Gen UAGenerator phase-to-neutral voltage.UINT16VRead
HR8doc 0008Gen UBGenerator phase-to-neutral voltage.UINT16VRead
HR9doc 0009Gen UCGenerator phase-to-neutral voltage.UINT16VRead
HR10doc 0010Gen UABGenerator line-to-line voltage.UINT16VRead
HR11doc 0011Gen UBCGenerator line-to-line voltage.UINT16VRead
HR12doc 0012Gen UCAGenerator line-to-line voltage.UINT16VRead
HR14doc 0014A Phase CurrentUINT16× 0.1ARead
HR15doc 0015B Phase CurrentUINT16× 0.1ARead
HR16doc 0016C Phase CurrentUINT16× 0.1ARead
HR17doc 0017Water Temp. ValueCoolant temperature; 32766 = sensor open, 32767 = no ECU data.UINT16°CRead
HR18doc 0018Water Temp. Resist. ValueResistance measured on the temperature sensor input.UINT16× 0.1ΩRead
HR20doc 0020OP Resist. ValueResistance measured on the oil pressure sensor input.UINT16× 0.1ΩRead
HR22doc 0022Level Resist. ValueResistance measured on the fuel level sensor input.UINT16× 0.1ΩRead
HR23doc 0023SpeedEngine speed.UINT16rpmRead
HR24doc 0024Battery VoltageUINT16× 0.1VRead
HR25doc 0025D+ VoltageCharge alternator D+ terminal voltage.UINT16× 0.1VRead
HR26doc 0026Active PowerTotal generator active power (unsigned as documented).UINT16× 0.1kWRead
HR27doc 0027Reactive PowerTotal reactive power (unsigned as documented).UINT16× 0.1kvarRead
HR28doc 0028Apparent PowerTotal apparent power.UINT16× 0.1kVARead
HR29doc 0029Power FactorUnit printed as CosΦ; unsigned.UINT16× 0.01Read
HR32doc 0032Maintenance Countdown hHours left until maintenance is due (0-5000).UINT16hRead
HR33doc 0033Maintenance Countdown minMinutes part of the maintenance countdown.UINT16minRead
HR34doc 0034Controller Running StatusEngine/genset sequence state.UINT16Read0 = Standby; 1 = Preheat; 2 = Fuel; 3 = Crank; 4 = Crank Rest; 5 = Safety Run; 6 = Start Idle; 7 = High Speed Warming Up; 8 = On-load; 9 = Normal Running; 10 = High Speed Cooling; 11 = Stop Idle; 12 = ETS; 13 = Wait for Stop; 14 = Stop Failure
HR35doc 0035Running Status DelayDelay value for the current sequence state (0-3600).UINT16sRead
HR36doc 0036Auto Running StatusAutomatic start/stop delay state.UINT16Read0 = Start; 1 = Stop; 2 = No Delay
HR38doc 0038ATS Running StatusTransfer state code.UINT16Read0 = No Delay; 1 = Transfer Rest
HR40doc 0040Mains StatusUINT16Read0 = Normal; 1 = Abnormal; 2 = No Delay
HR41doc 0041Mains Status DelayDelay value for the mains status (0-3600).UINT16sRead
HR42doc 0042Accum. Running Time (h) MSBHigh part of total run hours (0-9000); combination rule not stated.UINT16hRead
HR43doc 0043Accum. Running Time (h) LSBLow part of total run hours (0-9999).UINT16hRead
HR44doc 0044Accum. Running Time (min)UINT16minRead
HR45doc 0045Accum. Running Time (s)UINT16sRead
HR46doc 0046Accum. Start Times MSBHigh part of the start counter (0-9000).UINT16Read
HR47doc 0047Accum. Start Times LSBLow part of the start counter (0-9999).UINT16Read
HR48doc 0048Accum. Energy MSBHigh part of the energy counter (0-9000).UINT16kWhRead
HR49doc 0049Accum. Energy LSBLow part of the energy counter (0-9999).UINT16kWhRead
HR50doc 0050SWSoftware version code; no scaling printed.UINT16Read
HR52doc 0052A Phase Active PowerUINT16× 0.1kWRead
HR53doc 0053B Phase Active PowerUINT16× 0.1kWRead
HR54doc 0054C Phase Active PowerUINT16× 0.1kWRead
HR59doc 0059Oil Temp.Engine value; ratio 1, unsigned.UINT16°CRead
HR60doc 0060Coolant PressureEngine value; ratio 1, unsigned.UINT16kPaRead
HR61doc 0061Fuel PressureEngine value; ratio 1, unsigned.UINT16kPaRead
HR62doc 0062Fuel Temp.Engine value; ratio 1, unsigned.UINT16°CRead
HR63doc 0063Inlet Temp.Engine value; ratio 1, unsigned.UINT16°CRead
HR64doc 0064Exhaust Temp.Engine value; ratio 1, unsigned.UINT16°CRead
HR65doc 0065Turbo PressureEngine value; ratio 1, unsigned.UINT16kPaRead
HR66doc 0066Fuel Consump.Fuel consumption value.UINT16× 0.1LRead
HR68doc 0068-0069Accum. Fuel Consump.Low word at 0068, high word at 0069.UINT32CDAB× 0.1LRead
HR70doc 0070SCM Internal Temp.Controller internal temperature.UINT16× 0.1°CRead
HR71doc 0071Controller ModelModel code; values not listed.UINT16Read
HR72doc 0072Controller Time: YearTwo-digit year (0-99).UINT16yearRead
HR73doc 0073Controller Time: MonthUINT16monthRead
HR74doc 0074Controller Time: DayUINT16dayRead
HR75doc 0075Controller Time: WeekDay of week (0-6).UINT16weekRead
HR76doc 0076Controller Time: hUINT16hRead
HR77doc 0077Controller Time: minUINT16minRead
HR78doc 0078Controller Time: sUINT16sRead
HR79doc 0079Release YearFirmware release date.UINT16yearRead
HR80doc 0080Release MonthFirmware release date.UINT16monthRead
HR81doc 0081Release DayFirmware release date.UINT16dayRead

Notes on this map

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 HGM4010N / HGM4020N

What Modbus registers does the SmartGen HGM4010N / HGM4020N have?

This map lists 150 registers: 83 coils, 67 holding registers. 7 of them can be written. Registers vary with firmware, options and configuration, so confirm against the device.

Are the SmartGen HGM4010N / HGM4020N 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 1-based 'PLC Address' (coils 0001.., holding registers 40001..). The document's examples confirm the Modbus Address column is the PDU address: Accum. Fuel Consump. at 0068 is requested with start address 0x0044, and Remote Manual at 0004 is written to coil 0x0004.

What byte order does the SmartGen HGM4010N / HGM4020N 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 HGM4010N / HGM4020N?

Start with CO 0 Common Alarm (read) / WRITE = REMOTE START (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 Speed (Engine speed); HR 24 Battery Voltage (Battery voltage).

How do I enable Modbus control of the SmartGen HGM4010N / HGM4020N?

Set a unique Controller Address (1-254, default 1) from the front panel: menu, Parameter Setting, password (default 0318), Controller Address. The setting applies once saved. Parity is none, odd or even (default none); the document gives 9600 bps as the only baud rate.

Where is the official SmartGen HGM4010N / HGM4020N Modbus documentation?

The source is HGM4000N Genset Controller Communication Protocol, revision 2023-04-20 (v1.2), published free by SmartGen at https://www.smartgen.cn/yun/data/download/HGM4000N_Protocol_en.pdf.

More SmartGen Modbus register maps

Source: HGM4000N Genset Controller Communication Protocol · rev. 2023-04-20 (v1.2). Register numbers, types, scaling and units are reproduced as published; descriptions are our own.