{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Pilot",
  "model": "SPM33",
  "models": ["SPM33"],
  "revision": 2,
  "vendor_website": "pmac.com.cn",
  "source": "Modbus Database (Jibril Sharafi, MIT licence), table pilot/spm33; https://www.aggsoft.com/serial-data-logger/tutorials/modbus-data-logging/pilot-spm33.htm. Not verified against the manufacturer's documentation",
  "notes": [
    "Pilot SPM33.",
    "Converted automatically from the Modbus Database (MIT licence, Jibril Sharafi).",
    "Not verified against the manufacturer's documentation. The byte order is a guess: the source does not give one.",
    "Corrections are welcome (CONTRIBUTING.md). Change x_status once this table has been checked against the manual."
  ],
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "unofficial",
  "x_origin": "modbus-database",
  "registers": [
    {"name": "Phase B voltage", "area": "holding", "address": 1, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Phase C voltage", "area": "holding", "address": 2, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Line ab voltage", "area": "holding", "address": 3, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Line bc voltage", "area": "holding", "address": 4, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Line ca voltage", "area": "holding", "address": 5, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Phase A current", "area": "holding", "address": 6, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Phase B current", "area": "holding", "address": 7, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Phase C current", "area": "holding", "address": 8, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Neutral current", "area": "holding", "address": 9, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Total active power", "area": "holding", "address": 10, "type": "int32", "unit": "W", "access": "R"},
    {"name": "Total reactive power", "area": "holding", "address": 12, "type": "int32", "unit": "var", "access": "R"},
    {"name": "Total power factor", "area": "holding", "address": 14, "type": "int16", "access": "R"},
    {"name": "Phase A active power", "area": "holding", "address": 15, "type": "int16", "unit": "W", "access": "R"},
    {"name": "Phase B active power", "area": "holding", "address": 16, "type": "int16", "unit": "W", "access": "R"},
    {"name": "Phase C active power", "area": "holding", "address": 17, "type": "int16", "unit": "W", "access": "R"},
    {"name": "Phase A reactive power", "area": "holding", "address": 18, "type": "int16", "unit": "W", "access": "R"},
    {"name": "Phase B reactive power", "area": "holding", "address": 19, "type": "int16", "unit": "W", "access": "R"},
    {"name": "Phase C reactive power", "area": "holding", "address": 20, "type": "int16", "unit": "W", "access": "R"},
    {"name": "Phase A power factor", "area": "holding", "address": 21, "type": "int16", "access": "R"},
    {"name": "Phase B power factor", "area": "holding", "address": 22, "type": "int16", "access": "R"},
    {"name": "Phase C power factor", "area": "holding", "address": 23, "type": "int16", "access": "R"},
    {"name": "Frequency", "area": "holding", "address": 24, "type": "uint16", "unit": "Hz", "access": "R"},
    {"name": "Total active energy", "area": "holding", "address": 25, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Total reactive energy", "area": "holding", "address": 27, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Input active energy", "area": "holding", "address": 29, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Output active energy", "area": "holding", "address": 31, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Input reactive energy", "area": "holding", "address": 33, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Output reactive energy", "area": "holding", "address": 35, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "On off status", "area": "holding", "address": 37, "type": "uint16", "access": "R"},
    {"name": "Relay status", "area": "holding", "address": 38, "type": "uint16", "access": "R"},
    {"name": "Alarm status", "area": "holding", "address": 39, "type": "uint16", "access": "R"},
    {"name": "Ct ratio", "area": "holding", "address": 40, "type": "uint16", "access": "R"},
    {"name": "Average phase voltage", "area": "holding", "address": 42, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Average line voltage", "area": "holding", "address": 43, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Average phase current", "area": "holding", "address": 44, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Current unbalance rate", "area": "holding", "address": 45, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Phase A apparent power", "area": "holding", "address": 46, "type": "uint16", "unit": "VA", "access": "R"},
    {"name": "Phase B apparent power", "area": "holding", "address": 47, "type": "uint16", "unit": "VA", "access": "R"},
    {"name": "Phase C apparent power", "area": "holding", "address": 48, "type": "uint16", "unit": "VA", "access": "R"},
    {"name": "Total apparent power", "area": "holding", "address": 49, "type": "uint32", "access": "R"},
    {"name": "Grid input active energy", "area": "holding", "address": 51, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Grid output active energy", "area": "holding", "address": 53, "type": "uint32", "access": "R"},
    {"name": "Grid total active energy", "area": "holding", "address": 55, "type": "uint32", "access": "R"},
    {"name": "Grid input reactive energy", "area": "holding", "address": 57, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Grid output reactive energy", "area": "holding", "address": 59, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Grid totalreactive energy", "area": "holding", "address": 61, "type": "uint32", "unit": "kvarh", "access": "R"},
    {"name": "Generator input active energy", "area": "holding", "address": 63, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Generator output active energy", "area": "holding", "address": 65, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Generator total active energy", "area": "holding", "address": 67, "type": "uint32", "unit": "kWh", "access": "R"},
    {"name": "Generator input reactive energy", "area": "holding", "address": 69, "type": "uint32", "unit": "kvarh", "access": "R"}
  ]
}
