{
  "spec_version": 1,
  "slug": "icp-das-et-7044",
  "manufacturer": "ICP DAS",
  "model": "ET-7044 (and PET-7044 / ET-7244)",
  "category": "Remote I/O",
  "supplier_url": "https://www.icpdas.com/en/product/ET-7044",
  "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": 6,
      "count": 1,
      "name": "Digital output 6 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 6."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Digital output 7 value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on, for output channel 7."
    },
    {
      "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": 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": 241,
      "count": 1,
      "name": "Enable digital output 6 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 6 takes its stored power-on value after reset."
    },
    {
      "address": 242,
      "count": 1,
      "name": "Enable digital output 7 power-on value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 7 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."
    },
    {
      "address": 273,
      "count": 1,
      "name": "Enable digital output 6 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 6 takes its stored safe value when communication is lost."
    },
    {
      "address": 274,
      "count": 1,
      "name": "Enable digital output 7 safe value",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = not used (factory default), 1 = output 7 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": 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": 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."
    }
  ],
  "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 8 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 8 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": 82,
      "count": 1,
      "name": "Digital output 0 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 0 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 83,
      "count": 1,
      "name": "Digital output 1 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 1 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 84,
      "count": 1,
      "name": "Digital output 2 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 2 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 85,
      "count": 1,
      "name": "Digital output 3 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 3 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 86,
      "count": 1,
      "name": "Digital output 4 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 4 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 87,
      "count": 1,
      "name": "Digital output 5 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 5 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 88,
      "count": 1,
      "name": "Digital output 6 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 6 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "address": 89,
      "count": 1,
      "name": "Digital output 7 predefined safe status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = disabled (the output keeps its current state in the listed situations), 1 = enabled: output 7 takes the predefined safe status when the host watchdog times out or the pair-connection fails."
    },
    {
      "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 0x7044 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-7044/PET-7044/ET-7244/PET-7244\", Modbus Register Table pages 80-82. 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 8 32-bit DI counters (input registers 30016-30031) and their 8 32-bit presets (holding registers 40050-40065) 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."
}
