{
 "manufacturer": "SmartGen",
 "manufacturer_slug": "smartgen",
 "model": "HGM6100N / HGM6100CAN Series",
 "model_slug": "hgm6100n",
 "short_model": "HGM6100N",
 "aliases": [
  "HGM6100CAN",
  "HGM6110N",
  "HGM6120N",
  "HGM6110CAN",
  "HGM6120CAN"
 ],
 "equipment_type": "Generator controller",
 "applies_to": "HGM6100N and HGM6100CAN genset controllers (HGM6110 auto-start and HGM6120 AMF variants), protocol document v1.7.",
 "summary": "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.",
 "transport": [
  "RTU"
 ],
 "defaults": {
  "unit_id": 1,
  "baud": 9600,
  "parity": "None",
  "data_bits": 8,
  "stop_bits": 1,
  "tcp_port": null
 },
 "addressing": {
  "convention": "0-based",
  "note": "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."
 },
 "default_word_order": null,
 "firmware": null,
 "source": {
  "title": "HGM6100N/HGM6100CAN Genset Controller Communication Protocol",
  "doc_number": null,
  "revision_date": "2025-07-01 (v1.7)",
  "url": "https://www.smartgen.cn/yun/data/download/HGM6100N_HGM6100CAN_Protocol_en.pdf",
  "pages": "pp. 4-5 (port settings, wiring), 6-10 (FC01 coils and example), 11-20 (FC03 data, notes, example), 20 (FC05 remote coils), 20-22 (status tables), 25-26 (address setting, FAQ)"
 },
 "notes": [
  "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."
 ],
 "registers": [
  {
   "table": "coil",
   "address": 0,
   "documented": "0000",
   "name": "Common Alarm (read) / WRITE = REMOTE START ENGINE",
   "description": "Read: 1 = common alarm. FC05 write FF00 = remote start; the engine will crank.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 1,
   "documented": "0001",
   "name": "Common Warning (read) / WRITE = REMOTE STOP ENGINE",
   "description": "Read: 1 = common warning. FC05 write FF00 = remote stop command.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 2,
   "documented": "0002",
   "name": "Common Shutdown (read) / WRITE = REMOTE TEST MODE",
   "description": "Read: 1 = common shutdown alarm. FC05 write FF00 = remote Test command.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 3,
   "documented": "0003",
   "name": "Remote Mode (read) / WRITE = REMOTE AUTO MODE",
   "description": "Read: 1 = remote mode. FC05 write FF00 = switch controller to Auto.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 4,
   "documented": "0004",
   "name": "Remote Lock (read) / WRITE = REMOTE MANUAL MODE",
   "description": "Read: 1 = remote lock. FC05 write FF00 = switch controller to Manual.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 5,
   "documented": "0005",
   "name": "Reserved (read) / WRITE = GEN BREAKER COMMAND",
   "description": "FC05 write FF00: HGM6120 gen close/open key; HGM6110 gen open (drops load).",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 6,
   "documented": "0006",
   "name": "Mains On-load (read) / WRITE = MAINS OR GEN BREAKER COMMAND",
   "description": "Read: 1 = mains on load. FC05 FF00: HGM6120 mains close/open; HGM6110 gen close.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 7,
   "documented": "0007",
   "name": "Gen On-load",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 8,
   "documented": "0008",
   "name": "Emergency Stop",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 9,
   "documented": "0009",
   "name": "Overspeed Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 10,
   "documented": "0010",
   "name": "Underspeed Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 11,
   "documented": "0011",
   "name": "Speed Signal Loss Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 12,
   "documented": "0012",
   "name": "Overfrequency Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 13,
   "documented": "0013",
   "name": "Underfrequency Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 14,
   "documented": "0014",
   "name": "Overvoltage Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 15,
   "documented": "0015",
   "name": "Undervoltage Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 16,
   "documented": "0016",
   "name": "Gen Overcurrent Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 17,
   "documented": "0017",
   "name": "Crank Failure",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 18,
   "documented": "0018",
   "name": "High Water Temp. Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 19,
   "documented": "0019",
   "name": "Low Oil Pressure Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 20,
   "documented": "0020",
   "name": "Frequency Loss Alarm",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 21,
   "documented": "0021",
   "name": "Input Shutdown Alarm",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 22,
   "documented": "0022",
   "name": "Low Fuel Level Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 23,
   "documented": "0023",
   "name": "Low Coolant Level Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 24,
   "documented": "0024",
   "name": "High Water Temp. Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 25,
   "documented": "0025",
   "name": "Low Oil Pressure Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 26,
   "documented": "0026",
   "name": "Gen Overcurrent Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 27,
   "documented": "0027",
   "name": "Stop Failure Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 28,
   "documented": "0028",
   "name": "Low Fuel Level Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 29,
   "documented": "0029",
   "name": "Charging Failure Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 30,
   "documented": "0030",
   "name": "Battery Undervoltage Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 31,
   "documented": "0031",
   "name": "Battery Overvoltage Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 32,
   "documented": "0032",
   "name": "Input Warning Alarm",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 33,
   "documented": "0033",
   "name": "Speed Signal Loss Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 34,
   "documented": "0034",
   "name": "Low Coolant Level Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 35,
   "documented": "0035",
   "name": "Temp. Sensor Open Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 36,
   "documented": "0036",
   "name": "Oil Pressure Sensor Open Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 37,
   "documented": "0037",
   "name": "Maintenance Time Due Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 38,
   "documented": "0038",
   "name": "Charger Fail to Charge Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 39,
   "documented": "0039",
   "name": "Overpower Warning",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 40,
   "documented": "0040",
   "name": "Test Mode",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 41,
   "documented": "0041",
   "name": "Auto Mode",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 42,
   "documented": "0042",
   "name": "Manual Mode",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 43,
   "documented": "0043",
   "name": "Stop Mode",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 44,
   "documented": "0044",
   "name": "Temp. Sensor Open Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 45,
   "documented": "0045",
   "name": "Oil Pressure Sensor Open Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 46,
   "documented": "0046",
   "name": "Maintenance Time Due Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 47,
   "documented": "0047",
   "name": "Overpower Shutdown",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 48,
   "documented": "0048",
   "name": "Emergency Stop Input",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 49,
   "documented": "0049",
   "name": "Aux. Input 1",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 50,
   "documented": "0050",
   "name": "Aux. Input 2",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 51,
   "documented": "0051",
   "name": "Aux. Input 3",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 52,
   "documented": "0052",
   "name": "Aux. Input 4",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 53,
   "documented": "0053",
   "name": "Aux. Input 5",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 54,
   "documented": "0054",
   "name": "Liquid Leakage Shutdown (HGM6100N) / Reserved (CAN)",
   "description": "Meaning differs by variant.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 56,
   "documented": "0056",
   "name": "Crank Relay Output",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 57,
   "documented": "0057",
   "name": "Fuel Relay Output",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 58,
   "documented": "0058",
   "name": "Aux. Output 1",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 59,
   "documented": "0059",
   "name": "Aux. Output 2",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 60,
   "documented": "0060",
   "name": "Aux. Output 3",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 61,
   "documented": "0061",
   "name": "Aux. Output 4",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 62,
   "documented": "0062",
   "name": "Overcurrent Shutdown Input (HGM6100N) / Fuel 1 Output Control (CAN)",
   "description": "Meaning differs by variant.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 63,
   "documented": "0063",
   "name": "Overspeed Shutdown Input (HGM6100N) / Liquid Leakage Warning (CAN)",
   "description": "Meaning differs by variant.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 64,
   "documented": "0064",
   "name": "Mains Fault",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 65,
   "documented": "0065",
   "name": "Mains Normal",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 66,
   "documented": "0066",
   "name": "Mains Overvoltage",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 67,
   "documented": "0067",
   "name": "Mains Undervoltage",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 68,
   "documented": "0068",
   "name": "Mains Loss Phase",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 69,
   "documented": "0069",
   "name": "Mains Blackout",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 70,
   "documented": "0070",
   "name": "High Temp. Shutdown (HGM6100N) / Reserved (CAN)",
   "description": "HGM6100N: linked to the analog temperature sensor.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 71,
   "documented": "0071",
   "name": "Low Oil Pressure Shutdown (HGM6100N) / Reserved (CAN)",
   "description": "HGM6100N: linked to the analog oil pressure sensor.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 72,
   "documented": "0072",
   "name": "Gen Normal",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 73,
   "documented": "0073",
   "name": "Gen Overvoltage",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 74,
   "documented": "0074",
   "name": "Gen Undervoltage",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 75,
   "documented": "0075",
   "name": "Gen Overfrequency",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 76,
   "documented": "0076",
   "name": "Gen Underfrequency",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 77,
   "documented": "0077",
   "name": "Gen Overcurrent",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 78,
   "documented": "0078",
   "name": "Scheduled Not Run Time Indication",
   "description": "",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 79,
   "documented": "0079",
   "name": "Liquid Leakage Warning (HGM6100N) / ECU Warning (CAN)",
   "description": "Meaning differs by variant.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 80,
   "documented": "0080",
   "name": "ECU Shutdown Alarm",
   "description": "HGM6100CAN only.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "coil",
   "address": 81,
   "documented": "0081",
   "name": "ECU Comm. Failure Alarm",
   "description": "HGM6100CAN only.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 0,
   "documented": "0000",
   "name": "Mains UA",
   "description": "Mains phase A to neutral voltage.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 1,
   "documented": "0001",
   "name": "Mains UB",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 2,
   "documented": "0002",
   "name": "Mains UC",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 3,
   "documented": "0003",
   "name": "Mains UAB",
   "description": "Mains line-to-line voltage A-B.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 4,
   "documented": "0004",
   "name": "Mains UBC",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 5,
   "documented": "0005",
   "name": "Mains UCA",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 7,
   "documented": "0007",
   "name": "Gen UA",
   "description": "Generator phase A to neutral voltage.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 8,
   "documented": "0008",
   "name": "Gen UB",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 9,
   "documented": "0009",
   "name": "Gen UC",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 10,
   "documented": "0010",
   "name": "Gen UAB",
   "description": "Generator line-to-line voltage A-B.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 11,
   "documented": "0011",
   "name": "Gen UBC",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 12,
   "documented": "0012",
   "name": "Gen UCA",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 14,
   "documented": "0014",
   "name": "A Phase Current",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 15,
   "documented": "0015",
   "name": "B Phase Current",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 16,
   "documented": "0016",
   "name": "C Phase Current",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 17,
   "documented": "0017",
   "name": "Water Temp. Value",
   "description": "Coolant temperature; listed as unsigned.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°C",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 18,
   "documented": "0018",
   "name": "Water Temp. Sensor Resistance",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "Ω",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 19,
   "documented": "0019",
   "name": "Oil Pressure Value",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kPa",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 20,
   "documented": "0020",
   "name": "Oil Pressure Sensor Resistance",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "Ω",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 21,
   "documented": "0021",
   "name": "Fuel Level Value",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 22,
   "documented": "0022",
   "name": "Fuel Level Sensor Resistance",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "Ω",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 23,
   "documented": "0023",
   "name": "Engine Speed",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "rpm",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 24,
   "documented": "0024",
   "name": "Battery Voltage",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 25,
   "documented": "0025",
   "name": "D+ Voltage",
   "description": "Charge alternator D+ terminal voltage.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 26,
   "documented": "0026",
   "name": "Active Power",
   "description": "Total generator active power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kW",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 27,
   "documented": "0027",
   "name": "Reactive Power",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kvar",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 28,
   "documented": "0028",
   "name": "Apparent Power",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kVA",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 29,
   "documented": "0029",
   "name": "Power Factor",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 30,
   "documented": "0030",
   "name": "Maintenance Countdown Hours",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "h",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 31,
   "documented": "0031",
   "name": "Maintenance Countdown Minutes",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "min",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 34,
   "documented": "0034",
   "name": "Controller Running Status",
   "description": "Engine/genset sequence state.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "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"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 36,
   "documented": "0036",
   "name": "Auto Running Status",
   "description": "Remote start sequence state.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "No Delay",
    "1": "Start Delay",
    "2": "Stop Delay"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 38,
   "documented": "0038",
   "name": "ATS Running Status",
   "description": "Transfer state code; the document gives no value table.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 40,
   "documented": "0040",
   "name": "Mains Status",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "0": "Normal",
    "1": "Abnormal",
    "2": "No Delay"
   },
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 42,
   "documented": "0042",
   "name": "Accum. Run Time Hours (high part)",
   "description": "Total hours = this x 10000 + next register.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "h",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 43,
   "documented": "0043",
   "name": "Accum. Run Time Hours (low part)",
   "description": "0-9999; add to high part x 10000.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "h",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 44,
   "documented": "0044",
   "name": "Accum. Run Time Minutes",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "min",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 45,
   "documented": "0045",
   "name": "Accum. Run Time Seconds",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "s",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 46,
   "documented": "0046",
   "name": "Accum. Start Count (high part)",
   "description": "Total starts = this x 10000 + next register.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 47,
   "documented": "0047",
   "name": "Accum. Start Count (low part)",
   "description": "0-9999; add to high part x 10000.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 48,
   "documented": "0048",
   "name": "Accum. Energy (high part)",
   "description": "Total kWh = this x 10000 + next register.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 49,
   "documented": "0049",
   "name": "Accum. Energy (low part)",
   "description": "0-9999; add to high part x 10000.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 50,
   "documented": "0050",
   "name": "Software Version",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 51,
   "documented": "0051",
   "name": "Hardware Version",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 52,
   "documented": "0052",
   "name": "A Phase Active Power",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kW",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 53,
   "documented": "0053",
   "name": "B Phase Active Power",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kW",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 54,
   "documented": "0054",
   "name": "C Phase Active Power",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "kW",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 71,
   "documented": "0071",
   "name": "Controller Model",
   "description": "Model code number.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 72,
   "documented": "0072",
   "name": "Controller Time: Year",
   "description": "Last two digits of the year.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 73,
   "documented": "0073",
   "name": "Controller Time: Month",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 74,
   "documented": "0074",
   "name": "Controller Time: Day",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 75,
   "documented": "0075",
   "name": "Controller Time: Weekday",
   "description": "0-6.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 76,
   "documented": "0076",
   "name": "Controller Time: Hour",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 77,
   "documented": "0077",
   "name": "Controller Time: Minute",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 78,
   "documented": "0078",
   "name": "Controller Time: Second",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 79,
   "documented": "0079",
   "name": "Firmware Release Year",
   "description": "Last two digits of the year.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 80,
   "documented": "0080",
   "name": "Firmware Release Month",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 81,
   "documented": "0081",
   "name": "Firmware Release Day",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 92,
   "documented": "0092",
   "name": "Gen UA Phase Angle",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 93,
   "documented": "0093",
   "name": "Gen UB Phase Angle",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 94,
   "documented": "0094",
   "name": "Gen UC Phase Angle",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 95,
   "documented": "0095",
   "name": "Mains UA Phase Angle",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 96,
   "documented": "0096",
   "name": "Mains UB Phase Angle",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null
  },
  {
   "table": "holding_register",
   "address": 97,
   "documented": "0097",
   "name": "Mains UC Phase Angle",
   "description": "",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "offset": 0,
   "scale_factor_ref": null,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null
  }
 ],
 "integration": {
  "summary": "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": [
   {
    "table": "coil",
    "address": 0,
    "why": "Common alarm (read) / remote start (write)"
   },
   {
    "table": "coil",
    "address": 41,
    "why": "Auto mode active"
   },
   {
    "table": "holding_register",
    "address": 34,
    "why": "Genset running state"
   },
   {
    "table": "holding_register",
    "address": 7,
    "why": "Generator phase A voltage"
   },
   {
    "table": "holding_register",
    "address": 14,
    "why": "Phase A current"
   },
   {
    "table": "holding_register",
    "address": 26,
    "why": "Total active power"
   },
   {
    "table": "holding_register",
    "address": 23,
    "why": "Engine speed"
   },
   {
    "table": "holding_register",
    "address": 24,
    "why": "Battery voltage"
   }
  ],
  "enable": "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.",
  "watchdog": null,
  "quirks": [
   "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."
  ],
  "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."
  ],
  "gotchas": [
   "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."
  ]
 },
 "page": "https://easymodbus.com/modbus-register-maps/smartgen/hgm6100n",
 "address_note": "address = 0-based Modbus wire (PDU) address; documented = as printed in the source.",
 "note": "Re-typed from the manufacturer's public documentation (see source) and verified against it. Registers vary by firmware and options; verify against the live device before writing."
}
