{
  "spec_version": 1,
  "slug": "moxa-iologik-e1240",
  "manufacturer": "Moxa",
  "model": "ioLogik E1240",
  "category": "Remote I/O",
  "supplier_url": "https://www.moxa.com/en/products/industrial-edge-connectivity/controllers-and-ios/universal-controllers-and-i-os/iologik-e1200-series/iologik-e1240",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [
    {
      "address": 4145,
      "count": 1,
      "name": "Analog input 0 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4146,
      "count": 1,
      "name": "Analog input 1 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4147,
      "count": 1,
      "name": "Analog input 2 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4148,
      "count": 1,
      "name": "Analog input 3 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4149,
      "count": 1,
      "name": "Analog input 4 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4150,
      "count": 1,
      "name": "Analog input 5 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4151,
      "count": 1,
      "name": "Analog input 6 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4152,
      "count": 1,
      "name": "Analog input 7 reset minimum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the minimum value."
    },
    {
      "address": 4153,
      "count": 1,
      "name": "Analog input 0 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4154,
      "count": 1,
      "name": "Analog input 1 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4155,
      "count": 1,
      "name": "Analog input 2 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4156,
      "count": 1,
      "name": "Analog input 3 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4157,
      "count": 1,
      "name": "Analog input 4 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4158,
      "count": 1,
      "name": "Analog input 5 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4159,
      "count": 1,
      "name": "Analog input 6 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    },
    {
      "address": 4160,
      "count": 1,
      "name": "Analog input 7 reset maximum value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 1 to reset the maximum value."
    }
  ],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 0,
      "count": 1,
      "name": "Analog input 0 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 1,
      "count": 1,
      "name": "Analog input 1 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Analog input 2 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Analog input 3 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Analog input 4 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Analog input 5 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Analog input 6 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Analog input 7 raw value",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw 16-bit ADC value for the channel in its configured input mode."
    },
    {
      "address": 8,
      "count": 2,
      "name": "Analog input 0 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 10,
      "count": 2,
      "name": "Analog input 1 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 12,
      "count": 2,
      "name": "Analog input 2 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 14,
      "count": 2,
      "name": "Analog input 3 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 16,
      "count": 2,
      "name": "Analog input 4 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 18,
      "count": 2,
      "name": "Analog input 5 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 20,
      "count": 2,
      "name": "Analog input 6 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 22,
      "count": 2,
      "name": "Analog input 7 scaled value",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Scaled value in the units configured in the point-slope (auto scaling) table."
    },
    {
      "address": 24,
      "count": 1,
      "name": "Analog input 0 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 25,
      "count": 1,
      "name": "Analog input 1 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 26,
      "count": 1,
      "name": "Analog input 2 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 27,
      "count": 1,
      "name": "Analog input 3 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 28,
      "count": 1,
      "name": "Analog input 4 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 29,
      "count": 1,
      "name": "Analog input 5 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 30,
      "count": 1,
      "name": "Analog input 6 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 31,
      "count": 1,
      "name": "Analog input 7 raw value, historical minimum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum raw value since the last reset."
    },
    {
      "address": 32,
      "count": 1,
      "name": "Analog input 0 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 33,
      "count": 1,
      "name": "Analog input 1 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 34,
      "count": 1,
      "name": "Analog input 2 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 35,
      "count": 1,
      "name": "Analog input 3 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 36,
      "count": 1,
      "name": "Analog input 4 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 37,
      "count": 1,
      "name": "Analog input 5 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 38,
      "count": 1,
      "name": "Analog input 6 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 39,
      "count": 1,
      "name": "Analog input 7 raw value, historical maximum",
      "data_type": "UInt16",
      "units": "counts",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum raw value since the last reset."
    },
    {
      "address": 60,
      "count": 1,
      "name": "Analog input 0 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 61,
      "count": 1,
      "name": "Analog input 1 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 62,
      "count": 1,
      "name": "Analog input 2 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 63,
      "count": 1,
      "name": "Analog input 3 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 64,
      "count": 1,
      "name": "Analog input 4 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 65,
      "count": 1,
      "name": "Analog input 5 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 66,
      "count": 1,
      "name": "Analog input 6 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 67,
      "count": 1,
      "name": "Analog input 7 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = burnout, 2 = over range, 3 = under range."
    },
    {
      "address": 109,
      "count": 2,
      "name": "Analog input 0 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 111,
      "count": 2,
      "name": "Analog input 1 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 113,
      "count": 2,
      "name": "Analog input 2 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 115,
      "count": 2,
      "name": "Analog input 3 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 117,
      "count": 2,
      "name": "Analog input 4 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 119,
      "count": 2,
      "name": "Analog input 5 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 121,
      "count": 2,
      "name": "Analog input 6 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 123,
      "count": 2,
      "name": "Analog input 7 scaled value, historical minimum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Minimum scaled value since the last reset."
    },
    {
      "address": 125,
      "count": 2,
      "name": "Analog input 0 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 127,
      "count": 2,
      "name": "Analog input 1 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 129,
      "count": 2,
      "name": "Analog input 2 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 131,
      "count": 2,
      "name": "Analog input 3 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 133,
      "count": 2,
      "name": "Analog input 4 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 135,
      "count": 2,
      "name": "Analog input 5 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 137,
      "count": 2,
      "name": "Analog input 6 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 139,
      "count": 2,
      "name": "Analog input 7 scaled value, historical maximum",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Maximum scaled value since the last reset."
    },
    {
      "address": 5000,
      "count": 10,
      "name": "Model name",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Model name, one ASCII character per byte (10 registers)."
    },
    {
      "address": 5020,
      "count": 2,
      "name": "Device uptime",
      "data_type": "UInt32",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Device uptime in seconds, high word first."
    },
    {
      "address": 5024,
      "count": 3,
      "name": "LAN MAC address",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "MAC address, one byte per character (3 registers, 6 bytes)."
    },
    {
      "address": 5027,
      "count": 2,
      "name": "LAN IP address",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IPv4 address, one byte per octet, first octet in the most significant byte (2 registers)."
    },
    {
      "address": 5029,
      "count": 2,
      "name": "Firmware version",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Firmware version, one ASCII character per byte (2 registers); the manual's example V1.2.3 uses one byte per version field."
    },
    {
      "address": 5031,
      "count": 2,
      "name": "Firmware build date",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Firmware build date, e.g. 16051718 for Build 16.05.17 18 (2 registers)."
    },
    {
      "address": 5040,
      "count": 30,
      "name": "Device name",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Device name, one ASCII character per byte (30 registers)."
    }
  ],
  "holding_registers": [
    {
      "address": 24,
      "count": 1,
      "name": "Analog input 0 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 25,
      "count": 1,
      "name": "Analog input 1 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 26,
      "count": 1,
      "name": "Analog input 2 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 27,
      "count": 1,
      "name": "Analog input 3 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 28,
      "count": 1,
      "name": "Analog input 4 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 29,
      "count": 1,
      "name": "Analog input 5 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 30,
      "count": 1,
      "name": "Analog input 6 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 31,
      "count": 1,
      "name": "Analog input 7 mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = 0-10 V, 1 = 4-20 mA, 2 = 0-20 mA, 4 = 4-20 mA burnout."
    },
    {
      "address": 40,
      "count": 2,
      "name": "Analog input 0 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 42,
      "count": 2,
      "name": "Analog input 1 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 44,
      "count": 2,
      "name": "Analog input 2 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 46,
      "count": 2,
      "name": "Analog input 3 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 48,
      "count": 2,
      "name": "Analog input 4 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 50,
      "count": 2,
      "name": "Analog input 5 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 52,
      "count": 2,
      "name": "Analog input 6 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    },
    {
      "address": 54,
      "count": 2,
      "name": "Analog input 7 burnout value",
      "data_type": "Float32",
      "units": "mA",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Burnout detection value in mA (0.0 < value < 4.0, 2 mA by default)."
    }
  ],
  "combined_registers": [],
  "notes": "Ethernet remote I/O with a built-in Modbus/TCP server; no gateway needed. Addresses are the manual's decimal start addresses, which are the zero-based wire addresses (the manual also prints the 1-based reference numbers). Each channel occupies one address in the start-address table, so this map lists channels separately. Source: Moxa ioLogik E1200 Series User Manual v16.2, appendix A, 'ioLogik E1240 Modbus Address and Register Map' (8 analog inputs). Raw values are 16-bit ADC counts covering the selected input mode, and the scaled values are 32-bit values carrying the point-slope engineering unit, so no scale factor is applied to either. The manual's AI channel object table (REST/SNMP) types aiValueScaled and aiBurnoutValue as REAL, which is why those rows are Float32. Unit identifier: the manual states that the Modbus/TCP ID of the ioLogik E1200 is set to 1 by default, so unit_id 1 is used."
}
