Easy Modbus
  1. Home
  2. Modbus register maps
  3. SmartGen
  4. HGM6100N / HGM6100CAN Series

Generator controller · Modbus register map

SmartGen HGM6100N / HGM6100CAN Series Modbus register map

Updated 16 October 2026

Short answer

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
Source document
HGM6100N/HGM6100CAN Genset Controller Communication Protocol · rev. 2025-07-01 (v1.7)
Download CSV all columns JSON Manufacturer PDF ↗

Integration notes: SmartGen HGM6100N / HGM6100CAN Series

Integration in brief

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.

RegisterNameTypeWhyAccess
CO 0Common Alarm (read) / WRITE = REMOTE START ENGINEBITCommon 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 PowerINT16Total active powerRead
HR 23Engine SpeedUINT16Engine speedRead
HR 24Battery VoltageUINT16Battery voltageRead

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

Network setup

Watch out for

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.

145 of 145 shown
SmartGen HGM6100N / HGM6100CAN Series Modbus register map
TableAddressNameDescriptionTypeOrderScaleUnitsAccessValues / bits
CO0doc 0000Common Alarm (read) / WRITE = REMOTE START ENGINERead: 1 = common alarm. FC05 write FF00 = remote start; the engine will crank.BITRead/write
CO1doc 0001Common Warning (read) / WRITE = REMOTE STOP ENGINERead: 1 = common warning. FC05 write FF00 = remote stop command.BITRead/write
CO2doc 0002Common Shutdown (read) / WRITE = REMOTE TEST MODERead: 1 = common shutdown alarm. 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 0004Remote Lock (read) / WRITE = REMOTE MANUAL MODERead: 1 = remote lock. FC05 write FF00 = switch controller to Manual.BITRead/write
CO5doc 0005Reserved (read) / WRITE = GEN BREAKER COMMANDFC05 write FF00: HGM6120 gen close/open key; HGM6110 gen open (drops load).BITRead/write
CO6doc 0006Mains On-load (read) / WRITE = MAINS OR GEN BREAKER COMMANDRead: 1 = mains on load. FC05 FF00: HGM6120 mains close/open; HGM6110 gen close.BITRead/write
CO7doc 0007Gen On-loadBITRead
CO8doc 0008Emergency StopBITRead
CO9doc 0009Overspeed ShutdownBITRead
CO10doc 0010Underspeed ShutdownBITRead
CO11doc 0011Speed Signal Loss ShutdownBITRead
CO12doc 0012Overfrequency ShutdownBITRead
CO13doc 0013Underfrequency ShutdownBITRead
CO14doc 0014Overvoltage ShutdownBITRead
CO15doc 0015Undervoltage ShutdownBITRead
CO16doc 0016Gen Overcurrent ShutdownBITRead
CO17doc 0017Crank FailureBITRead
CO18doc 0018High Water Temp. ShutdownBITRead
CO19doc 0019Low Oil Pressure ShutdownBITRead
CO20doc 0020Frequency Loss AlarmBITRead
CO21doc 0021Input Shutdown AlarmBITRead
CO22doc 0022Low Fuel Level ShutdownBITRead
CO23doc 0023Low Coolant Level ShutdownBITRead
CO24doc 0024High Water Temp. WarningBITRead
CO25doc 0025Low Oil Pressure WarningBITRead
CO26doc 0026Gen Overcurrent WarningBITRead
CO27doc 0027Stop Failure WarningBITRead
CO28doc 0028Low Fuel Level WarningBITRead
CO29doc 0029Charging Failure WarningBITRead
CO30doc 0030Battery Undervoltage WarningBITRead
CO31doc 0031Battery Overvoltage WarningBITRead
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 0037Maintenance Time Due WarningBITRead
CO38doc 0038Charger Fail to Charge WarningBITRead
CO39doc 0039Overpower WarningBITRead
CO40doc 0040Test ModeBITRead
CO41doc 0041Auto ModeBITRead
CO42doc 0042Manual ModeBITRead
CO43doc 0043Stop ModeBITRead
CO44doc 0044Temp. Sensor Open ShutdownBITRead
CO45doc 0045Oil Pressure Sensor Open ShutdownBITRead
CO46doc 0046Maintenance Time Due ShutdownBITRead
CO47doc 0047Overpower ShutdownBITRead
CO48doc 0048Emergency Stop InputBITRead
CO49doc 0049Aux. Input 1BITRead
CO50doc 0050Aux. Input 2BITRead
CO51doc 0051Aux. Input 3BITRead
CO52doc 0052Aux. Input 4BITRead
CO53doc 0053Aux. Input 5BITRead
CO54doc 0054Liquid Leakage Shutdown (HGM6100N) / Reserved (CAN)Meaning differs by variant.BITRead
CO56doc 0056Crank Relay OutputBITRead
CO57doc 0057Fuel Relay OutputBITRead
CO58doc 0058Aux. Output 1BITRead
CO59doc 0059Aux. Output 2BITRead
CO60doc 0060Aux. Output 3BITRead
CO61doc 0061Aux. Output 4BITRead
CO62doc 0062Overcurrent Shutdown Input (HGM6100N) / Fuel 1 Output Control (CAN)Meaning differs by variant.BITRead
CO63doc 0063Overspeed Shutdown Input (HGM6100N) / Liquid Leakage Warning (CAN)Meaning differs by variant.BITRead
CO64doc 0064Mains FaultBITRead
CO65doc 0065Mains NormalBITRead
CO66doc 0066Mains OvervoltageBITRead
CO67doc 0067Mains UndervoltageBITRead
CO68doc 0068Mains Loss PhaseBITRead
CO69doc 0069Mains BlackoutBITRead
CO70doc 0070High Temp. Shutdown (HGM6100N) / Reserved (CAN)HGM6100N: linked to the analog temperature sensor.BITRead
CO71doc 0071Low Oil Pressure Shutdown (HGM6100N) / Reserved (CAN)HGM6100N: linked to the analog oil pressure sensor.BITRead
CO72doc 0072Gen NormalBITRead
CO73doc 0073Gen OvervoltageBITRead
CO74doc 0074Gen UndervoltageBITRead
CO75doc 0075Gen OverfrequencyBITRead
CO76doc 0076Gen UnderfrequencyBITRead
CO77doc 0077Gen OvercurrentBITRead
CO78doc 0078Scheduled Not Run Time IndicationBITRead
CO79doc 0079Liquid Leakage Warning (HGM6100N) / ECU Warning (CAN)Meaning differs by variant.BITRead
CO80doc 0080ECU Shutdown AlarmHGM6100CAN only.BITRead
CO81doc 0081ECU Comm. Failure AlarmHGM6100CAN only.BITRead
HR0doc 0000Mains UAMains phase A to neutral voltage.UINT16VRead
HR1doc 0001Mains UBUINT16VRead
HR2doc 0002Mains UCUINT16VRead
HR3doc 0003Mains UABMains line-to-line voltage A-B.UINT16VRead
HR4doc 0004Mains UBCUINT16VRead
HR5doc 0005Mains UCAUINT16VRead
HR7doc 0007Gen UAGenerator phase A to neutral voltage.UINT16VRead
HR8doc 0008Gen UBUINT16VRead
HR9doc 0009Gen UCUINT16VRead
HR10doc 0010Gen UABGenerator line-to-line voltage A-B.UINT16VRead
HR11doc 0011Gen UBCUINT16VRead
HR12doc 0012Gen UCAUINT16VRead
HR14doc 0014A Phase CurrentUINT16× 0.1ARead
HR15doc 0015B Phase CurrentUINT16× 0.1ARead
HR16doc 0016C Phase CurrentUINT16× 0.1ARead
HR17doc 0017Water Temp. ValueCoolant temperature; listed as unsigned.UINT16°CRead
HR18doc 0018Water Temp. Sensor ResistanceUINT16× 0.1ΩRead
HR19doc 0019Oil Pressure ValueUINT16kPaRead
HR20doc 0020Oil Pressure Sensor ResistanceUINT16× 0.1ΩRead
HR21doc 0021Fuel Level ValueUINT16%Read
HR22doc 0022Fuel Level Sensor ResistanceUINT16× 0.1ΩRead
HR23doc 0023Engine SpeedUINT16rpmRead
HR24doc 0024Battery VoltageUINT16× 0.1VRead
HR25doc 0025D+ VoltageCharge alternator D+ terminal voltage.UINT16× 0.1VRead
HR26doc 0026Active PowerTotal generator active power.INT16kWRead
HR27doc 0027Reactive PowerINT16kvarRead
HR28doc 0028Apparent PowerINT16kVARead
HR29doc 0029Power FactorINT16× 0.01Read
HR30doc 0030Maintenance Countdown HoursUINT16hRead
HR31doc 0031Maintenance Countdown MinutesUINT16minRead
HR34doc 0034Controller Running StatusEngine/genset sequence state.UINT16Read0 = 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
HR36doc 0036Auto Running StatusRemote start sequence state.UINT16Read0 = No Delay; 1 = Start Delay; 2 = Stop Delay
HR38doc 0038ATS Running StatusTransfer state code; the document gives no value table.UINT16Read
HR40doc 0040Mains StatusUINT16Read0 = Normal; 1 = Abnormal; 2 = No Delay
HR42doc 0042Accum. Run Time Hours (high part)Total hours = this x 10000 + next register.UINT16hRead
HR43doc 0043Accum. Run Time Hours (low part)0-9999; add to high part x 10000.UINT16hRead
HR44doc 0044Accum. Run Time MinutesUINT16minRead
HR45doc 0045Accum. Run Time SecondsUINT16sRead
HR46doc 0046Accum. Start Count (high part)Total starts = this x 10000 + next register.UINT16Read
HR47doc 0047Accum. Start Count (low part)0-9999; add to high part x 10000.UINT16Read
HR48doc 0048Accum. Energy (high part)Total kWh = this x 10000 + next register.UINT16kWhRead
HR49doc 0049Accum. Energy (low part)0-9999; add to high part x 10000.UINT16kWhRead
HR50doc 0050Software VersionUINT16× 0.1Read
HR51doc 0051Hardware VersionUINT16× 0.1Read
HR52doc 0052A Phase Active PowerINT16kWRead
HR53doc 0053B Phase Active PowerINT16kWRead
HR54doc 0054C Phase Active PowerINT16kWRead
HR71doc 0071Controller ModelModel code number.UINT16Read
HR72doc 0072Controller Time: YearLast two digits of the year.UINT16Read
HR73doc 0073Controller Time: MonthUINT16Read
HR74doc 0074Controller Time: DayUINT16Read
HR75doc 0075Controller Time: Weekday0-6.UINT16Read
HR76doc 0076Controller Time: HourUINT16Read
HR77doc 0077Controller Time: MinuteUINT16Read
HR78doc 0078Controller Time: SecondUINT16Read
HR79doc 0079Firmware Release YearLast two digits of the year.UINT16Read
HR80doc 0080Firmware Release MonthUINT16Read
HR81doc 0081Firmware Release DayUINT16Read
HR92doc 0092Gen UA Phase AngleINT16°Read
HR93doc 0093Gen UB Phase AngleINT16°Read
HR94doc 0094Gen UC Phase AngleINT16°Read
HR95doc 0095Mains UA Phase AngleINT16°Read
HR96doc 0096Mains UB Phase AngleINT16°Read
HR97doc 0097Mains UC Phase AngleINT16°Read

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 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

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.