{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Moxa",
  "model": "ioThinx 45MR-7210",
  "models": ["ioThinx 45MR-7210"],
  "vendor_website": "moxa.com",
  "description": "System + field power input monitor ioThinx 45MR slot module. Addresses are module-relative; actual PDU address = slot_base + relative_address. FC03: spStatus (rel 0, system power status WORD), spLowerLimitValue (rel 1-2, f32 lower alarm threshold), spUpperLimitValue (rel 3-4, f32 upper alarm threshold), fpStatus (rel 5, field power status WORD). Write spLowerLimitValue/spUpperLimitValue to configure system power alarm thresholds.",
  "revision": 2,
  "source": "Omni Console device library (OmniCoreST), modbus-library/moxa-iothinx-45mr-7210.toml; Source: ioThinx 4510 Series User's Manual V2.1, August 2019, Appendix A. Not verified against the manufacturer's documentation",
  "notes": [
    "Moxa ioThinx 45MR-7210.",
    "Converted automatically from the Omni Console device library (OmniCoreST).",
    "Not verified against the manufacturer's documentation.",
    "Corrections are welcome (CONTRIBUTING.md). Change x_status once this table has been checked against the manual.",
    "| Moxa ioThinx 45MR-7210 — System Power + Field Power Input Monitor",
    "|",
    "| Source: ioThinx 4510 Series User's Manual V2.1, August 2019, Appendix A",
    "| Protocol: Modbus/TCP via ioThinx 4510 adapter, port 502",
    "|",
    "| IMPORTANT: Addresses are MODULE-RELATIVE. Actual PDU address = slot_base + relative_address.",
    "| Slot base depends on which slot this module occupies in the ioThinx 4510 chassis.",
    "|",
    "| Monitors system power (SP) and field power (FP) rails.",
    "| spLowerLimitValue and spUpperLimitValue define the alarm threshold window for system power.",
    "|",
    "| FC03 (holding R/W): see [[registers]] below",
    "| (No FC01/FC02/FC04 entries documented for this module)"
  ],
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "unofficial",
  "x_origin": "omniconsole",
  "registers": [
    {"name": "spStatus (system power status; R)", "area": "holding", "address": 0, "type": "uint16", "access": "R"},
    {"name": "spLowerLimitValue hi-word (f32 system power lower alarm threshold; R/W)", "area": "holding", "address": 1, "type": "uint16", "access": "R"},
    {"name": "spLowerLimitValue lo-word", "area": "holding", "address": 2, "type": "uint16", "access": "R"},
    {"name": "spUpperLimitValue hi-word (f32 system power upper alarm threshold; R/W)", "area": "holding", "address": 3, "type": "uint16", "access": "R"},
    {"name": "spUpperLimitValue lo-word", "area": "holding", "address": 4, "type": "uint16", "access": "R"},
    {"name": "fpStatus (field power status; R)", "area": "holding", "address": 5, "type": "uint16", "access": "R"}
  ]
}
