{
  "spec_version": 1,
  "slug": "icp-das-et-7050",
  "manufacturer": "ICP DAS",
  "model": "ET-7050 (and PET-7050 / ET-7250A)",
  "category": "Remote I/O",
  "supplier_url": "https://www.icpdas.com/en/product/ET-7050",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [
    {
      "address": 0,
      "count": 1,
      "name": "Digital output 0 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 0."
    },
    {
      "address": 1,
      "count": 1,
      "name": "Digital output 1 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 1."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Digital output 2 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 2."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Digital output 3 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 3."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Digital output 4 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 4."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Digital output 5 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 5."
    },
    {
      "address": 150,
      "count": 1,
      "name": "Enable/disable digital input latch function",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = latch function off (factory default), 1 = on."
    },
    {
      "address": 151,
      "count": 1,
      "name": "Enable/disable counter of digital input 0",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 0."
    },
    {
      "address": 152,
      "count": 1,
      "name": "Enable/disable counter of digital input 1",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 1."
    },
    {
      "address": 153,
      "count": 1,
      "name": "Enable/disable counter of digital input 2",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 2."
    },
    {
      "address": 154,
      "count": 1,
      "name": "Enable/disable counter of digital input 3",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 3."
    },
    {
      "address": 155,
      "count": 1,
      "name": "Enable/disable counter of digital input 4",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 4."
    },
    {
      "address": 156,
      "count": 1,
      "name": "Enable/disable counter of digital input 5",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 5."
    },
    {
      "address": 157,
      "count": 1,
      "name": "Enable/disable counter of digital input 6",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 6."
    },
    {
      "address": 158,
      "count": 1,
      "name": "Enable/disable counter of digital input 7",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 7."
    },
    {
      "address": 159,
      "count": 1,
      "name": "Enable/disable counter of digital input 8",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 8."
    },
    {
      "address": 160,
      "count": 1,
      "name": "Enable/disable counter of digital input 9",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 9."
    },
    {
      "address": 161,
      "count": 1,
      "name": "Enable/disable counter of digital input 10",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 10."
    },
    {
      "address": 162,
      "count": 1,
      "name": "Enable/disable counter of digital input 11",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = counter off (factory default), 1 = counter on for DI channel 11."
    },
    {
      "address": 235,
      "count": 1,
      "name": "Enable digital output 0 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 0 takes its stored power-on value after reset."
    },
    {
      "address": 236,
      "count": 1,
      "name": "Enable digital output 1 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 1 takes its stored power-on value after reset."
    },
    {
      "address": 237,
      "count": 1,
      "name": "Enable digital output 2 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 2 takes its stored power-on value after reset."
    },
    {
      "address": 238,
      "count": 1,
      "name": "Enable digital output 3 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 3 takes its stored power-on value after reset."
    },
    {
      "address": 239,
      "count": 1,
      "name": "Enable digital output 4 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 4 takes its stored power-on value after reset."
    },
    {
      "address": 240,
      "count": 1,
      "name": "Enable digital output 5 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 5 takes its stored power-on value after reset."
    },
    {
      "address": 267,
      "count": 1,
      "name": "Enable digital output 0 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 0 takes its stored safe value when communication is lost."
    },
    {
      "address": 268,
      "count": 1,
      "name": "Enable digital output 1 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 1 takes its stored safe value when communication is lost."
    },
    {
      "address": 269,
      "count": 1,
      "name": "Enable digital output 2 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 2 takes its stored safe value when communication is lost."
    },
    {
      "address": 270,
      "count": 1,
      "name": "Enable digital output 3 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 3 takes its stored safe value when communication is lost."
    },
    {
      "address": 271,
      "count": 1,
      "name": "Enable digital output 4 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 4 takes its stored safe value when communication is lost."
    },
    {
      "address": 272,
      "count": 1,
      "name": "Enable digital output 5 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 5 takes its stored safe value when communication is lost."
    }
  ],
  "discrete_inputs": [
    {
      "address": 0,
      "count": 1,
      "name": "Digital input 0 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 1,
      "count": 1,
      "name": "Digital input 1 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Digital input 2 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 3,
      "count": 1,
      "name": "Digital input 3 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 4,
      "count": 1,
      "name": "Digital input 4 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Digital input 5 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Digital input 6 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Digital input 7 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 8,
      "count": 1,
      "name": "Digital input 8 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 9,
      "count": 1,
      "name": "Digital input 9 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 10,
      "count": 1,
      "name": "Digital input 10 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 11,
      "count": 1,
      "name": "Digital input 11 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 32,
      "count": 1,
      "name": "Digital input 0 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 0."
    },
    {
      "address": 33,
      "count": 1,
      "name": "Digital input 1 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 1."
    },
    {
      "address": 34,
      "count": 1,
      "name": "Digital input 2 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 2."
    },
    {
      "address": 35,
      "count": 1,
      "name": "Digital input 3 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 3."
    },
    {
      "address": 36,
      "count": 1,
      "name": "Digital input 4 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 4."
    },
    {
      "address": 37,
      "count": 1,
      "name": "Digital input 5 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 5."
    },
    {
      "address": 38,
      "count": 1,
      "name": "Digital input 6 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 6."
    },
    {
      "address": 39,
      "count": 1,
      "name": "Digital input 7 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 7."
    },
    {
      "address": 40,
      "count": 1,
      "name": "Digital input 8 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 8."
    },
    {
      "address": 41,
      "count": 1,
      "name": "Digital input 9 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 9."
    },
    {
      "address": 42,
      "count": 1,
      "name": "Digital input 10 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 10."
    },
    {
      "address": 43,
      "count": 1,
      "name": "Digital input 11 high latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched high, for DI channel 11."
    },
    {
      "address": 64,
      "count": 1,
      "name": "Digital input 0 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 0."
    },
    {
      "address": 65,
      "count": 1,
      "name": "Digital input 1 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 1."
    },
    {
      "address": 66,
      "count": 1,
      "name": "Digital input 2 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 2."
    },
    {
      "address": 67,
      "count": 1,
      "name": "Digital input 3 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 3."
    },
    {
      "address": 68,
      "count": 1,
      "name": "Digital input 4 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 4."
    },
    {
      "address": 69,
      "count": 1,
      "name": "Digital input 5 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 5."
    },
    {
      "address": 70,
      "count": 1,
      "name": "Digital input 6 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 6."
    },
    {
      "address": 71,
      "count": 1,
      "name": "Digital input 7 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 7."
    },
    {
      "address": 72,
      "count": 1,
      "name": "Digital input 8 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 8."
    },
    {
      "address": 73,
      "count": 1,
      "name": "Digital input 9 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 9."
    },
    {
      "address": 74,
      "count": 1,
      "name": "Digital input 10 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 10."
    },
    {
      "address": 75,
      "count": 1,
      "name": "Digital input 11 low latch status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, 1 = latched low, for DI channel 11."
    }
  ],
  "input_registers": [
    {
      "address": 100,
      "count": 1,
      "name": "Number of digital input channels",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Reports 12 for this model."
    },
    {
      "address": 110,
      "count": 1,
      "name": "Number of digital output channels",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Reports 6 for this model."
    },
    {
      "address": 150,
      "count": 1,
      "name": "OS image version",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0x0123 means version 1.2.3."
    },
    {
      "address": 151,
      "count": 1,
      "name": "Firmware version",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0x0123 means version 1.2.3."
    },
    {
      "address": 153,
      "count": 1,
      "name": "I/O version",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0x0123 means version 1.2.3."
    },
    {
      "address": 160,
      "count": 1,
      "name": "Pair-connection state, register 1",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = normal, negative = failed."
    },
    {
      "address": 161,
      "count": 1,
      "name": "Pair-connection state, register 2",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Second register of the pair-connection state block."
    }
  ],
  "holding_registers": [
    {
      "address": 255,
      "count": 1,
      "name": "Module reset status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "1 = power-on, 2 = module watchdog, 3 = software reset command."
    },
    {
      "address": 256,
      "count": 1,
      "name": "Boot count",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Number of times the module has booted; 1-32767."
    },
    {
      "address": 257,
      "count": 1,
      "name": "Host watchdog timeout",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "Host watchdog timeout in 0.1 s units; 0 disables the host watchdog, 1 to 65535 enable it."
    },
    {
      "address": 258,
      "count": 1,
      "name": "Host watchdog event count",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Number of watchdog events since the last module reset."
    },
    {
      "address": 260,
      "count": 1,
      "name": "Module name",
      "data_type": "Hex",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Reports 0x7050 for this model."
    },
    {
      "address": 271,
      "count": 1,
      "name": "Module identification (Modbus NetID)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Modbus unit identifier of the module, 0-255. Factory default 1, which is the unit ID this seed uses."
    }
  ],
  "combined_registers": [],
  "notes": "Source: ICP DAS \"ET-7x00/PET-7x00 Series Register Table\", version 1.1.5, April 2025 (https://www.icpdas.com/en/download/file.php?num=4226), section \"ET-7050/PET-7050/ET-7250A/PET-7250A\", Modbus Register Table pages 86-87. Addressing: the table prints each row as a decimal 5-digit Modbus reference and as a hexadecimal offset that agree (input register 30016 = 0x0010, holding register 40271 = 0x010F), so the hexadecimal offsets are stored as zero-based wire addresses. Unit identifier 1 is the factory value of the module's Modbus NetID register (40271), which the table states as factory value 1. Deliberate omissions: coils the vendor types \"W\" only (clear historical max/min, clear DI counters, reset, reboot, save power-on/safe values, save counter presets) are not listed because the coil area in this schema carries only R or RW entries; the enable coils and the holding registers that operate them are listed. Reserved rows are omitted. The 12 32-bit DI counters (input registers 30016-30039) and their 12 32-bit presets (holding registers 40050-40073) are omitted: the register table types each as two registers but states no word order, and the user manual only says that \"each counter consists of two address values, the Low word, and the High word\", which does not settle which word the device sends first. With no 32-bit value left in this seed, no word order is claimed - the declared HighFirst is the schema default."
}
