{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Moxa",
  "model": "ioLogik R1210",
  "models": ["ioLogik R1210", "ioLogik R1210-T"],
  "vendor_website": "moxa.com",
  "description": "RS-485 remote I/O with 16 digital inputs",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Moxa, \"ioLogik R1200 Series User's Manual\", edition 3.3 (February 2018), Appendix A",
  "sources": [{"title": "ioLogik R1200 Series User's Manual", "version": "Edition 3.3", "date": "2018-02", "url": "https://cdn11.bigcommerce.com/s-hltjsp5jm3/content/pdfs/moxa-iologik-r1200-series-manual.pdf", "note": "Appendix A, Modbus address and register maps"}],
  "notes": [
    "The unit ID is set with the two rotary switches (1-99). With the mode switch in Initial position the port runs at 9600 baud, 8N1; the settings in Run mode are configured by software.",
    "32-bit values are high word first."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "DI 0 counter status", "group": "DI", "area": "coil", "address": "0x0000", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 1 counter status", "group": "DI", "area": "coil", "address": "0x0001", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 2 counter status", "group": "DI", "area": "coil", "address": "0x0002", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 3 counter status", "group": "DI", "area": "coil", "address": "0x0003", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 4 counter status", "group": "DI", "area": "coil", "address": "0x0004", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 5 counter status", "group": "DI", "area": "coil", "address": "0x0005", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 6 counter status", "group": "DI", "area": "coil", "address": "0x0006", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 7 counter status", "group": "DI", "area": "coil", "address": "0x0007", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 8 counter status", "group": "DI", "area": "coil", "address": "0x0008", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 9 counter status", "group": "DI", "area": "coil", "address": "0x0009", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 10 counter status", "group": "DI", "area": "coil", "address": "0x000A", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 11 counter status", "group": "DI", "area": "coil", "address": "0x000B", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 12 counter status", "group": "DI", "area": "coil", "address": "0x000C", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 13 counter status", "group": "DI", "area": "coil", "address": "0x000D", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 14 counter status", "group": "DI", "area": "coil", "address": "0x000E", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 15 counter status", "group": "DI", "area": "coil", "address": "0x000F", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 0 counter reset", "group": "DI", "area": "coil", "address": "0x0020", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 1 counter reset", "group": "DI", "area": "coil", "address": "0x0021", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 2 counter reset", "group": "DI", "area": "coil", "address": "0x0022", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 3 counter reset", "group": "DI", "area": "coil", "address": "0x0023", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 4 counter reset", "group": "DI", "area": "coil", "address": "0x0024", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 5 counter reset", "group": "DI", "area": "coil", "address": "0x0025", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 6 counter reset", "group": "DI", "area": "coil", "address": "0x0026", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 7 counter reset", "group": "DI", "area": "coil", "address": "0x0027", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 8 counter reset", "group": "DI", "area": "coil", "address": "0x0028", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 9 counter reset", "group": "DI", "area": "coil", "address": "0x0029", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 10 counter reset", "group": "DI", "area": "coil", "address": "0x002A", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 11 counter reset", "group": "DI", "area": "coil", "address": "0x002B", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 12 counter reset", "group": "DI", "area": "coil", "address": "0x002C", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 13 counter reset", "group": "DI", "area": "coil", "address": "0x002D", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 14 counter reset", "group": "DI", "area": "coil", "address": "0x002E", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 15 counter reset", "group": "DI", "area": "coil", "address": "0x002F", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 0 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0040", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 1 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0041", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 2 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0042", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 3 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0043", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 4 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0044", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 5 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0045", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 6 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0046", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 7 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0047", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 8 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0048", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 9 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0049", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 10 counter overflow flag", "group": "DI", "area": "coil", "address": "0x004A", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 11 counter overflow flag", "group": "DI", "area": "coil", "address": "0x004B", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 12 counter overflow flag", "group": "DI", "area": "coil", "address": "0x004C", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 13 counter overflow flag", "group": "DI", "area": "coil", "address": "0x004D", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 14 counter overflow flag", "group": "DI", "area": "coil", "address": "0x004E", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 15 counter overflow flag", "group": "DI", "area": "coil", "address": "0x004F", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 0 counter power on status", "group": "DI", "area": "coil", "address": "0x0060", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 1 counter power on status", "group": "DI", "area": "coil", "address": "0x0061", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 2 counter power on status", "group": "DI", "area": "coil", "address": "0x0062", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 3 counter power on status", "group": "DI", "area": "coil", "address": "0x0063", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 4 counter power on status", "group": "DI", "area": "coil", "address": "0x0064", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 5 counter power on status", "group": "DI", "area": "coil", "address": "0x0065", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 6 counter power on status", "group": "DI", "area": "coil", "address": "0x0066", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 7 counter power on status", "group": "DI", "area": "coil", "address": "0x0067", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 8 counter power on status", "group": "DI", "area": "coil", "address": "0x0068", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 9 counter power on status", "group": "DI", "area": "coil", "address": "0x0069", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 10 counter power on status", "group": "DI", "area": "coil", "address": "0x006A", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 11 counter power on status", "group": "DI", "area": "coil", "address": "0x006B", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 12 counter power on status", "group": "DI", "area": "coil", "address": "0x006C", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 13 counter power on status", "group": "DI", "area": "coil", "address": "0x006D", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 14 counter power on status", "group": "DI", "area": "coil", "address": "0x006E", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 15 counter power on status", "group": "DI", "area": "coil", "address": "0x006F", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 0 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0080", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 1 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0081", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 2 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0082", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 3 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0083", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 4 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0084", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 5 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0085", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 6 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0086", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 7 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0087", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 8 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0088", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 9 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0089", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 10 counter safe mode status", "group": "DI", "area": "coil", "address": "0x008A", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 11 counter safe mode status", "group": "DI", "area": "coil", "address": "0x008B", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 12 counter safe mode status", "group": "DI", "area": "coil", "address": "0x008C", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 13 counter safe mode status", "group": "DI", "area": "coil", "address": "0x008D", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 14 counter safe mode status", "group": "DI", "area": "coil", "address": "0x008E", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 15 counter safe mode status", "group": "DI", "area": "coil", "address": "0x008F", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 0 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A0", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 1 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A1", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 2 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A2", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 3 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A3", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 4 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A4", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 5 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A5", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 6 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A6", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 7 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A7", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 8 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A8", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 9 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A9", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 10 counter power off storage", "group": "DI", "area": "coil", "address": "0x00AA", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 11 counter power off storage", "group": "DI", "area": "coil", "address": "0x00AB", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 12 counter power off storage", "group": "DI", "area": "coil", "address": "0x00AC", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 13 counter power off storage", "group": "DI", "area": "coil", "address": "0x00AD", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 14 counter power off storage", "group": "DI", "area": "coil", "address": "0x00AE", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 15 counter power off storage", "group": "DI", "area": "coil", "address": "0x00AF", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 0 status", "group": "DI", "area": "discrete", "address": "0x0000", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 1 status", "group": "DI", "area": "discrete", "address": "0x0001", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 2 status", "group": "DI", "area": "discrete", "address": "0x0002", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 3 status", "group": "DI", "area": "discrete", "address": "0x0003", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 4 status", "group": "DI", "area": "discrete", "address": "0x0004", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 5 status", "group": "DI", "area": "discrete", "address": "0x0005", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 6 status", "group": "DI", "area": "discrete", "address": "0x0006", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 7 status", "group": "DI", "area": "discrete", "address": "0x0007", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 8 status", "group": "DI", "area": "discrete", "address": "0x0008", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 9 status", "group": "DI", "area": "discrete", "address": "0x0009", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 10 status", "group": "DI", "area": "discrete", "address": "0x000A", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 11 status", "group": "DI", "area": "discrete", "address": "0x000B", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 12 status", "group": "DI", "area": "discrete", "address": "0x000C", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 13 status", "group": "DI", "area": "discrete", "address": "0x000D", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 14 status", "group": "DI", "area": "discrete", "address": "0x000E", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 15 status", "group": "DI", "area": "discrete", "address": "0x000F", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 0 status (register)", "group": "DI", "area": "input", "address": "0x0000", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 1 status (register)", "group": "DI", "area": "input", "address": "0x0001", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 2 status (register)", "group": "DI", "area": "input", "address": "0x0002", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 3 status (register)", "group": "DI", "area": "input", "address": "0x0003", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 4 status (register)", "group": "DI", "area": "input", "address": "0x0004", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 5 status (register)", "group": "DI", "area": "input", "address": "0x0005", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 6 status (register)", "group": "DI", "area": "input", "address": "0x0006", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 7 status (register)", "group": "DI", "area": "input", "address": "0x0007", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 8 status (register)", "group": "DI", "area": "input", "address": "0x0008", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 9 status (register)", "group": "DI", "area": "input", "address": "0x0009", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 10 status (register)", "group": "DI", "area": "input", "address": "0x000A", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 11 status (register)", "group": "DI", "area": "input", "address": "0x000B", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 12 status (register)", "group": "DI", "area": "input", "address": "0x000C", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 13 status (register)", "group": "DI", "area": "input", "address": "0x000D", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 14 status (register)", "group": "DI", "area": "input", "address": "0x000E", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 15 status (register)", "group": "DI", "area": "input", "address": "0x000F", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 0 counter value", "group": "DI", "area": "input", "address": "0x0020", "type": "uint32", "access": "R"},
    {"name": "DI 1 counter value", "group": "DI", "area": "input", "address": "0x0022", "type": "uint32", "access": "R"},
    {"name": "DI 2 counter value", "group": "DI", "area": "input", "address": "0x0024", "type": "uint32", "access": "R"},
    {"name": "DI 3 counter value", "group": "DI", "area": "input", "address": "0x0026", "type": "uint32", "access": "R"},
    {"name": "DI 4 counter value", "group": "DI", "area": "input", "address": "0x0028", "type": "uint32", "access": "R"},
    {"name": "DI 5 counter value", "group": "DI", "area": "input", "address": "0x002A", "type": "uint32", "access": "R"},
    {"name": "DI 6 counter value", "group": "DI", "area": "input", "address": "0x002C", "type": "uint32", "access": "R"},
    {"name": "DI 7 counter value", "group": "DI", "area": "input", "address": "0x002E", "type": "uint32", "access": "R"},
    {"name": "DI 8 counter value", "group": "DI", "area": "input", "address": "0x0030", "type": "uint32", "access": "R"},
    {"name": "DI 9 counter value", "group": "DI", "area": "input", "address": "0x0032", "type": "uint32", "access": "R"},
    {"name": "DI 10 counter value", "group": "DI", "area": "input", "address": "0x0034", "type": "uint32", "access": "R"},
    {"name": "DI 11 counter value", "group": "DI", "area": "input", "address": "0x0036", "type": "uint32", "access": "R"},
    {"name": "DI 12 counter value", "group": "DI", "area": "input", "address": "0x0038", "type": "uint32", "access": "R"},
    {"name": "DI 13 counter value", "group": "DI", "area": "input", "address": "0x003A", "type": "uint32", "access": "R"},
    {"name": "DI 14 counter value", "group": "DI", "area": "input", "address": "0x003C", "type": "uint32", "access": "R"},
    {"name": "DI 15 counter value", "group": "DI", "area": "input", "address": "0x003E", "type": "uint32", "access": "R"},
    {"name": "DI 0 mode", "group": "DI", "area": "holding", "address": "0x0000", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 1 mode", "group": "DI", "area": "holding", "address": "0x0001", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 2 mode", "group": "DI", "area": "holding", "address": "0x0002", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 3 mode", "group": "DI", "area": "holding", "address": "0x0003", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 4 mode", "group": "DI", "area": "holding", "address": "0x0004", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 5 mode", "group": "DI", "area": "holding", "address": "0x0005", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 6 mode", "group": "DI", "area": "holding", "address": "0x0006", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 7 mode", "group": "DI", "area": "holding", "address": "0x0007", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 8 mode", "group": "DI", "area": "holding", "address": "0x0008", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 9 mode", "group": "DI", "area": "holding", "address": "0x0009", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 10 mode", "group": "DI", "area": "holding", "address": "0x000A", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 11 mode", "group": "DI", "area": "holding", "address": "0x000B", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 12 mode", "group": "DI", "area": "holding", "address": "0x000C", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 13 mode", "group": "DI", "area": "holding", "address": "0x000D", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 14 mode", "group": "DI", "area": "holding", "address": "0x000E", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 15 mode", "group": "DI", "area": "holding", "address": "0x000F", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 0 filter", "group": "DI", "area": "holding", "address": "0x0020", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 1 filter", "group": "DI", "area": "holding", "address": "0x0021", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 2 filter", "group": "DI", "area": "holding", "address": "0x0022", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 3 filter", "group": "DI", "area": "holding", "address": "0x0023", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 4 filter", "group": "DI", "area": "holding", "address": "0x0024", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 5 filter", "group": "DI", "area": "holding", "address": "0x0025", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 6 filter", "group": "DI", "area": "holding", "address": "0x0026", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 7 filter", "group": "DI", "area": "holding", "address": "0x0027", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 8 filter", "group": "DI", "area": "holding", "address": "0x0028", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 9 filter", "group": "DI", "area": "holding", "address": "0x0029", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 10 filter", "group": "DI", "area": "holding", "address": "0x002A", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 11 filter", "group": "DI", "area": "holding", "address": "0x002B", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 12 filter", "group": "DI", "area": "holding", "address": "0x002C", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 13 filter", "group": "DI", "area": "holding", "address": "0x002D", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 14 filter", "group": "DI", "area": "holding", "address": "0x002E", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 15 filter", "group": "DI", "area": "holding", "address": "0x002F", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 0 counter event", "group": "DI", "area": "holding", "address": "0x0040", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 1 counter event", "group": "DI", "area": "holding", "address": "0x0041", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 2 counter event", "group": "DI", "area": "holding", "address": "0x0042", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 3 counter event", "group": "DI", "area": "holding", "address": "0x0043", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 4 counter event", "group": "DI", "area": "holding", "address": "0x0044", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 5 counter event", "group": "DI", "area": "holding", "address": "0x0045", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 6 counter event", "group": "DI", "area": "holding", "address": "0x0046", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 7 counter event", "group": "DI", "area": "holding", "address": "0x0047", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 8 counter event", "group": "DI", "area": "holding", "address": "0x0048", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 9 counter event", "group": "DI", "area": "holding", "address": "0x0049", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 10 counter event", "group": "DI", "area": "holding", "address": "0x004A", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 11 counter event", "group": "DI", "area": "holding", "address": "0x004B", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 12 counter event", "group": "DI", "area": "holding", "address": "0x004C", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 13 counter event", "group": "DI", "area": "holding", "address": "0x004D", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 14 counter event", "group": "DI", "area": "holding", "address": "0x004E", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 15 counter event", "group": "DI", "area": "holding", "address": "0x004F", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "Model ID", "group": "System", "area": "input", "address": "0x7530", "type": "uint16", "access": "R"},
    {"name": "Firmware version", "group": "System", "area": "input", "address": "0x7545", "type": "uint32", "access": "R"},
    {"name": "Firmware release date", "group": "System", "area": "input", "address": "0x7547", "type": "uint32", "access": "R"},
    {"name": "Vendor ID", "group": "System", "area": "input", "address": "0x7549", "type": "uint16", "access": "R"},
    {"name": "Unit ID", "group": "System", "area": "input", "address": "0x754A", "type": "uint16", "access": "R", "description": "Set with the two rotary switches, 1-99"},
    {"name": "Serial number", "group": "System", "area": "input", "address": "0x754B", "type": "string", "length": 6, "access": "R", "role": "serial"},
    {"name": "Product name", "group": "System", "area": "input", "address": "0x7555", "type": "string", "length": 10, "access": "R"},
    {"name": "RS-485 port mode", "group": "System", "area": "input", "address": "0x756A", "type": "uint16", "access": "R", "enum": {"0": "Initial, repeater", "1": "Initial, dual RS-485", "2": "Run, repeater", "3": "Run, dual RS-485"}},
    {"name": "Server name", "group": "System", "area": "holding", "address": "0x7531", "type": "string", "length": 10, "access": "RW"},
    {"name": "Server location", "group": "System", "area": "holding", "address": "0x753B", "type": "string", "length": 10, "access": "RW"},
    {"name": "Password", "group": "System", "area": "holding", "address": "0x755F", "type": "string", "length": 5, "access": "RW"},
    {"name": "Modbus watchdog", "group": "System", "area": "holding", "address": "0x7564", "type": "uint16", "access": "RW", "enum": {"0": "Disabled", "1": "Enabled"}},
    {"name": "Modbus watchdog timeout", "group": "System", "area": "holding", "address": "0x7565", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Modbus watchdog status", "group": "System", "area": "holding", "address": "0x7566", "type": "uint16", "access": "RW", "enum": {"0": "Normal", "1": "Timeout"}},
    {"name": "Locate device", "group": "System", "area": "holding", "address": "0x7567", "type": "uint16", "access": "RW"},
    {"name": "Restart device", "group": "System", "area": "holding", "address": "0x7568", "type": "uint16", "access": "RW", "enum": {"404": "Restart"}},
    {"name": "Load factory defaults", "group": "System", "area": "holding", "address": "0x7569", "type": "uint16", "access": "RW", "enum": {"404": "Load defaults"}},
    {"name": "Port 0 baud rate", "group": "System", "area": "holding", "address": "0x756C", "type": "uint16", "access": "RW", "enum": {"1": "1200", "2": "2400", "3": "4800", "4": "9600", "5": "19200", "6": "38400", "7": "57600", "8": "115200", "9": "921600"}},
    {"name": "Port 0 stop bits", "group": "System", "area": "holding", "address": "0x7570", "type": "uint16", "access": "RW", "enum": {"0": "1", "1": "2"}},
    {"name": "Port 0 parity", "group": "System", "area": "holding", "address": "0x7572", "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Even", "2": "Odd"}},
    {"name": "Port 1 baud rate", "group": "System", "area": "holding", "address": "0x756D", "type": "uint16", "access": "RW", "enum": {"1": "1200", "2": "2400", "3": "4800", "4": "9600", "5": "19200", "6": "38400", "7": "57600", "8": "115200", "9": "921600"}},
    {"name": "Port 1 stop bits", "group": "System", "area": "holding", "address": "0x7571", "type": "uint16", "access": "RW", "enum": {"0": "1", "1": "2"}},
    {"name": "Port 1 parity", "group": "System", "area": "holding", "address": "0x7573", "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Even", "2": "Odd"}},
    {"name": "Vendor name", "group": "System", "area": "holding", "address": "0x7594", "type": "string", "length": 20, "access": "RW"}
  ]
}
