{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Unipi Technology",
  "model": "Patron M207",
  "models": [
    "Patron M207"
  ],
  "vendor_website": "www.unipi.technology",
  "description": "Modbus TCP PLC unit with 20 digital inputs, 4 digital outputs, 14 relay outputs, 1 analog output and 1 analog input",
  "x_status": "official",
  "revision": 3,
  "revised": "2026-11-10",
  "source": "Patron M207 Modbus map v2.0, Unipi technology",
  "sources": [
    {
      "title": "Patron M207 Modbus map",
      "version": "2.0",
      "url": "https://kb.unipi.technology/_media/files:products:patron:unipi-patron-m207-modbus-map-v2.0.pdf",
      "note": "Registers and Coils sheets"
    }
  ],
  "notes": [
    "Registers are 0-based and use the Unit 0 addresses of the document, which cover every section of the device. Multi-register values (32-bit counters, serial number, floats) are read here with the most significant register first, as the document states.",
    "Reserved, obsolete and internal registers, and registers reachable only through a section unit (Unit 1 to 3), are left out."
  ],
  "protocol": "tcp",
  "unit_id": 0,
  "port": 502,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "enums": {
    "ai_mode_ui": {"0": "Voltage 0-10 V", "1": "Current 0-20 mA"},
    "ao_mode": {"0": "Voltage 0-10 V", "1": "Current 0-20 mA", "3": "Resistance 0-2 kohm"}
  },
  "registers": [
    {"name": "Digital Input 1.1", "group": "Digital inputs", "area": "holding", "address": 0, "type": "bool", "bit": 0, "access": "R"},
    {"name": "Digital Input 1.2", "group": "Digital inputs", "area": "holding", "address": 0, "type": "bool", "bit": 1, "access": "R"},
    {"name": "Digital Input 1.3", "group": "Digital inputs", "area": "holding", "address": 0, "type": "bool", "bit": 2, "access": "R"},
    {"name": "Digital Input 1.4", "group": "Digital inputs", "area": "holding", "address": 0, "type": "bool", "bit": 3, "access": "R"},
    {"name": "Digital Output 1.1", "group": "Digital outputs", "area": "holding", "address": 1, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Digital Output 1.2", "group": "Digital outputs", "area": "holding", "address": 1, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Digital Output 1.3", "group": "Digital outputs", "area": "holding", "address": 1, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Digital Output 1.4", "group": "Digital outputs", "area": "holding", "address": 1, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "VRefInt of MCU (section 1)", "group": "Info", "area": "holding", "address": 5, "type": "uint16", "access": "R", "description": "Reference voltage of the MCU (raw)"},
    {"name": "MWD Enable (section 1)", "group": "Watchdog", "area": "holding", "address": 6, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "MWD Reboot Detected (section 1)", "group": "Watchdog", "area": "holding", "address": 6, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Counter of Digital Input 1.1", "group": "Counters", "area": "holding", "address": 8, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 1.2", "group": "Counters", "area": "holding", "address": 10, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 1.3", "group": "Counters", "area": "holding", "address": 12, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 1.4", "group": "Counters", "area": "holding", "address": 14, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "PWM Duty Cycle of DO 1.1", "group": "PWM", "area": "holding", "address": 16, "type": "uint16", "access": "RW", "description": "PWM duty cycle of the digital output"},
    {"name": "PWM Duty Cycle of DO 1.2", "group": "PWM", "area": "holding", "address": 17, "type": "uint16", "access": "RW", "description": "PWM duty cycle of the digital output"},
    {"name": "PWM Duty Cycle of DO 1.3", "group": "PWM", "area": "holding", "address": 18, "type": "uint16", "access": "RW", "description": "PWM duty cycle of the digital output"},
    {"name": "PWM Duty Cycle of DO 1.4", "group": "PWM", "area": "holding", "address": 19, "type": "uint16", "access": "RW", "description": "PWM duty cycle of the digital output"},
    {"name": "User LED 1.1", "group": "LEDs", "area": "holding", "address": 20, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "User LED 1.2", "group": "LEDs", "area": "holding", "address": 20, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "User LED 1.3", "group": "LEDs", "area": "holding", "address": 20, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "User LED 1.4", "group": "LEDs", "area": "holding", "address": 20, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Synchronised DO/RO 1.1", "group": "Synchronised outputs", "area": "holding", "address": 21, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Synchronised DO/RO 1.2", "group": "Synchronised outputs", "area": "holding", "address": 21, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Synchronised DO/RO 1.3", "group": "Synchronised outputs", "area": "holding", "address": 21, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Synchronised DO/RO 1.4", "group": "Synchronised outputs", "area": "holding", "address": 21, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 1.1", "group": "Synchronised outputs", "area": "holding", "address": 22, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 1.2", "group": "Synchronised outputs", "area": "holding", "address": 22, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 1.3", "group": "Synchronised outputs", "area": "holding", "address": 22, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 1.4", "group": "Synchronised outputs", "area": "holding", "address": 22, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Firmware Version (section 1)", "group": "Info", "area": "holding", "address": 1000, "type": "uint16", "access": "R", "role": "firmware", "description": "Firmware version of the section (raw number)"},
    {"name": "Number of DIs (section 1)", "group": "Info", "area": "holding", "address": 1001, "type": "uint16", "bit": 0, "bits": 8, "access": "R"},
    {"name": "Number of DOs (section 1)", "group": "Info", "area": "holding", "address": 1001, "type": "uint16", "bit": 8, "bits": 8, "access": "R"},
    {"name": "Number of internal RS485 lines (section 1)", "group": "Info", "area": "holding", "address": 1002, "type": "uint16", "bit": 0, "bits": 4, "access": "R"},
    {"name": "Number of AOs (section 1)", "group": "Info", "area": "holding", "address": 1002, "type": "uint16", "bit": 4, "bits": 4, "access": "R"},
    {"name": "Number of AIs (section 1)", "group": "Info", "area": "holding", "address": 1002, "type": "uint16", "bit": 8, "bits": 8, "access": "R"},
    {"name": "Firmware ID (section 1)", "group": "Info", "area": "holding", "address": 1003, "type": "uint16", "access": "R"},
    {"name": "Hardware ID (section 1)", "group": "Info", "area": "holding", "address": 1004, "type": "uint16", "access": "R"},
    {"name": "PCB Serial Number (section 1)", "group": "Info", "area": "holding", "address": 1005, "type": "uint32", "access": "R", "role": "serial"},
    {"name": "RS485 RX queue not empty (section 1)", "group": "Interrupt mask", "area": "holding", "address": 1007, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "RS485 TX queue empty (section 1)", "group": "Interrupt mask", "area": "holding", "address": 1007, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "RS485 ModBus RX frame finished (section 1)", "group": "Interrupt mask", "area": "holding", "address": 1007, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Digital Input changed state (section 1)", "group": "Interrupt mask", "area": "holding", "address": 1007, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "MWD Timeout (in 1ms) (section 1)", "group": "Watchdog", "area": "holding", "address": 1008, "type": "uint16", "access": "RW", "unit": "ms"},
    {"name": "VRef of MCU (section 1)", "group": "Info", "area": "holding", "address": 1009, "type": "uint16", "access": "R", "description": "Reference voltage of the MCU (raw)"},
    {"name": "Debounce time (in 100us) for DI 1.1", "group": "Settings", "area": "holding", "address": 1010, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 1.2", "group": "Settings", "area": "holding", "address": 1011, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 1.3", "group": "Settings", "area": "holding", "address": 1012, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 1.4", "group": "Settings", "area": "holding", "address": 1013, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Enable DirectSwitch on DI 1.1", "group": "DirectSwitch", "area": "holding", "address": 1014, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 1.2", "group": "DirectSwitch", "area": "holding", "address": 1014, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 1.3", "group": "DirectSwitch", "area": "holding", "address": 1014, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 1.4", "group": "DirectSwitch", "area": "holding", "address": 1014, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 1.1", "group": "DirectSwitch", "area": "holding", "address": 1015, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 1.2", "group": "DirectSwitch", "area": "holding", "address": 1015, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 1.3", "group": "DirectSwitch", "area": "holding", "address": 1015, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 1.4", "group": "DirectSwitch", "area": "holding", "address": 1015, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 1.1", "group": "DirectSwitch", "area": "holding", "address": 1016, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 1.2", "group": "DirectSwitch", "area": "holding", "address": 1016, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 1.3", "group": "DirectSwitch", "area": "holding", "address": 1016, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 1.4", "group": "DirectSwitch", "area": "holding", "address": 1016, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Section PWM prescaler (section 1)", "group": "PWM", "area": "holding", "address": 1017, "type": "uint16", "access": "RW"},
    {"name": "Section PWM cycle length (section 1)", "group": "PWM", "area": "holding", "address": 1018, "type": "uint16", "access": "RW"},
    {"name": "Analog Output Configuration 1.1", "group": "Analog", "area": "holding", "address": 1019, "type": "uint16", "access": "RW", "enum": "ao_mode"},
    {"name": "Analog Output Voltage deviation 1.1", "group": "Analog", "area": "holding", "address": 1020, "type": "uint16", "access": "RW"},
    {"name": "Analog Output Voltage offset 1.1", "group": "Analog", "area": "holding", "address": 1021, "type": "uint16", "access": "RW"},
    {"name": "Analog Output Current deviation 1.1", "group": "Analog", "area": "holding", "address": 1022, "type": "uint16", "access": "RW"},
    {"name": "Analog Output Current offset 1.1", "group": "Analog", "area": "holding", "address": 1023, "type": "uint16", "access": "RW"},
    {"name": "Analog Input Configuration 1.1", "group": "Analog", "area": "holding", "address": 1024, "type": "uint16", "access": "RW", "enum": "ai_mode_ui"},
    {"name": "Analog Input Voltage deviation 1.1", "group": "Analog", "area": "holding", "address": 1025, "type": "uint16", "access": "RW"},
    {"name": "Analog Input Voltage offset 1.1", "group": "Analog", "area": "holding", "address": 1026, "type": "uint16", "access": "RW"},
    {"name": "Analog Input Current deviation 1.1", "group": "Analog", "area": "holding", "address": 1027, "type": "uint16", "access": "RW"},
    {"name": "Analog Input Current offset 1.1", "group": "Analog", "area": "holding", "address": 1028, "type": "uint16", "access": "RW"},
    {"name": "Analog Input/Output Voltage deviation (input side) 1.1", "group": "Analog", "area": "holding", "address": 1029, "type": "uint16", "access": "RW"},
    {"name": "Analog Input/Output Voltage offset (input side) 1.1", "group": "Analog", "area": "holding", "address": 1030, "type": "uint16", "access": "RW"},
    {"name": "Analog Output value 1.1", "group": "Analog", "area": "holding", "address": 3000, "type": "float32", "access": "RW", "description": "Value in the unit of the configured mode (V, mA or ohm)"},
    {"name": "Analog Input value 1.1", "group": "Analog", "area": "holding", "address": 3002, "type": "float32", "access": "R", "description": "Value in the unit of the configured mode (V, mA or ohm)"},
    {"name": "Storage - Erase cycles used [%] (section 1)", "group": "Storage", "area": "holding", "address": 4000, "type": "uint16", "access": "R", "unit": "%"},
    {"name": "Storage - Good blocks [%] (section 1)", "group": "Storage", "area": "holding", "address": 4001, "type": "uint16", "access": "R", "unit": "%"},
    {"name": "Digital Input 2.1", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 0, "access": "R"},
    {"name": "Digital Input 2.2", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 1, "access": "R"},
    {"name": "Digital Input 2.3", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 2, "access": "R"},
    {"name": "Digital Input 2.4", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 3, "access": "R"},
    {"name": "Digital Input 2.5", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 4, "access": "R"},
    {"name": "Digital Input 2.6", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 5, "access": "R"},
    {"name": "Digital Input 2.7", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 6, "access": "R"},
    {"name": "Digital Input 2.8", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 7, "access": "R"},
    {"name": "Digital Input 2.9", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 8, "access": "R"},
    {"name": "Digital Input 2.10", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 9, "access": "R"},
    {"name": "Digital Input 2.11", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 10, "access": "R"},
    {"name": "Digital Input 2.12", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 11, "access": "R"},
    {"name": "Digital Input 2.13", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 12, "access": "R"},
    {"name": "Digital Input 2.14", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 13, "access": "R"},
    {"name": "Digital Input 2.15", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 14, "access": "R"},
    {"name": "Digital Input 2.16", "group": "Digital inputs", "area": "holding", "address": 100, "type": "bool", "bit": 15, "access": "R"},
    {"name": "Relay Output 2.1", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Relay Output 2.2", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Relay Output 2.3", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Relay Output 2.4", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Relay Output 2.5", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Relay Output 2.6", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Relay Output 2.7", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Relay Output 2.8", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Relay Output 2.9", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Relay Output 2.10", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Relay Output 2.11", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Relay Output 2.12", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 11, "access": "RW"},
    {"name": "Relay Output 2.13", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 12, "access": "RW"},
    {"name": "Relay Output 2.14", "group": "Relay outputs", "area": "holding", "address": 101, "type": "bool", "bit": 13, "access": "RW"},
    {"name": "MWD Enable (section 2)", "group": "Watchdog", "area": "holding", "address": 102, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "MWD Reboot Detected (section 2)", "group": "Watchdog", "area": "holding", "address": 102, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Counter of Digital Input 2.1", "group": "Counters", "area": "holding", "address": 103, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.2", "group": "Counters", "area": "holding", "address": 105, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.3", "group": "Counters", "area": "holding", "address": 107, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.4", "group": "Counters", "area": "holding", "address": 109, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.5", "group": "Counters", "area": "holding", "address": 111, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.6", "group": "Counters", "area": "holding", "address": 113, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.7", "group": "Counters", "area": "holding", "address": 115, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.8", "group": "Counters", "area": "holding", "address": 117, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.9", "group": "Counters", "area": "holding", "address": 119, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.10", "group": "Counters", "area": "holding", "address": 121, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.11", "group": "Counters", "area": "holding", "address": 123, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.12", "group": "Counters", "area": "holding", "address": 125, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.13", "group": "Counters", "area": "holding", "address": 127, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.14", "group": "Counters", "area": "holding", "address": 129, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.15", "group": "Counters", "area": "holding", "address": 131, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Counter of Digital Input 2.16", "group": "Counters", "area": "holding", "address": 133, "type": "uint32", "access": "RW", "description": "Pulse counter; writable to reset"},
    {"name": "Synchronised DO/RO 2.1", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Synchronised DO/RO 2.2", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Synchronised DO/RO 2.3", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Synchronised DO/RO 2.4", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Synchronised DO/RO 2.5", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Synchronised DO/RO 2.6", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Synchronised DO/RO 2.7", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Synchronised DO/RO 2.8", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Synchronised DO/RO 2.9", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Synchronised DO/RO 2.10", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Synchronised DO/RO 2.11", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Synchronised DO/RO 2.12", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 11, "access": "RW"},
    {"name": "Synchronised DO/RO 2.13", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 12, "access": "RW"},
    {"name": "Synchronised DO/RO 2.14", "group": "Synchronised outputs", "area": "holding", "address": 139, "type": "bool", "bit": 13, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.1", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.2", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.3", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.4", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.5", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.6", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.7", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.8", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.9", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.10", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.11", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.12", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 11, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.13", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 12, "access": "RW"},
    {"name": "Synchronised DO/RO Lock 2.14", "group": "Synchronised outputs", "area": "holding", "address": 140, "type": "bool", "bit": 13, "access": "RW"},
    {"name": "Firmware Version (section 2)", "group": "Info", "area": "holding", "address": 1100, "type": "uint16", "access": "R", "description": "Firmware version of the section (raw number)"},
    {"name": "Number of DIs (section 2)", "group": "Info", "area": "holding", "address": 1101, "type": "uint16", "bit": 0, "bits": 8, "access": "R"},
    {"name": "Number of DOs (section 2)", "group": "Info", "area": "holding", "address": 1101, "type": "uint16", "bit": 8, "bits": 8, "access": "R"},
    {"name": "Number of internal RS485 lines (section 2)", "group": "Info", "area": "holding", "address": 1102, "type": "uint16", "bit": 0, "bits": 4, "access": "R"},
    {"name": "Number of AOs (section 2)", "group": "Info", "area": "holding", "address": 1102, "type": "uint16", "bit": 4, "bits": 4, "access": "R"},
    {"name": "Number of AIs (section 2)", "group": "Info", "area": "holding", "address": 1102, "type": "uint16", "bit": 8, "bits": 8, "access": "R"},
    {"name": "Firmware ID (section 2)", "group": "Info", "area": "holding", "address": 1103, "type": "uint16", "access": "R"},
    {"name": "Hardware ID (section 2)", "group": "Info", "area": "holding", "address": 1104, "type": "uint16", "access": "R"},
    {"name": "PCB Serial Number (section 2)", "group": "Info", "area": "holding", "address": 1105, "type": "uint32", "access": "R"},
    {"name": "RS485 RX queue not empty (section 2)", "group": "Interrupt mask", "area": "holding", "address": 1107, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "RS485 TX queue empty (section 2)", "group": "Interrupt mask", "area": "holding", "address": 1107, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "RS485 ModBus RX frame finished (section 2)", "group": "Interrupt mask", "area": "holding", "address": 1107, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Digital Input changed state (section 2)", "group": "Interrupt mask", "area": "holding", "address": 1107, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "MWD Timeout (in 1ms) (section 2)", "group": "Watchdog", "area": "holding", "address": 1108, "type": "uint16", "access": "RW", "unit": "ms"},
    {"name": "VRef of MCU (section 2)", "group": "Info", "area": "holding", "address": 1109, "type": "uint16", "access": "R", "description": "Reference voltage of the MCU (raw)"},
    {"name": "Debounce time (in 100us) for DI 2.1", "group": "Settings", "area": "holding", "address": 1110, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.2", "group": "Settings", "area": "holding", "address": 1111, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.3", "group": "Settings", "area": "holding", "address": 1112, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.4", "group": "Settings", "area": "holding", "address": 1113, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.5", "group": "Settings", "area": "holding", "address": 1114, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.6", "group": "Settings", "area": "holding", "address": 1115, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.7", "group": "Settings", "area": "holding", "address": 1116, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.8", "group": "Settings", "area": "holding", "address": 1117, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.9", "group": "Settings", "area": "holding", "address": 1118, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.10", "group": "Settings", "area": "holding", "address": 1119, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.11", "group": "Settings", "area": "holding", "address": 1120, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.12", "group": "Settings", "area": "holding", "address": 1121, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.13", "group": "Settings", "area": "holding", "address": 1122, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.14", "group": "Settings", "area": "holding", "address": 1123, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.15", "group": "Settings", "area": "holding", "address": 1124, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Debounce time (in 100us) for DI 2.16", "group": "Settings", "area": "holding", "address": 1125, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "ms", "description": "Raw unit is 100 us"},
    {"name": "Enable DirectSwitch on DI 2.1", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.2", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.3", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.4", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.5", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.6", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.7", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.8", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.9", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.10", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.11", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.12", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 11, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.13", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 12, "access": "RW"},
    {"name": "Enable DirectSwitch on DI 2.14", "group": "DirectSwitch", "area": "holding", "address": 1126, "type": "bool", "bit": 13, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.1", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.2", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.3", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.4", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.5", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.6", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.7", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.8", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.9", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.10", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.11", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.12", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 11, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.13", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 12, "access": "RW"},
    {"name": "Invert DirectSwitch Polarity on DI 2.14", "group": "DirectSwitch", "area": "holding", "address": 1127, "type": "bool", "bit": 13, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.1", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.2", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.3", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.4", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.5", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.6", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.7", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.8", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.9", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.10", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.11", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.12", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 11, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.13", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 12, "access": "RW"},
    {"name": "Enable DirectSwitch Toggle on DI 2.14", "group": "DirectSwitch", "area": "holding", "address": 1128, "type": "bool", "bit": 13, "access": "RW"},
    {"name": "Digital Output 1.1 (coil)", "group": "Digital outputs", "area": "coil", "address": 0, "type": "bool", "access": "RW"},
    {"name": "Digital Output 1.2 (coil)", "group": "Digital outputs", "area": "coil", "address": 1, "type": "bool", "access": "RW"},
    {"name": "Digital Output 1.3 (coil)", "group": "Digital outputs", "area": "coil", "address": 2, "type": "bool", "access": "RW"},
    {"name": "Digital Output 1.4 (coil)", "group": "Digital outputs", "area": "coil", "address": 3, "type": "bool", "access": "RW"},
    {"name": "Digital Input 1.1 (coil)", "group": "Digital inputs", "area": "coil", "address": 4, "type": "bool", "access": "R"},
    {"name": "Digital Input 1.2 (coil)", "group": "Digital inputs", "area": "coil", "address": 5, "type": "bool", "access": "R"},
    {"name": "Digital Input 1.3 (coil)", "group": "Digital inputs", "area": "coil", "address": 6, "type": "bool", "access": "R"},
    {"name": "Digital Input 1.4 (coil)", "group": "Digital inputs", "area": "coil", "address": 7, "type": "bool", "access": "R"},
    {"name": "User Programmable LED 1.1", "group": "LEDs", "area": "coil", "address": 8, "type": "bool", "access": "RW"},
    {"name": "User Programmable LED 1.2", "group": "LEDs", "area": "coil", "address": 9, "type": "bool", "access": "RW"},
    {"name": "User Programmable LED 1.3", "group": "LEDs", "area": "coil", "address": 10, "type": "bool", "access": "RW"},
    {"name": "User Programmable LED 1.4", "group": "LEDs", "area": "coil", "address": 11, "type": "bool", "access": "RW"},
    {"name": "MWD reset indication (section 1)", "group": "Commands", "area": "coil", "address": 1000, "type": "bool", "access": "RW", "description": "Clears the MWD reboot indication"},
    {"name": "Enable/Disable 1Wire Bus (section 1)", "group": "Commands", "area": "coil", "address": 1001, "type": "bool", "access": "RW", "description": "Enable or disable the 1-Wire bus"},
    {"name": "Reset section MCU (section 1)", "group": "Commands", "area": "coil", "address": 1002, "type": "bool", "access": "W"},
    {"name": "Save current configuration and use on startup (section 1)", "group": "Commands", "area": "coil", "address": 1003, "type": "bool", "access": "W", "description": "Stores the current configuration so it is used at startup"},
    {"name": "Relay Output 2.1 (coil)", "group": "Relay outputs", "area": "coil", "address": 100, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.2 (coil)", "group": "Relay outputs", "area": "coil", "address": 101, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.3 (coil)", "group": "Relay outputs", "area": "coil", "address": 102, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.4 (coil)", "group": "Relay outputs", "area": "coil", "address": 103, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.5 (coil)", "group": "Relay outputs", "area": "coil", "address": 104, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.6 (coil)", "group": "Relay outputs", "area": "coil", "address": 105, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.7 (coil)", "group": "Relay outputs", "area": "coil", "address": 106, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.8 (coil)", "group": "Relay outputs", "area": "coil", "address": 107, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.9 (coil)", "group": "Relay outputs", "area": "coil", "address": 108, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.10 (coil)", "group": "Relay outputs", "area": "coil", "address": 109, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.11 (coil)", "group": "Relay outputs", "area": "coil", "address": 110, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.12 (coil)", "group": "Relay outputs", "area": "coil", "address": 111, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.13 (coil)", "group": "Relay outputs", "area": "coil", "address": 112, "type": "bool", "access": "RW"},
    {"name": "Relay Output 2.14 (coil)", "group": "Relay outputs", "area": "coil", "address": 113, "type": "bool", "access": "RW"},
    {"name": "Digital Input 2.1 (coil)", "group": "Digital inputs", "area": "coil", "address": 114, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.2 (coil)", "group": "Digital inputs", "area": "coil", "address": 115, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.3 (coil)", "group": "Digital inputs", "area": "coil", "address": 116, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.4 (coil)", "group": "Digital inputs", "area": "coil", "address": 117, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.5 (coil)", "group": "Digital inputs", "area": "coil", "address": 118, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.6 (coil)", "group": "Digital inputs", "area": "coil", "address": 119, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.7 (coil)", "group": "Digital inputs", "area": "coil", "address": 120, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.8 (coil)", "group": "Digital inputs", "area": "coil", "address": 121, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.9 (coil)", "group": "Digital inputs", "area": "coil", "address": 122, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.10 (coil)", "group": "Digital inputs", "area": "coil", "address": 123, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.11 (coil)", "group": "Digital inputs", "area": "coil", "address": 124, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.12 (coil)", "group": "Digital inputs", "area": "coil", "address": 125, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.13 (coil)", "group": "Digital inputs", "area": "coil", "address": 126, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.14 (coil)", "group": "Digital inputs", "area": "coil", "address": 127, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.15 (coil)", "group": "Digital inputs", "area": "coil", "address": 128, "type": "bool", "access": "R"},
    {"name": "Digital Input 2.16 (coil)", "group": "Digital inputs", "area": "coil", "address": 129, "type": "bool", "access": "R"},
    {"name": "MWD reset indication (section 2)", "group": "Commands", "area": "coil", "address": 1100, "type": "bool", "access": "RW", "description": "Clears the MWD reboot indication"},
    {"name": "Reset section MCU (section 2)", "group": "Commands", "area": "coil", "address": 1102, "type": "bool", "access": "W"},
    {"name": "Save current configuration and use on startup (section 2)", "group": "Commands", "area": "coil", "address": 1103, "type": "bool", "access": "W", "description": "Stores the current configuration so it is used at startup"}
  ]
}
