{
  "spec_version": 1,
  "slug": "siemens-pac2200",
  "manufacturer": "Siemens",
  "model": "SENTRON PAC2200",
  "category": "Energy meter",
  "supplier_url": "https://support.industry.siemens.com/cs/document/109746835/pac2200-measuring-device-manual?dti=0&lc=en-WW",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 1,
      "count": 2,
      "name": "Voltage L1-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3,
      "count": 2,
      "name": "Voltage L2-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 5,
      "count": 2,
      "name": "Voltage L3-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 7,
      "count": 2,
      "name": "Voltage L1-L2",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 9,
      "count": 2,
      "name": "Voltage L2-L3",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 11,
      "count": 2,
      "name": "Voltage L3-L1",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 13,
      "count": 2,
      "name": "Current L1",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 15,
      "count": 2,
      "name": "Current L2",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 17,
      "count": 2,
      "name": "Current L3",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 19,
      "count": 2,
      "name": "Apparent power L1",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 21,
      "count": 2,
      "name": "Apparent power L2",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 23,
      "count": 2,
      "name": "Apparent power L3",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 25,
      "count": 2,
      "name": "Active power L1",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 27,
      "count": 2,
      "name": "Active power L2",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 29,
      "count": 2,
      "name": "Active power L3",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31,
      "count": 2,
      "name": "Reactive power L1",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 33,
      "count": 2,
      "name": "Reactive power L2",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 35,
      "count": 2,
      "name": "Reactive power L3",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 37,
      "count": 2,
      "name": "Power factor L1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 39,
      "count": 2,
      "name": "Power factor L2",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 41,
      "count": 2,
      "name": "Power factor L3",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 55,
      "count": 2,
      "name": "Frequency",
      "data_type": "Float32",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 57,
      "count": 2,
      "name": "Average voltage L-N",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 59,
      "count": 2,
      "name": "Average voltage L-L",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 61,
      "count": 2,
      "name": "Average current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 63,
      "count": 2,
      "name": "Total apparent power",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 65,
      "count": 2,
      "name": "Total active power",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 67,
      "count": 2,
      "name": "Total reactive power",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 69,
      "count": 2,
      "name": "Total power factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 71,
      "count": 2,
      "name": "Neutral current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 205,
      "count": 2,
      "name": "Device diagnostics and device status",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Byte 0 = global state, byte 1 = local state, byte 2 = global diagnostics."
    },
    {
      "address": 207,
      "count": 2,
      "name": "Status of the digital outputs",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = output 0."
    },
    {
      "address": 209,
      "count": 2,
      "name": "Status of the digital inputs",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit 0 = input 0."
    },
    {
      "address": 211,
      "count": 2,
      "name": "Active tariff",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = tariff 1, 1 = tariff 2."
    },
    {
      "address": 215,
      "count": 2,
      "name": "Universal counter",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 to 999999999."
    },
    {
      "address": 801,
      "count": 4,
      "name": "Active energy imported, tariff 1",
      "data_type": "Float64",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 805,
      "count": 4,
      "name": "Active energy imported, tariff 2",
      "data_type": "Float64",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 809,
      "count": 4,
      "name": "Active energy exported, tariff 1",
      "data_type": "Float64",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 813,
      "count": 4,
      "name": "Active energy exported, tariff 2",
      "data_type": "Float64",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 961,
      "count": 4,
      "name": "Secondary total of active energy imported (MID register)",
      "data_type": "Float64",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 965,
      "count": 4,
      "name": "Secondary total of active energy exported (MID register)",
      "data_type": "Float64",
      "units": "kWh",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 501,
      "count": 2,
      "name": "Cumulated average active power import",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 503,
      "count": 2,
      "name": "Cumulated average reactive power import",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 505,
      "count": 2,
      "name": "Cumulated average active power export",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 507,
      "count": 2,
      "name": "Cumulated average reactive power export",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    }
  ],
  "combined_registers": [],
  "notes": "Source: Siemens 'SENTRON 7KM PAC2200 - Equipment Manual', 12/2022, L1V30415167B-06, freely downloadable from Siemens Industry Online Support (document 109746835). Register 71 'Neutral current' is table A-3 on printed page 106; the energy counters 801/805/809/813 are on page 107 and the MID secondary totals 961/965 on page 108. The offsets in those tables are the wire addresses used here. All measured variables can be read with function code 03 as well as 04, so they are listed as holding registers. Values are IEEE-754 floats (32 bit) except the energy counters, which are 64-bit floats in Wh and are scaled to kWh. The 801-813 counters are marked read/write in the 03/2017 B-01 edition of the manual and read-only in the 09/2021 B-04 and 12/2022 B-06 editions; the access column follows the current B-06 marking (R). The PAC2200 is available with an Ethernet interface (Modbus TCP, modelled here) or with an RS-485 interface (Modbus RTU); for the RS-485 variant use the same register map through a gateway. The manual also documents a separate bank of 32-bit float energy counters from offset 2801."
}
