{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Advantech",
  "model": "ADAM-6018",
  "models": ["ADAM-6018"],
  "vendor_website": "advantech.com",
  "description": "8-channel isolated thermocouple input module with 8 digital outputs, Modbus TCP",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Advantech, \"ADAM-6000 Series User Manual\", Edition 9, Appendix B.2 (I/O Modbus mapping tables)",
  "sources": [{"title": "ADAM-6000 Series User Manual", "version": "Edition 9", "url": "https://support.elmark.com.pl/advantech/ia/CDROMS/ADAM-4k6k%20Series/Manual/ADAM%206000/ADAM-6000_User_Manaul_Ed_9.pdf", "note": "Appendix B.2, ADAM-6018"}],
  "notes": [
    "Addresses are the Modicon numbers of the manual (00001 = coil 1, 40001 = holding register 1).",
    "32-bit counters and pulse settings are low word first (the manual: counter = (40002) × 65536 + (40001)).",
    "Some registers (floats, GCL, diagnostics) need the CE or D version of the module."
  ],
  "protocol": "tcp",
  "unit_id": 1,
  "port": 502,
  "byte_order": "big",
  "word_order": "little",
  "address_base": 1,
  "x_status": "official",
  "registers": [
    {"name": "DO0", "group": "Digital outputs", "area": "coil", "address": 17, "type": "bool", "access": "RW"},
    {"name": "DO1", "group": "Digital outputs", "area": "coil", "address": 18, "type": "bool", "access": "RW"},
    {"name": "DO2", "group": "Digital outputs", "area": "coil", "address": 19, "type": "bool", "access": "RW"},
    {"name": "DO3", "group": "Digital outputs", "area": "coil", "address": 20, "type": "bool", "access": "RW"},
    {"name": "DO4", "group": "Digital outputs", "area": "coil", "address": 21, "type": "bool", "access": "RW"},
    {"name": "DO5", "group": "Digital outputs", "area": "coil", "address": 22, "type": "bool", "access": "RW"},
    {"name": "DO6", "group": "Digital outputs", "area": "coil", "address": 23, "type": "bool", "access": "RW"},
    {"name": "DO7", "group": "Digital outputs", "area": "coil", "address": 24, "type": "bool", "access": "RW"},
    {"name": "Reset max AI0", "group": "Commands", "area": "coil", "address": 101, "type": "bool", "access": "RW"},
    {"name": "Reset max AI1", "group": "Commands", "area": "coil", "address": 102, "type": "bool", "access": "RW"},
    {"name": "Reset max AI2", "group": "Commands", "area": "coil", "address": 103, "type": "bool", "access": "RW"},
    {"name": "Reset max AI3", "group": "Commands", "area": "coil", "address": 104, "type": "bool", "access": "RW"},
    {"name": "Reset max AI4", "group": "Commands", "area": "coil", "address": 105, "type": "bool", "access": "RW"},
    {"name": "Reset max AI5", "group": "Commands", "area": "coil", "address": 106, "type": "bool", "access": "RW"},
    {"name": "Reset max AI6", "group": "Commands", "area": "coil", "address": 107, "type": "bool", "access": "RW"},
    {"name": "Reset max AI7", "group": "Commands", "area": "coil", "address": 108, "type": "bool", "access": "RW"},
    {"name": "Reset max average", "group": "Commands", "area": "coil", "address": 109, "type": "bool", "access": "RW"},
    {"name": "Reset min AI0", "group": "Commands", "area": "coil", "address": 111, "type": "bool", "access": "RW"},
    {"name": "Reset min AI1", "group": "Commands", "area": "coil", "address": 112, "type": "bool", "access": "RW"},
    {"name": "Reset min AI2", "group": "Commands", "area": "coil", "address": 113, "type": "bool", "access": "RW"},
    {"name": "Reset min AI3", "group": "Commands", "area": "coil", "address": 114, "type": "bool", "access": "RW"},
    {"name": "Reset min AI4", "group": "Commands", "area": "coil", "address": 115, "type": "bool", "access": "RW"},
    {"name": "Reset min AI5", "group": "Commands", "area": "coil", "address": 116, "type": "bool", "access": "RW"},
    {"name": "Reset min AI6", "group": "Commands", "area": "coil", "address": 117, "type": "bool", "access": "RW"},
    {"name": "Reset min AI7", "group": "Commands", "area": "coil", "address": 118, "type": "bool", "access": "RW"},
    {"name": "Reset min average", "group": "Commands", "area": "coil", "address": 119, "type": "bool", "access": "RW"},
    {"name": "AI0 burn-out", "group": "Alarms", "area": "coil", "address": 121, "type": "bool", "access": "R"},
    {"name": "AI1 burn-out", "group": "Alarms", "area": "coil", "address": 122, "type": "bool", "access": "R"},
    {"name": "AI2 burn-out", "group": "Alarms", "area": "coil", "address": 123, "type": "bool", "access": "R"},
    {"name": "AI3 burn-out", "group": "Alarms", "area": "coil", "address": 124, "type": "bool", "access": "R"},
    {"name": "AI4 burn-out", "group": "Alarms", "area": "coil", "address": 125, "type": "bool", "access": "R"},
    {"name": "AI5 burn-out", "group": "Alarms", "area": "coil", "address": 126, "type": "bool", "access": "R"},
    {"name": "AI6 burn-out", "group": "Alarms", "area": "coil", "address": 127, "type": "bool", "access": "R"},
    {"name": "AI7 burn-out", "group": "Alarms", "area": "coil", "address": 128, "type": "bool", "access": "R"},
    {"name": "AI0 high alarm", "group": "Alarms", "area": "coil", "address": 131, "type": "bool", "access": "R"},
    {"name": "AI1 high alarm", "group": "Alarms", "area": "coil", "address": 132, "type": "bool", "access": "R"},
    {"name": "AI2 high alarm", "group": "Alarms", "area": "coil", "address": 133, "type": "bool", "access": "R"},
    {"name": "AI3 high alarm", "group": "Alarms", "area": "coil", "address": 134, "type": "bool", "access": "R"},
    {"name": "AI4 high alarm", "group": "Alarms", "area": "coil", "address": 135, "type": "bool", "access": "R"},
    {"name": "AI5 high alarm", "group": "Alarms", "area": "coil", "address": 136, "type": "bool", "access": "R"},
    {"name": "AI6 high alarm", "group": "Alarms", "area": "coil", "address": 137, "type": "bool", "access": "R"},
    {"name": "AI7 high alarm", "group": "Alarms", "area": "coil", "address": 138, "type": "bool", "access": "R"},
    {"name": "Average high alarm", "group": "Alarms", "area": "coil", "address": 139, "type": "bool", "access": "R"},
    {"name": "AI0 low alarm", "group": "Alarms", "area": "coil", "address": 141, "type": "bool", "access": "R"},
    {"name": "AI1 low alarm", "group": "Alarms", "area": "coil", "address": 142, "type": "bool", "access": "R"},
    {"name": "AI2 low alarm", "group": "Alarms", "area": "coil", "address": 143, "type": "bool", "access": "R"},
    {"name": "AI3 low alarm", "group": "Alarms", "area": "coil", "address": 144, "type": "bool", "access": "R"},
    {"name": "AI4 low alarm", "group": "Alarms", "area": "coil", "address": 145, "type": "bool", "access": "R"},
    {"name": "AI5 low alarm", "group": "Alarms", "area": "coil", "address": 146, "type": "bool", "access": "R"},
    {"name": "AI6 low alarm", "group": "Alarms", "area": "coil", "address": 147, "type": "bool", "access": "R"},
    {"name": "AI7 low alarm", "group": "Alarms", "area": "coil", "address": 148, "type": "bool", "access": "R"},
    {"name": "Average low alarm", "group": "Alarms", "area": "coil", "address": 149, "type": "bool", "access": "R"},
    {"name": "AI0", "group": "Analog inputs", "area": "holding", "address": 1, "type": "uint16", "access": "R", "description": "Raw value of the thermocouple range"},
    {"name": "AI1", "group": "Analog inputs", "area": "holding", "address": 2, "type": "uint16", "access": "R"},
    {"name": "AI2", "group": "Analog inputs", "area": "holding", "address": 3, "type": "uint16", "access": "R"},
    {"name": "AI3", "group": "Analog inputs", "area": "holding", "address": 4, "type": "uint16", "access": "R"},
    {"name": "AI4", "group": "Analog inputs", "area": "holding", "address": 5, "type": "uint16", "access": "R"},
    {"name": "AI5", "group": "Analog inputs", "area": "holding", "address": 6, "type": "uint16", "access": "R"},
    {"name": "AI6", "group": "Analog inputs", "area": "holding", "address": 7, "type": "uint16", "access": "R"},
    {"name": "AI7", "group": "Analog inputs", "area": "holding", "address": 8, "type": "uint16", "access": "R"},
    {"name": "AI average", "group": "Analog inputs", "area": "holding", "address": 9, "type": "uint16", "access": "R"},
    {"name": "Max AI0", "group": "Analog inputs", "area": "holding", "address": 11, "type": "uint16", "access": "R"},
    {"name": "Max AI1", "group": "Analog inputs", "area": "holding", "address": 12, "type": "uint16", "access": "R"},
    {"name": "Max AI2", "group": "Analog inputs", "area": "holding", "address": 13, "type": "uint16", "access": "R"},
    {"name": "Max AI3", "group": "Analog inputs", "area": "holding", "address": 14, "type": "uint16", "access": "R"},
    {"name": "Max AI4", "group": "Analog inputs", "area": "holding", "address": 15, "type": "uint16", "access": "R"},
    {"name": "Max AI5", "group": "Analog inputs", "area": "holding", "address": 16, "type": "uint16", "access": "R"},
    {"name": "Max AI6", "group": "Analog inputs", "area": "holding", "address": 17, "type": "uint16", "access": "R"},
    {"name": "Max AI7", "group": "Analog inputs", "area": "holding", "address": 18, "type": "uint16", "access": "R"},
    {"name": "Max AI average", "group": "Analog inputs", "area": "holding", "address": 19, "type": "uint16", "access": "R"},
    {"name": "Min AI0", "group": "Analog inputs", "area": "holding", "address": 21, "type": "uint16", "access": "R"},
    {"name": "Min AI1", "group": "Analog inputs", "area": "holding", "address": 22, "type": "uint16", "access": "R"},
    {"name": "Min AI2", "group": "Analog inputs", "area": "holding", "address": 23, "type": "uint16", "access": "R"},
    {"name": "Min AI3", "group": "Analog inputs", "area": "holding", "address": 24, "type": "uint16", "access": "R"},
    {"name": "Min AI4", "group": "Analog inputs", "area": "holding", "address": 25, "type": "uint16", "access": "R"},
    {"name": "Min AI5", "group": "Analog inputs", "area": "holding", "address": 26, "type": "uint16", "access": "R"},
    {"name": "Min AI6", "group": "Analog inputs", "area": "holding", "address": 27, "type": "uint16", "access": "R"},
    {"name": "Min AI7", "group": "Analog inputs", "area": "holding", "address": 28, "type": "uint16", "access": "R"},
    {"name": "Min AI average", "group": "Analog inputs", "area": "holding", "address": 29, "type": "uint16", "access": "R"},
    {"name": "GCL flags", "group": "GCL", "area": "holding", "address": 305, "type": "uint16", "access": "RW"}
  ]
}
