{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Advantech",
  "model": "ADAM-4080",
  "models": ["ADAM-4080"],
  "vendor_website": "advantech.com",
  "description": "2-channel counter/frequency input + 2 DO module. Counter values as u32 at FC03 addr 0-3. Counter/frequency mode selectable per addr 200. DO and counter control via FC01 coils.",
  "revision": 2,
  "source": "Omni Console device library (OmniCoreST), modbus-library/advantech-adam-4080-counter.toml; Source: advantech-adam-4000-modbus.pdf (Appendix G, Module 16). Not verified against the manufacturer's documentation",
  "notes": [
    "Advantech ADAM-4080.",
    "Converted automatically from the Omni Console device library (OmniCoreST).",
    "Not verified against the manufacturer's documentation.",
    "Corrections are welcome (CONTRIBUTING.md). Change x_status once this table has been checked against the manual.",
    "| Advantech ADAM-4080 — 2-Channel Counter/Frequency Module",
    "|",
    "| Source: advantech-adam-4000-modbus.pdf (Appendix G, Module 16)",
    "| - 2-channel counter/frequency input + 2 digital outputs.",
    "| - Modbus RTU, FC01 for coil control; FC03 for counter values and configuration.",
    "| - FC01 00017 (coil addr 16): DO0 / Counter0 Alarm Status (R/W).",
    "| - FC01 00018 (coil addr 17): DO1 / Counter1 Alarm Status (R/W).",
    "| - FC01 00033 (coil addr 32): Counter0 Start/Stop (R/W, 1=start, 0=stop).",
    "| - FC01 00034 (coil addr 33): Counter0 Clear (W, 1=clear).",
    "| - FC01 00035 (coil addr 34): Counter0 Overflow (R).",
    "| - FC01 00037 (coil addr 36): Counter1 Start/Stop (R/W).",
    "| - FC01 00038 (coil addr 37): Counter1 Clear (W).",
    "| - FC01 00039 (coil addr 38): Counter1 Overflow (R).",
    "| - FC03 40001-40002 (addr 0-1): Counter 0 Value (u32, 2 registers)."
  ],
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "unofficial",
  "x_origin": "omniconsole",
  "registers": [
    {"name": "Counter 0 value", "area": "holding", "address": 0, "type": "uint32", "access": "R"},
    {"name": "Counter 1 value", "area": "holding", "address": 2, "type": "uint32", "access": "R"},
    {"name": "Counter mode", "area": "holding", "address": 200, "type": "uint16", "access": "R"},
    {"name": "Signal input mode", "area": "holding", "address": 201, "type": "uint16", "access": "R"},
    {"name": "Gate mode", "area": "holding", "address": 202, "type": "uint16", "access": "R"},
    {"name": "Gate time", "area": "holding", "address": 203, "type": "uint16", "access": "R"},
    {"name": "Counter 0 alarm output enable", "area": "holding", "address": 204, "type": "uint16", "access": "R"},
    {"name": "Counter 1 alarm output enable", "area": "holding", "address": 205, "type": "uint16", "access": "R"},
    {"name": "Module name 1", "area": "holding", "address": 210, "type": "uint16", "access": "R"},
    {"name": "Firmware version 1", "area": "holding", "address": 212, "type": "uint16", "access": "R"}
  ]
}
