{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Schneider Electric",
  "model": "Symmetra PX",
  "models": [
    "Symmetra PX"
  ],
  "vendor_website": "se.com",
  "description": "APC Symmetra PX 20 to 160 kVA three-phase UPS, through the Network Management Card 2 (Modbus TCP) or the AP9635 card (Modbus RTU)",
  "revision": 3,
  "revised": "2026-10-24",
  "firmware": "NMC2 application sy3p or px2, version 6.5.0 or later",
  "source": "Modbus Register Map, Symmetra PX 20/40/48/80/96/100/160 kVA, 990-91054 (SPD_MBPN-APFGZ7_EN, R1)",
  "sources": [
    {
      "title": "Modbus Register Map: Symmetra PX 20/40/48/80/96/100/160 kVA",
      "version": "990-91054, R1",
      "date": "2018-10-09",
      "url": "https://download.schneider-electric.com/files?p_File_Name=MBPN-APFGZ7_R1_EN.pdf&p_Doc_Ref=SPD_MBPN-APFGZ7_EN&p_enDocType=User+guide"
    }
  ],
  "notes": [
    "For the 250 and 500 kVA models use the 'Symmetra PX 250/500 kVA' map.",
    "Function codes 3 and 4 read the same registers; nothing is writable. Address 0 is register 40001. Read at most 26 registers per request; a single read of a reserved register returns an error.",
    "16-bit values, big-endian. The status registers (0-5, 53, 54) are bit maps; bits are consistent within one register only.",
    "Serial settings (address, baud rate, parity) are set on the management card; see the AP9635 user's guide. The defaults here are the format's.",
    "The 'n+x' output percentages are against the capacity left with the configured redundancy.",
    "Written from the manufacturer's register map; not tested on a device."
  ],
  "protocol": "tcp+rtu",
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "max_read_registers": 26,
  "x_status": "official",
  "registers": [
    {"name": "Status 0: Turning on", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 0},
    {"name": "Status 0: Bypass, internal fault", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 1},
    {"name": "Status 0: Going to bypass by command", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 2},
    {"name": "Status 0: Bypass by command", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 3},
    {"name": "Status 0: Returning from bypass", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 4},
    {"name": "Status 0: Bypass, manual control", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 5},
    {"name": "Status 0: Ready on command", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 6},
    {"name": "Status 0: Ready on line return or command", "group": "Status", "area": "holding", "address": 0, "type": "bool", "bit": 7},
    {"name": "Status 1: No output, low battery shutdown", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 0},
    {"name": "Status 1: Cannot go on battery, overload", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 1},
    {"name": "Status 1: Main relay malfunction", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 2},
    {"name": "Status 1: Sleep mode", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 3},
    {"name": "Status 1: Shutdown mode", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 4},
    {"name": "Status 1: Battery charger failure", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 5},
    {"name": "Status 1: Bypass relay malfunction", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 6},
    {"name": "Status 1: Fault, internal temperature high", "group": "Status", "area": "holding", "address": 1, "type": "bool", "bit": 7},
    {"name": "Status 2: Electronics unit fan failure", "group": "Status", "area": "holding", "address": 2, "type": "bool", "bit": 0},
    {"name": "Status 2: Isolation unit fan failure", "group": "Status", "area": "holding", "address": 2, "type": "bool", "bit": 1},
    {"name": "Status 2: Bypass, output voltage select failure", "group": "Status", "area": "holding", "address": 2, "type": "bool", "bit": 3},
    {"name": "Status 2: Bypass, UPS fault", "group": "Status", "area": "holding", "address": 2, "type": "bool", "bit": 4},
    {"name": "Status 2: Bypass, commanded out with no batteries", "group": "Status", "area": "holding", "address": 2, "type": "bool", "bit": 5},
    {"name": "Status 3: Battery calibration", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 0},
    {"name": "Status 3: AVR trim", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 1},
    {"name": "Status 3: AVR boost", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 2},
    {"name": "Status 3: On line", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 3},
    {"name": "Status 3: On battery", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 4},
    {"name": "Status 3: Overload", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 5},
    {"name": "Status 3: Low battery", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 6},
    {"name": "Status 3: Replace battery", "group": "Status", "area": "holding", "address": 3, "type": "bool", "bit": 7},
    {"name": "Status 4: Internal communication failure", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 0},
    {"name": "Status 4: No power modules", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 1},
    {"name": "Status 4: Load shutdown from bypass", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 2},
    {"name": "Status 4: Runtime below threshold", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 3},
    {"name": "Status 4: XR frame fault", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 4},
    {"name": "Status 4: Output voltage out of range", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 5},
    {"name": "Status 4: Not synchronized", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 6},
    {"name": "Status 4: No batteries", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 7},
    {"name": "Status 4: Battery voltage high", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 8},
    {"name": "Status 4: Fault in registers 53-54", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 9},
    {"name": "Status 4: Site wiring fault", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 10},
    {"name": "Status 4: Backfeed relay open", "group": "Status", "area": "holding", "address": 4, "type": "bool", "bit": 11},
    {"name": "Status 5: Power module failed", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 0},
    {"name": "Status 5: Main intelligence module failed", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 1},
    {"name": "Status 5: Redundant intelligence module failed", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 2},
    {"name": "Status 5: Battery failed", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 3},
    {"name": "Status 5: Load above threshold", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 4},
    {"name": "Status 5: Redundancy lost", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 5},
    {"name": "Status 5: Redundancy below threshold", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 6},
    {"name": "Status 5: Bypass out of range", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 7},
    {"name": "Status 5: Bypass contactor stuck in bypass", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 8},
    {"name": "Status 5: Bypass contactor stuck online", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 9},
    {"name": "Status 5: Bypass, internal fault", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 10},
    {"name": "Status 5: Bypass, overload", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 11},
    {"name": "Status 5: Maintenance bypass", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 12},
    {"name": "Status 5: Input breaker open", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 13},
    {"name": "Status 5: System fan failed", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 14},
    {"name": "Status 5: Redundant intelligence module in control", "group": "Status", "area": "holding", "address": 5, "type": "bool", "bit": 15},
    {"name": "Line quality", "group": "Input", "area": "holding", "address": 6, "type": "uint16", "enum": {"0": "Unacceptable", "0x00FF": "Acceptable"}},
    {"name": "Battery capacity", "group": "Battery", "area": "holding", "address": 7, "type": "uint16", "unit": "%"},
    {"name": "Runtime remaining", "group": "Battery", "area": "holding", "address": 8, "type": "uint16", "unit": "min"},
    {"name": "Battery voltage", "group": "Battery", "area": "holding", "address": 9, "type": "uint16", "unit": "V"},
    {"name": "Internal temperature", "group": "Status", "area": "holding", "address": 10, "type": "uint16", "bit": 0, "bits": 8, "unit": "°C", "description": "Valid only when the high byte is 0"},
    {"name": "Internal temperature validity", "group": "Status", "area": "holding", "address": 10, "type": "uint16", "bit": 8, "bits": 8, "enum": {"0": "Valid", "255": "Invalid"}},
    {"name": "Load current", "group": "Output", "area": "holding", "address": 11, "type": "uint16", "unit": "A"},
    {"name": "Bad battery packs", "group": "Battery", "area": "holding", "address": 12, "type": "uint16"},
    {"name": "Battery packs", "group": "Battery", "area": "holding", "address": 13, "type": "uint16"},
    {"name": "Output load", "group": "Output", "area": "holding", "address": 14, "type": "uint16", "unit": "%", "description": "Percent of rated load in watts"},
    {"name": "Input voltage maximum", "group": "Input", "area": "holding", "address": 15, "type": "uint16", "unit": "V", "description": "Since the last reading"},
    {"name": "Input voltage minimum", "group": "Input", "area": "holding", "address": 16, "type": "uint16", "unit": "V", "description": "Since the last reading"},
    {"name": "Battery voltage nominal", "group": "Battery", "area": "holding", "address": 17, "type": "uint16", "unit": "V"},
    {"name": "Battery voltage actual", "group": "Battery", "area": "holding", "address": 18, "type": "uint16", "unit": "V"},
    {"name": "Input frequency", "group": "Input", "area": "holding", "address": 19, "type": "uint16", "unit": "Hz"},
    {"name": "Input voltage A", "group": "Input", "area": "holding", "address": 20, "type": "uint16", "unit": "V"},
    {"name": "Input current A", "group": "Input", "area": "holding", "address": 21, "type": "uint16", "unit": "A"},
    {"name": "Bypass voltage A", "group": "Input", "area": "holding", "address": 22, "type": "uint16", "unit": "V"},
    {"name": "Output VA A, percent of maximum (n+0)", "group": "Output", "area": "holding", "address": 23, "type": "uint16", "unit": "%"},
    {"name": "Output VA A, percent of maximum (n+x)", "group": "Output", "area": "holding", "address": 24, "type": "uint16", "unit": "%", "description": "Redundancy rating"},
    {"name": "Output A", "group": "Output", "area": "holding", "address": 25, "type": "uint16", "unit": "kVA"},
    {"name": "Output voltage A", "group": "Output", "area": "holding", "address": 26, "type": "uint16", "unit": "V"},
    {"name": "Output current A", "group": "Output", "area": "holding", "address": 27, "type": "uint16", "unit": "A"},
    {"name": "Output current peak A", "group": "Output", "area": "holding", "address": 28, "type": "uint16", "unit": "A"},
    {"name": "Input voltage B", "group": "Input", "area": "holding", "address": 29, "type": "uint16", "unit": "V"},
    {"name": "Input current B", "group": "Input", "area": "holding", "address": 30, "type": "uint16", "unit": "A"},
    {"name": "Bypass voltage B", "group": "Input", "area": "holding", "address": 31, "type": "uint16", "unit": "V"},
    {"name": "Output VA B, percent of maximum (n+0)", "group": "Output", "area": "holding", "address": 32, "type": "uint16", "unit": "%"},
    {"name": "Output VA B, percent of maximum (n+x)", "group": "Output", "area": "holding", "address": 33, "type": "uint16", "unit": "%", "description": "Redundancy rating"},
    {"name": "Output B", "group": "Output", "area": "holding", "address": 34, "type": "uint16", "unit": "kVA"},
    {"name": "Output voltage B", "group": "Output", "area": "holding", "address": 35, "type": "uint16", "unit": "V"},
    {"name": "Output current B", "group": "Output", "area": "holding", "address": 36, "type": "uint16", "unit": "A"},
    {"name": "Output current peak B", "group": "Output", "area": "holding", "address": 37, "type": "uint16", "unit": "A"},
    {"name": "Input voltage C", "group": "Input", "area": "holding", "address": 38, "type": "uint16", "unit": "V"},
    {"name": "Input current C", "group": "Input", "area": "holding", "address": 39, "type": "uint16", "unit": "A"},
    {"name": "Bypass voltage C", "group": "Input", "area": "holding", "address": 40, "type": "uint16", "unit": "V"},
    {"name": "Output VA C, percent of maximum (n+0)", "group": "Output", "area": "holding", "address": 41, "type": "uint16", "unit": "%"},
    {"name": "Output VA C, percent of maximum (n+x)", "group": "Output", "area": "holding", "address": 42, "type": "uint16", "unit": "%", "description": "Redundancy rating"},
    {"name": "Output C", "group": "Output", "area": "holding", "address": 43, "type": "uint16", "unit": "kVA"},
    {"name": "Output voltage C", "group": "Output", "area": "holding", "address": 44, "type": "uint16", "unit": "V"},
    {"name": "Output current C", "group": "Output", "area": "holding", "address": 45, "type": "uint16", "unit": "A"},
    {"name": "Output current peak C", "group": "Output", "area": "holding", "address": 46, "type": "uint16", "unit": "A"},
    {"name": "EMC temperature 1", "group": "Environment", "area": "holding", "address": 47, "type": "uint16", "unit": "°C", "description": "Environmental monitoring card, sensor 1"},
    {"name": "EMC humidity 1", "group": "Environment", "area": "holding", "address": 48, "type": "uint16", "unit": "%RH"},
    {"name": "EMC temperature 2", "group": "Environment", "area": "holding", "address": 49, "type": "uint16", "unit": "°C"},
    {"name": "EMC humidity 2", "group": "Environment", "area": "holding", "address": 50, "type": "uint16", "unit": "%RH"},
    {"name": "Status 53: Startup configuration failed", "group": "Status", "area": "holding", "address": 53, "type": "bool", "bit": 0},
    {"name": "Status 53: Charger shut down externally", "group": "Status", "area": "holding", "address": 53, "type": "bool", "bit": 1},
    {"name": "Status 54: Maintenance bypass failure", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 0},
    {"name": "Status 54: Isolation transformer overtemperature", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 1},
    {"name": "Status 54: External DC disconnect tripped", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 2},
    {"name": "Status 54: Power supply card failure", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 3},
    {"name": "Status 54: Battery monitor card failure", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 4},
    {"name": "Status 54: Battery monitor card removed", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 5},
    {"name": "Status 54: XR card failure", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 6},
    {"name": "Status 54: XR card removed", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 7},
    {"name": "Status 54: Switch gear card failure", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 8},
    {"name": "Status 54: Switch gear card removed", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 9},
    {"name": "Status 54: Internal DC disconnect tripped", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 10},
    {"name": "Status 54: Static bypass switch fault", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 11},
    {"name": "Status 54: System ID card removed", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 12},
    {"name": "Status 54: System ID card failed", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 13},
    {"name": "Status 54: Forced bypass", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 14},
    {"name": "Status 54: Static bypass switch removed", "group": "Status", "area": "holding", "address": 54, "type": "bool", "bit": 15},
    {"name": "EMC contact position", "group": "Environment", "area": "holding", "address": 55, "type": "uint16"},
    {"name": "Minimum return battery capacity", "group": "Settings", "area": "holding", "address": 56, "type": "uint16", "unit": "%"},
    {"name": "Lower transfer point", "group": "Settings", "area": "holding", "address": 57, "type": "uint16", "unit": "V"},
    {"name": "Upper transfer point", "group": "Settings", "area": "holding", "address": 58, "type": "uint16", "unit": "V"},
    {"name": "Nominal output voltage", "group": "Settings", "area": "holding", "address": 59, "type": "uint16", "unit": "V"},
    {"name": "Shutdown delay", "group": "Settings", "area": "holding", "address": 60, "type": "uint16", "unit": "s"},
    {"name": "Low battery duration", "group": "Settings", "area": "holding", "address": 61, "type": "uint16", "unit": "min"},
    {"name": "Turn on delay", "group": "Settings", "area": "holding", "address": 62, "type": "uint16", "unit": "s"},
    {"name": "Sensitivity", "group": "Settings", "area": "holding", "address": 63, "type": "uint16"},
    {"name": "UPS ID character 1", "group": "Info", "area": "holding", "address": 64, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 2", "group": "Info", "area": "holding", "address": 65, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 3", "group": "Info", "area": "holding", "address": 66, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 4", "group": "Info", "area": "holding", "address": 67, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 5", "group": "Info", "area": "holding", "address": 68, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 6", "group": "Info", "area": "holding", "address": 69, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 7", "group": "Info", "area": "holding", "address": 70, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "UPS ID character 8", "group": "Info", "area": "holding", "address": 71, "type": "uint16", "description": "One ASCII character of the UPS ID"},
    {"name": "Battery current", "group": "Battery", "area": "holding", "address": 72, "type": "uint16", "unit": "A"}
  ]
}
