{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Moxa",
  "model": "ioLogik E1240",
  "models": ["ioLogik E1240", "ioLogik E1240-T"],
  "vendor_website": "moxa.com",
  "description": "Remote Ethernet I/O with 8 analog inputs (voltage or current) and a two-port Ethernet switch",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Moxa, \"ioLogik E1200 Series User Manual\", version 16.1 (April 2024), Appendix A",
  "sources": [{"title": "ioLogik E1200 Series User Manual", "version": "16.1", "date": "2024-04", "url": "https://moxa.ru/files/Manuals_IE/moxa-iologik-e1200-series-manual-v16_1.pdf", "note": "Appendix A, Modbus/TCP default address mappings"}],
  "notes": [
    "Default Modbus/TCP address map (Appendix A). The addresses can be changed in the web console under user-defined Modbus addressing; this map fits the defaults.",
    "32-bit values are high word first.",
    "Scaled values are float32."
  ],
  "protocol": "tcp",
  "unit_id": 1,
  "port": 502,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "AI 0 raw value", "group": "AI", "area": "input", "address": 0, "type": "uint16", "access": "R"},
    {"name": "AI 1 raw value", "group": "AI", "area": "input", "address": 1, "type": "uint16", "access": "R"},
    {"name": "AI 2 raw value", "group": "AI", "area": "input", "address": 2, "type": "uint16", "access": "R"},
    {"name": "AI 3 raw value", "group": "AI", "area": "input", "address": 3, "type": "uint16", "access": "R"},
    {"name": "AI 4 raw value", "group": "AI", "area": "input", "address": 4, "type": "uint16", "access": "R"},
    {"name": "AI 5 raw value", "group": "AI", "area": "input", "address": 5, "type": "uint16", "access": "R"},
    {"name": "AI 6 raw value", "group": "AI", "area": "input", "address": 6, "type": "uint16", "access": "R"},
    {"name": "AI 7 raw value", "group": "AI", "area": "input", "address": 7, "type": "uint16", "access": "R"},
    {"name": "AI 0 scaled value", "group": "AI", "area": "input", "address": 8, "type": "float32", "access": "R"},
    {"name": "AI 1 scaled value", "group": "AI", "area": "input", "address": 10, "type": "float32", "access": "R"},
    {"name": "AI 2 scaled value", "group": "AI", "area": "input", "address": 12, "type": "float32", "access": "R"},
    {"name": "AI 3 scaled value", "group": "AI", "area": "input", "address": 14, "type": "float32", "access": "R"},
    {"name": "AI 4 scaled value", "group": "AI", "area": "input", "address": 16, "type": "float32", "access": "R"},
    {"name": "AI 5 scaled value", "group": "AI", "area": "input", "address": 18, "type": "float32", "access": "R"},
    {"name": "AI 6 scaled value", "group": "AI", "area": "input", "address": 20, "type": "float32", "access": "R"},
    {"name": "AI 7 scaled value", "group": "AI", "area": "input", "address": 22, "type": "float32", "access": "R"},
    {"name": "AI 0 minimum raw value", "group": "AI", "area": "input", "address": 24, "type": "uint16", "access": "R"},
    {"name": "AI 1 minimum raw value", "group": "AI", "area": "input", "address": 25, "type": "uint16", "access": "R"},
    {"name": "AI 2 minimum raw value", "group": "AI", "area": "input", "address": 26, "type": "uint16", "access": "R"},
    {"name": "AI 3 minimum raw value", "group": "AI", "area": "input", "address": 27, "type": "uint16", "access": "R"},
    {"name": "AI 4 minimum raw value", "group": "AI", "area": "input", "address": 28, "type": "uint16", "access": "R"},
    {"name": "AI 5 minimum raw value", "group": "AI", "area": "input", "address": 29, "type": "uint16", "access": "R"},
    {"name": "AI 6 minimum raw value", "group": "AI", "area": "input", "address": 30, "type": "uint16", "access": "R"},
    {"name": "AI 7 minimum raw value", "group": "AI", "area": "input", "address": 31, "type": "uint16", "access": "R"},
    {"name": "AI 0 maximum raw value", "group": "AI", "area": "input", "address": 32, "type": "uint16", "access": "R"},
    {"name": "AI 1 maximum raw value", "group": "AI", "area": "input", "address": 33, "type": "uint16", "access": "R"},
    {"name": "AI 2 maximum raw value", "group": "AI", "area": "input", "address": 34, "type": "uint16", "access": "R"},
    {"name": "AI 3 maximum raw value", "group": "AI", "area": "input", "address": 35, "type": "uint16", "access": "R"},
    {"name": "AI 4 maximum raw value", "group": "AI", "area": "input", "address": 36, "type": "uint16", "access": "R"},
    {"name": "AI 5 maximum raw value", "group": "AI", "area": "input", "address": 37, "type": "uint16", "access": "R"},
    {"name": "AI 6 maximum raw value", "group": "AI", "area": "input", "address": 38, "type": "uint16", "access": "R"},
    {"name": "AI 7 maximum raw value", "group": "AI", "area": "input", "address": 39, "type": "uint16", "access": "R"},
    {"name": "AI 0 minimum scaled value", "group": "AI", "area": "input", "address": 109, "type": "float32", "access": "R"},
    {"name": "AI 1 minimum scaled value", "group": "AI", "area": "input", "address": 111, "type": "float32", "access": "R"},
    {"name": "AI 2 minimum scaled value", "group": "AI", "area": "input", "address": 113, "type": "float32", "access": "R"},
    {"name": "AI 3 minimum scaled value", "group": "AI", "area": "input", "address": 115, "type": "float32", "access": "R"},
    {"name": "AI 4 minimum scaled value", "group": "AI", "area": "input", "address": 117, "type": "float32", "access": "R"},
    {"name": "AI 5 minimum scaled value", "group": "AI", "area": "input", "address": 119, "type": "float32", "access": "R"},
    {"name": "AI 6 minimum scaled value", "group": "AI", "area": "input", "address": 121, "type": "float32", "access": "R"},
    {"name": "AI 7 minimum scaled value", "group": "AI", "area": "input", "address": 123, "type": "float32", "access": "R"},
    {"name": "AI 0 maximum scaled value", "group": "AI", "area": "input", "address": 125, "type": "float32", "access": "R"},
    {"name": "AI 1 maximum scaled value", "group": "AI", "area": "input", "address": 127, "type": "float32", "access": "R"},
    {"name": "AI 2 maximum scaled value", "group": "AI", "area": "input", "address": 129, "type": "float32", "access": "R"},
    {"name": "AI 3 maximum scaled value", "group": "AI", "area": "input", "address": 131, "type": "float32", "access": "R"},
    {"name": "AI 4 maximum scaled value", "group": "AI", "area": "input", "address": 133, "type": "float32", "access": "R"},
    {"name": "AI 5 maximum scaled value", "group": "AI", "area": "input", "address": 135, "type": "float32", "access": "R"},
    {"name": "AI 6 maximum scaled value", "group": "AI", "area": "input", "address": 137, "type": "float32", "access": "R"},
    {"name": "AI 7 maximum scaled value", "group": "AI", "area": "input", "address": 139, "type": "float32", "access": "R"},
    {"name": "AI 0 status", "group": "AI", "area": "input", "address": 60, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 1 status", "group": "AI", "area": "input", "address": 61, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 2 status", "group": "AI", "area": "input", "address": 62, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 3 status", "group": "AI", "area": "input", "address": 63, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 4 status", "group": "AI", "area": "input", "address": 64, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 5 status", "group": "AI", "area": "input", "address": 65, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 6 status", "group": "AI", "area": "input", "address": 66, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 7 status", "group": "AI", "area": "input", "address": 67, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Burnout", "2": "Over range", "3": "Under range"}},
    {"name": "AI 0 mode", "group": "AI setup", "area": "holding", "address": 24, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 1 mode", "group": "AI setup", "area": "holding", "address": 25, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 2 mode", "group": "AI setup", "area": "holding", "address": 26, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 3 mode", "group": "AI setup", "area": "holding", "address": 27, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 4 mode", "group": "AI setup", "area": "holding", "address": 28, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 5 mode", "group": "AI setup", "area": "holding", "address": 29, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 6 mode", "group": "AI setup", "area": "holding", "address": 30, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 7 mode", "group": "AI setup", "area": "holding", "address": 31, "type": "uint16", "access": "RW", "enum": {"0": "0-10 V", "1": "4-20 mA", "2": "0-20 mA", "4": "4-20 mA with burnout detection"}},
    {"name": "AI 0 burnout value", "group": "AI setup", "area": "holding", "address": 40, "type": "float32", "access": "RW"},
    {"name": "AI 1 burnout value", "group": "AI setup", "area": "holding", "address": 42, "type": "float32", "access": "RW"},
    {"name": "AI 2 burnout value", "group": "AI setup", "area": "holding", "address": 44, "type": "float32", "access": "RW"},
    {"name": "AI 3 burnout value", "group": "AI setup", "area": "holding", "address": 46, "type": "float32", "access": "RW"},
    {"name": "AI 4 burnout value", "group": "AI setup", "area": "holding", "address": 48, "type": "float32", "access": "RW"},
    {"name": "AI 5 burnout value", "group": "AI setup", "area": "holding", "address": 50, "type": "float32", "access": "RW"},
    {"name": "AI 6 burnout value", "group": "AI setup", "area": "holding", "address": 52, "type": "float32", "access": "RW"},
    {"name": "AI 7 burnout value", "group": "AI setup", "area": "holding", "address": 54, "type": "float32", "access": "RW"},
    {"name": "AI 0 reset minimum", "group": "AI", "area": "coil", "address": 4145, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 1 reset minimum", "group": "AI", "area": "coil", "address": 4146, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 2 reset minimum", "group": "AI", "area": "coil", "address": 4147, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 3 reset minimum", "group": "AI", "area": "coil", "address": 4148, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 4 reset minimum", "group": "AI", "area": "coil", "address": 4149, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 5 reset minimum", "group": "AI", "area": "coil", "address": 4150, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 6 reset minimum", "group": "AI", "area": "coil", "address": 4151, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 7 reset minimum", "group": "AI", "area": "coil", "address": 4152, "type": "bool", "access": "RW", "description": "Write 1 to reset the minimum values"},
    {"name": "AI 0 reset maximum", "group": "AI", "area": "coil", "address": 4153, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 1 reset maximum", "group": "AI", "area": "coil", "address": 4154, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 2 reset maximum", "group": "AI", "area": "coil", "address": 4155, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 3 reset maximum", "group": "AI", "area": "coil", "address": 4156, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 4 reset maximum", "group": "AI", "area": "coil", "address": 4157, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 5 reset maximum", "group": "AI", "area": "coil", "address": 4158, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 6 reset maximum", "group": "AI", "area": "coil", "address": 4159, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "AI 7 reset maximum", "group": "AI", "area": "coil", "address": 4160, "type": "bool", "access": "RW", "description": "Write 1 to reset the maximum values"},
    {"name": "Model name", "group": "System", "area": "input", "address": 5000, "type": "string", "length": 10, "access": "R"},
    {"name": "Device up time", "group": "System", "area": "input", "address": 5020, "type": "uint32", "unit": "s", "access": "R"},
    {"name": "LAN MAC address bytes 1-2", "group": "System", "area": "input", "address": 5024, "type": "uint16", "access": "R", "description": "MAC address, two bytes per register, first byte high"},
    {"name": "LAN MAC address bytes 3-4", "group": "System", "area": "input", "address": 5025, "type": "uint16", "access": "R"},
    {"name": "LAN MAC address bytes 5-6", "group": "System", "area": "input", "address": 5026, "type": "uint16", "access": "R"},
    {"name": "LAN IP address", "group": "System", "area": "input", "address": 5027, "type": "uint32", "access": "R", "description": "One byte per octet, first octet in the high byte"},
    {"name": "Firmware version major", "group": "System", "area": "input", "address": 5029, "type": "uint16", "bit": 8, "bits": 8, "access": "R", "role": "firmware"},
    {"name": "Firmware version minor", "group": "System", "area": "input", "address": 5029, "type": "uint16", "bit": 0, "bits": 8, "access": "R", "role": "firmware"},
    {"name": "Firmware version patch", "group": "System", "area": "input", "address": 5030, "type": "uint16", "bit": 8, "bits": 8, "access": "R", "role": "firmware"},
    {"name": "Firmware build date", "group": "System", "area": "input", "address": 5031, "type": "uint32", "access": "R", "description": "e.g. Build16051718 reads as 16051718"},
    {"name": "Device name", "group": "System", "area": "input", "address": 5040, "type": "string", "length": 30, "access": "R"}
  ]
}
