{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Advantech", "model": "ADAM-6024", "models": ["ADAM-6024"], "vendor_website": "advantech.com", "description": "Universal I/O module: 6 AI, 2 AO, 2 DI, 2 DO, 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-6024"}], "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": "DI0", "group": "Digital inputs", "area": "coil", "address": 1, "type": "bool", "access": "R"}, {"name": "DI1", "group": "Digital inputs", "area": "coil", "address": 2, "type": "bool", "access": "R"}, {"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": "AI0", "group": "Analog inputs", "area": "holding", "address": 1, "type": "uint16", "access": "R"}, {"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": "AO0", "group": "Analog outputs", "area": "holding", "address": 11, "type": "uint16", "access": "RW"}, {"name": "AO1", "group": "Analog outputs", "area": "holding", "address": 12, "type": "uint16", "access": "RW"}, {"name": "AI0 status", "group": "Status", "area": "holding", "address": 21, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Over high", "2": "Over low"}}, {"name": "AI1 status", "group": "Status", "area": "holding", "address": 22, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Over high", "2": "Over low"}}, {"name": "AI2 status", "group": "Status", "area": "holding", "address": 23, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Over high", "2": "Over low"}}, {"name": "AI3 status", "group": "Status", "area": "holding", "address": 24, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Over high", "2": "Over low"}}, {"name": "AI4 status", "group": "Status", "area": "holding", "address": 25, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Over high", "2": "Over low"}}, {"name": "AI5 status", "group": "Status", "area": "holding", "address": 26, "type": "uint16", "access": "R", "enum": {"0": "Normal", "1": "Over high", "2": "Over low"}} ] }