{
 "manufacturer": "Eaton",
 "manufacturer_slug": "eaton",
 "model": "Power Xpert Meter 1000 Series (PXM 1000/1100/1200/1300)",
 "model_slug": "pxm-1000",
 "short_model": "PXM 1000",
 "aliases": [
  "PXM 1000",
  "PXM 1100",
  "PXM 1200",
  "PXM 1300",
  "PXM1000",
  "PXM1100",
  "PXM1200",
  "PXM1300",
  "Power Xpert Meter 1000"
 ],
 "equipment_type": "Power meter",
 "applies_to": "Eaton PXM 1000 series meters on the built-in RS-485 Modbus RTU port, per user manual MN150009EN (October 2018).",
 "summary": "The PXM 1000 series are compact multifunction power and energy meters with a built-in RS-485 port running Modbus RTU (DNP3.0 selectable) and optional plug-in I/O and communication modules. Live readings are IEEE floats in holding registers from 4000H, energy counters are 32-bit integers, and setup values are 16-bit words from 0FFDH. This map covers the comm and CT settings, status, voltages, currents, powers, power factor, demand, energy, THD, phase angles and the first I/O module's inputs and relays.",
 "transport": [
  "RTU"
 ],
 "defaults": {
  "unit_id": 1,
  "baud": 19200,
  "parity": "None",
  "data_bits": 8,
  "stop_bits": 1,
  "tcp_port": null
 },
 "addressing": {
  "convention": "hex 0-based",
  "note": "The manual prints register addresses in hex (4000H, 1001H). They go on the wire unchanged: its read example for frequency at 4000H sends start address bytes 40 00. Relays and digital inputs start at 0000H."
 },
 "default_word_order": "ABCD",
 "firmware": null,
 "source": {
  "title": "PXM 1000 User Manual",
  "doc_number": "MN150009EN",
  "revision_date": "2018-10",
  "url": "https://www.eaton.com/content/dam/eaton/products/low-voltage-power-distribution-controls-systems/power-energy-meters/power-xpert-meter-1000/power-xpert-meter-1000-user-manual-mn15009en.pdf",
  "pages": "Chapter 6 Communication, printed pp. 147-174 (PDF pp. 151-178)"
 },
 "notes": [
  "IMPORTANT - primary vs secondary: the 4000H measurement block (voltages, currents, powers and power demand) holds real primary values only when Basic Parameter Mode (101DH) = 1. The manual's default is 0 = Secondary, where voltages must be multiplied by PT1/PT2, currents by CT1/CT2 and powers by both (use CT2 = 5 only for a 5 A CT secondary, otherwise 1). Every affected register says so; scale 1 and the units here assume Primary mode. Frequency, power factor and unbalance are not affected.",
  "Word order: the manual defines Dword as high word first, and its function-03 example returns frequency 4000H-4001H as 42 48 00 00 (50.00 Hz) with the high word in the first register. Its function-16 energy example writes 0A9D then 4089. All 32-bit values here are ABCD.",
  "Left out: current demand 4600H-4605H. Its table gives only the secondary formula with format code F1 and does not say whether Basic Parameter Mode (101DH) applies, so its scaling is ambiguous.",
  "Energy registers 4048H-4059H: scale 0.1 kWh / kvarh / kVAh applies to primary energy (format codes F4-F6), which is the default Energy Display Mode (1019H = 0). If 1019H is set to 1 (Secondary) the same registers hold secondary energy in 0.001 units (F7-F9). The manual prints the apparent energy unit as kVA; kVAh is used here.",
  "The system-parameter table prints address 0ffdH twice (Frequency and First Communication Protocol). The manual's notes and its sealed-parameter table both put the protocol at 0FFEH, so Frequency is kept at 0FFDH and the protocol at 0FFEH.",
  "Left out: PT1 (1005H, printed as a 32-bit 'Unit 32' with a one-decimal range but no stated scaling) and PT2 (1007H, a word with a one-decimal default of 220.0 but no stated scaling). The PT ratio still matters when Basic Parameter Mode is Secondary.",
  "Left out: password (1000H), the 100 ms refresh block 3000H (always secondary values, duplicates 4000H), the standard-register block 2000H (duplicates), the load-characteristic register 4040H (an ASCII code stored in a float), individual harmonics, max/min records with timestamps, sequence components, alarm, SOE and data-log blocks, per-phase energy (4620H-463DH), pulse counters and analog I/O.",
  "Digital inputs DI7-DI28 and relays 5-8 follow the same pattern on further I/O modules (see manual Tables 76-77); only the first modules' points are listed."
 ],
 "registers": [
  {
   "table": "coil",
   "address": 0,
   "documented": "0000H",
   "name": "Relay1",
   "description": "Relay on module PXM1K-11; read with FC01, switch with FC05.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "coil",
   "address": 1,
   "documented": "0001H",
   "name": "Relay2",
   "description": "Relay on module PXM1K-11; read with FC01, switch with FC05.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "coil",
   "address": 2,
   "documented": "0002H",
   "name": "Relay3",
   "description": "Relay on module PXM1K-31; read with FC01, switch with FC05.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "coil",
   "address": 3,
   "documented": "0003H",
   "name": "Relay4",
   "description": "Relay on module PXM1K-31; read with FC01, switch with FC05.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "discrete_input",
   "address": 0,
   "documented": "0000H",
   "name": "DI1",
   "description": "Digital input on I/O module PXM1K-11; 0 if module absent.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "discrete_input",
   "address": 1,
   "documented": "0001H",
   "name": "DI2",
   "description": "Digital input on I/O module PXM1K-11; 0 if module absent.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "discrete_input",
   "address": 2,
   "documented": "0002H",
   "name": "DI3",
   "description": "Digital input on I/O module PXM1K-11; 0 if module absent.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "discrete_input",
   "address": 3,
   "documented": "0003H",
   "name": "DI4",
   "description": "Digital input on I/O module PXM1K-11; 0 if module absent.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "discrete_input",
   "address": 4,
   "documented": "0004H",
   "name": "DI5",
   "description": "Digital input on I/O module PXM1K-11; 0 if module absent.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "discrete_input",
   "address": 5,
   "documented": "0005H",
   "name": "DI6",
   "description": "Digital input on I/O module PXM1K-11; 0 if module absent.",
   "data_type": "BIT",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Off",
    "1": "On"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4093,
   "documented": "0ffdH",
   "name": "Frequency",
   "description": "Nominal frequency setting.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "50 Hz",
    "1": "60 Hz",
    "2": "400 Hz"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4094,
   "documented": "0ffdH (printed; 0FFEH per the manual's notes)",
   "name": "First Communication Protocol",
   "description": "Protocol on the built-in RS-485 port.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Modbus",
    "1": "DNP3.0"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4095,
   "documented": "0fffH",
   "name": "Parity Setting1",
   "description": "Built-in RS-485 parity and stop bits.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Even",
    "1": "Odd",
    "2": "None, 2 stop bits",
    "3": "None, 1 stop bit"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4097,
   "documented": "1001H",
   "name": "Communication Address",
   "description": "Modbus address 1-247 on the built-in port.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4098,
   "documented": "1002H",
   "name": "Baud Rate",
   "description": "Built-in RS-485 baud rate, 1200-38400.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "bps",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4099,
   "documented": "1003H",
   "name": "Voltage Input Wiring Type",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "3LN",
    "1": "1LN",
    "2": "2LL",
    "3": "3LL",
    "4": "1LL"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4100,
   "documented": "1004H",
   "name": "Current Input Wiring Type",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "3CT",
    "1": "1CT",
    "2": "2CT"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4104,
   "documented": "1008H",
   "name": "CT1",
   "description": "CT primary rating, 1-50000.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "A",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4105,
   "documented": "1009H",
   "name": "CT2",
   "description": "CT secondary: 1 or 5 (A); 333, 100 or 80-200 for mV, Rogowski or mA CTs.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4109,
   "documented": "100DH",
   "name": "Demand Slid Window Time",
   "description": "Demand window, 1-30 minutes.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "min",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4110,
   "documented": "100EH",
   "name": "Demand Calculating Mode",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "1": "Sliding window",
    "2": "Thermal"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4111,
   "documented": "100FH",
   "name": "Clear Demand Memory",
   "description": "Write 1 to clear demand memory.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4112,
   "documented": "1010H",
   "name": "Max/Min Clear",
   "description": "Write 0x0A to clear max/min records.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4113,
   "documented": "1011H",
   "name": "Run Time Clear",
   "description": "Write 1 to clear the run-time counter.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4117,
   "documented": "1015H",
   "name": "VAR/PF Convention",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "IEC",
    "1": "IEEE"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4118,
   "documented": "1016H",
   "name": "Energy Clear",
   "description": "Write 1 to clear the energy counters.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4119,
   "documented": "1017H",
   "name": "Energy Calculating Mode",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Fundamental",
    "1": "Full-wave (true RMS)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4121,
   "documented": "1019H",
   "name": "Energy Display Mode",
   "description": "Selects primary or secondary scaling of the energy registers.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Primary",
    "1": "Secondary"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4125,
   "documented": "101DH",
   "name": "Basic Parameter Mode",
   "description": "Selects primary or secondary values in the 4000H measurement block.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Secondary",
    "1": "Primary"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4142,
   "documented": "102EH",
   "name": "System Status",
   "description": "New-event flags.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": {
    "0": "New alarm",
    "1": "New SOE record"
   },
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4143,
   "documented": "102FH",
   "name": "Baud Rate 2",
   "description": "Baud rate of the second (module) port.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "bps",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4144,
   "documented": "1030H",
   "name": "Parity Setting 2",
   "description": "Parity of the second (module) port.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Even",
    "1": "Odd",
    "2": "None, 2 stop bits",
    "3": "None, 1 stop bit"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4145,
   "documented": "1031H",
   "name": "Communication Address2",
   "description": "Address of the second (module) port, 1-247.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4148,
   "documented": "1034H (High) / 1035H (Low)",
   "name": "Run Time",
   "description": "Run-time counter; high word at 1034H, low word at 1035H.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.01,
   "units": "h",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 4150,
   "documented": "1036H",
   "name": "Expanded IO Modules Connecting Status",
   "description": "1 = module connected.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": {
    "0": "PXM1K-11",
    "1": "PXM1K-12",
    "2": "PXM1K-21",
    "3": "PXM1K-22",
    "4": "PXM1K-31",
    "5": "PXM1K-32"
   },
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16384,
   "documented": "4000H~4001H",
   "name": "Frequency",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Hz",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16386,
   "documented": "4002H~4003H",
   "name": "Phase Voltage V1",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16388,
   "documented": "4004H~4005H",
   "name": "Phase Voltage V2",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16390,
   "documented": "4006H~4007H",
   "name": "Phase Voltage V3",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16392,
   "documented": "4008H~4009H",
   "name": "Average Voltage Vavg",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16394,
   "documented": "400AH~400BH",
   "name": "Line Voltage V12",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16396,
   "documented": "400CH~400DH",
   "name": "Line Voltage V23",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16398,
   "documented": "400EH~400FH",
   "name": "Line Voltage V31",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16400,
   "documented": "4010H~4011H",
   "name": "Average Line Voltage Vlavg",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16402,
   "documented": "4012H~4013H",
   "name": "Current I1",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16404,
   "documented": "4014H~4015H",
   "name": "Current I2",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16406,
   "documented": "4016H~4017H",
   "name": "Current I3",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16408,
   "documented": "4018H~4019H",
   "name": "Average Current Iavg",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16410,
   "documented": "401AH~401BH",
   "name": "Neutral Current In",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16412,
   "documented": "401CH~401DH",
   "name": "Phase A Power Pa",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16414,
   "documented": "401EH~401FH",
   "name": "Phase B Power Pb",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16416,
   "documented": "4020H~4021H",
   "name": "Phase C Power Pc",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16418,
   "documented": "4022H~4023H",
   "name": "System Power Psum",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16420,
   "documented": "4024H~4025H",
   "name": "Phase A Reactive Power Qa",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16422,
   "documented": "4026H~4027H",
   "name": "Phase B Reactive Power Qb",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16424,
   "documented": "4028H~4029H",
   "name": "Phase C Reactive Power Qc",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16426,
   "documented": "402AH~402BH",
   "name": "System Reactive Power Qsum",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16428,
   "documented": "402CH~402DH",
   "name": "Phase A Apparent Power Sa",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16430,
   "documented": "402EH~402FH",
   "name": "Phase B Apparent Power Sb",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16432,
   "documented": "4030H~4031H",
   "name": "Phase C Apparent Power Sc",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16434,
   "documented": "4032H~4033H",
   "name": "System Apparent Power Ssum",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16436,
   "documented": "4034H~4035H",
   "name": "Phase A Power Factor PFa",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16438,
   "documented": "4036H~4037H",
   "name": "Phase B Power Factor PFb",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16440,
   "documented": "4038H~4039H",
   "name": "Phase C Power Factor PFc",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16442,
   "documented": "403AH~403BH",
   "name": "System Power Factor PFsum",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16444,
   "documented": "403CH~403DH",
   "name": "Voltage Unbalance Factor U_unbl",
   "description": "Register holds a fraction; percent = value x 100.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 100,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16446,
   "documented": "403EH~403FH",
   "name": "Current Unbalance Factor I_unbl",
   "description": "Register holds a fraction; percent = value x 100.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 100,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16450,
   "documented": "4042H~4043H",
   "name": "Power Demand",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16452,
   "documented": "4044H~4045H",
   "name": "Reactive Power Demand",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16454,
   "documented": "4046H~4047H",
   "name": "Apparent Power Demand",
   "description": "Secondary-side unless Basic Parameter Mode (101DH) = 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16456,
   "documented": "4048H~4049H",
   "name": "Energy IMP",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kWh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16458,
   "documented": "404AH~404BH",
   "name": "Energy EXP",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kWh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16460,
   "documented": "404CH~404DH",
   "name": "Reactive Energy IMP",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kvarh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16462,
   "documented": "404EH~404FH",
   "name": "Reactive Energy EXP",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kvarh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16464,
   "documented": "4050H~4051H",
   "name": "Energy TOTAL",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kWh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16466,
   "documented": "4052H~4053H",
   "name": "Energy NET",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kWh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16468,
   "documented": "4054H~4055H",
   "name": "Reactive Energy TOTAL",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kvarh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16470,
   "documented": "4056H~4057H",
   "name": "Reactive Energy NET",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kvarh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16472,
   "documented": "4058H~4059H",
   "name": "Apparent Energy",
   "description": "Primary, 0.1 steps at default 1019H = 0; secondary-side 0.001 steps if 1.",
   "data_type": "UINT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 0.1,
   "units": "kVAh",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16474,
   "documented": "405AH",
   "name": "THD of V1 (V12)",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16475,
   "documented": "405BH",
   "name": "THD of V2 (V31)",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16476,
   "documented": "405CH",
   "name": "THD of V3 (V23)",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16477,
   "documented": "405DH",
   "name": "Average THD_V",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16478,
   "documented": "405EH",
   "name": "THD_I1",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16479,
   "documented": "405FH",
   "name": "THD_I2",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16480,
   "documented": "4060H",
   "name": "THD_I3",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 16481,
   "documented": "4061H",
   "name": "Average THD_I",
   "description": "",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.01,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 17056,
   "documented": "42A0H",
   "name": "Phase angle V2 to V1 (V23 to V12)",
   "description": "Range 0-360.0 degrees.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 17057,
   "documented": "42A1H",
   "name": "Phase angle V3 to V1 (V31 to V12)",
   "description": "Range 0-360.0 degrees.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 17058,
   "documented": "42A2H",
   "name": "Phase angle I1 to V1 (V12)",
   "description": "Range 0-360.0 degrees.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 17059,
   "documented": "42A3H",
   "name": "Phase angle I2 to V1 (V12)",
   "description": "Range 0-360.0 degrees.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 17060,
   "documented": "42A4H",
   "name": "Phase angle I3 to V1 (V12)",
   "description": "Range 0-360.0 degrees.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 0.1,
   "units": "°",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  }
 ],
 "integration": {
  "summary": "Over RS-485 at the default 19200 baud, 8N1, address 1, read holding registers 4000H-403BH with function 03 to get frequency, voltages, currents, powers and power factor as big-endian floats; read 4048H-4059H for energy. Set Basic Parameter Mode 101DH to 1 first so the readings come back in primary units.",
  "minimum_registers": [
   {
    "table": "holding_register",
    "address": 16384,
    "why": "Frequency (4000H)"
   },
   {
    "table": "holding_register",
    "address": 16386,
    "why": "Phase voltage V1 (4002H)"
   },
   {
    "table": "holding_register",
    "address": 16402,
    "why": "Current I1 (4012H)"
   },
   {
    "table": "holding_register",
    "address": 16418,
    "why": "Total active power (4022H)"
   },
   {
    "table": "holding_register",
    "address": 16442,
    "why": "System power factor (403AH)"
   },
   {
    "table": "holding_register",
    "address": 16456,
    "why": "Imported active energy (4048H)"
   },
   {
    "table": "holding_register",
    "address": 4125,
    "why": "Basic Parameter Mode, set to 1 for primary values (101DH)"
   }
  ],
  "enable": "Modbus RTU is the default protocol on the built-in RS-485 port (0FFEH = 0). Settings are written with function 16 (10H); one write may only touch registers inside a single settings region. To get primary-unit readings, write 1 to Basic Parameter Mode (101DH). This write is refused while the meter is sealed.",
  "watchdog": null,
  "quirks": [
   "Addresses are printed in hex and are the wire addresses (4000H = 16384 decimal).",
   "32-bit floats and Dwords are high word first.",
   "By default the 4000H measurement block returns secondary-side values; switch 101DH to Primary or multiply by the PT and CT ratios.",
   "If Energy Display Mode (1019H) is switched to Secondary, the energy registers hold secondary-side energy in 0.001 steps instead of primary energy in 0.1 steps.",
   "Function 16 writes must stay inside one settings region (for example system parameters 0FFDH-101DH)."
  ],
  "setup": [
   "Set the address (S01), baud rate and parity on the meter's System Settings pages or via registers 1001H, 1002H and 0FFFH.",
   "Built-in port defaults: address 1, 19200 baud, no parity with one stop bit (NON1).",
   "Parity options are Even, Odd, NON2 (no parity, two stop bits) and NON1 (no parity, one stop bit).",
   "If an Ethernet or PROFIBUS module is used on the second port, the manual requires 38400 baud and NON1 for that port."
  ],
  "gotchas": [
   "When the meter's Seal is closed (101FH = 0x0A), setup registers such as wiring, CT, 1019H, 101DH and the energy presets are blocked over Modbus, and 101EH bits 0/1 can also lock the communication settings.",
   "Clear commands only act on the documented magic value: 1 for demand, run time and energy, 0x0A for max/min."
  ]
 },
 "page": "https://easymodbus.com/modbus-register-maps/eaton/pxm-1000",
 "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."
}
