{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Advantech", "model": "ADAM-4015 / ADAM-4015T", "models": ["ADAM-4015", "ADAM-4015T"], "vendor_website": "advantech.com", "description": "6-channel RTD input module (ADAM-4015T: thermistor inputs), RS485 Modbus RTU", "revision": 2, "revised": "2026-10-17", "source": "Advantech, \"ADAM-4000 Data Acquisition Modules User's Manual\", Edition 10.7, Appendix G (I/O Modbus mapping table)", "sources": [{"title": "ADAM-4000 Data Acquisition Modules User's Manual", "version": "Edition 10.7", "url": "https://www.kolbinger.at/DAQM/manuals/ADAM-4000%20series%20User%20Manual.pdf", "note": "Appendix G, table 1; type codes from chapters 5 and 6"}], "notes": [ "Addresses are the Modicon numbers of the manual (00001 = coil 1, 40001 = holding register 1).", "The module ships with the ADAM ASCII protocol; Appendix H of the manual switches it to Modbus RTU.", "Channel values are raw 16-bit values of the range chosen by each channel's type code; the manual gives the conversion for the ASCII protocol only." ], "protocol": "rtu", "unit_id": 1, "baudrate": 9600, "parity": "N", "byte_order": "big", "word_order": "big", "address_base": 1, "enums": { "type_code": {"0x20": "Pt100 IEC -50-150 °C", "0x21": "Pt100 IEC 0-100 °C", "0x22": "Pt100 IEC 0-200 °C", "0x23": "Pt100 IEC 0-400 °C", "0x24": "Pt100 IEC -200-200 °C", "0x25": "Pt100 JIS -50-150 °C", "0x26": "Pt100 JIS 0-100 °C", "0x27": "Pt100 JIS 0-200 °C", "0x28": "Pt100 JIS 0-400 °C", "0x29": "Pt100 JIS -200-200 °C", "0x2A": "Pt1000 -40-160 °C", "0x2B": "Balco 500 -30-120 °C", "0x2C": "Ni604 -80-100 °C", "0x2D": "Ni604 0-100 °C", "0x30": "Thermistor 3K 0-100 °C", "0x31": "Thermistor 10K 0-100 °C", "0x33": "Ni508 -50-200 °C"} }, "x_status": "official", "registers": [ {"name": "Ch0 burn-out", "group": "Inputs", "area": "coil", "address": 201, "type": "bool", "access": "R", "enum": {"1": "Burn-out"}}, {"name": "Ch1 burn-out", "group": "Inputs", "area": "coil", "address": 202, "type": "bool", "access": "R"}, {"name": "Ch2 burn-out", "group": "Inputs", "area": "coil", "address": 203, "type": "bool", "access": "R"}, {"name": "Ch3 burn-out", "group": "Inputs", "area": "coil", "address": 204, "type": "bool", "access": "R"}, {"name": "Ch4 burn-out", "group": "Inputs", "area": "coil", "address": 205, "type": "bool", "access": "R"}, {"name": "Ch5 burn-out", "group": "Inputs", "area": "coil", "address": 206, "type": "bool", "access": "R"}, {"name": "AI0", "group": "Inputs", "area": "holding", "address": 1, "type": "int16", "access": "R", "description": "Raw value of the range set by the type code"}, {"name": "AI1", "group": "Inputs", "area": "holding", "address": 2, "type": "int16", "access": "R"}, {"name": "AI2", "group": "Inputs", "area": "holding", "address": 3, "type": "int16", "access": "R"}, {"name": "AI3", "group": "Inputs", "area": "holding", "address": 4, "type": "int16", "access": "R"}, {"name": "AI4", "group": "Inputs", "area": "holding", "address": 5, "type": "int16", "access": "R"}, {"name": "AI5", "group": "Inputs", "area": "holding", "address": 6, "type": "int16", "access": "R"}, {"name": "Ch0 type code", "group": "Settings", "area": "holding", "address": 201, "type": "uint16", "access": "RW", "enum": "type_code"}, {"name": "Ch1 type code", "group": "Settings", "area": "holding", "address": 202, "type": "uint16", "access": "RW", "enum": "type_code"}, {"name": "Ch2 type code", "group": "Settings", "area": "holding", "address": 203, "type": "uint16", "access": "RW", "enum": "type_code"}, {"name": "Ch3 type code", "group": "Settings", "area": "holding", "address": 204, "type": "uint16", "access": "RW", "enum": "type_code"}, {"name": "Ch4 type code", "group": "Settings", "area": "holding", "address": 205, "type": "uint16", "access": "RW", "enum": "type_code"}, {"name": "Ch5 type code", "group": "Settings", "area": "holding", "address": 206, "type": "uint16", "access": "RW", "enum": "type_code"}, {"name": "Module name 1", "group": "Identity", "area": "holding", "address": 211, "type": "uint16", "access": "R", "description": "The manual's table repeats another module's value here"}, {"name": "Module name 2", "group": "Identity", "area": "holding", "address": 212, "type": "uint16", "access": "R"}, {"name": "Firmware version 1", "group": "Identity", "area": "holding", "address": 213, "type": "uint16", "access": "R"}, {"name": "Firmware version 2", "group": "Identity", "area": "holding", "address": 214, "type": "uint16", "access": "R"}, {"name": "Ch0 enabled", "group": "Settings", "area": "holding", "address": 221, "type": "bool", "bit": 0, "access": "RW"}, {"name": "Ch1 enabled", "group": "Settings", "area": "holding", "address": 221, "type": "bool", "bit": 1, "access": "RW"}, {"name": "Ch2 enabled", "group": "Settings", "area": "holding", "address": 221, "type": "bool", "bit": 2, "access": "RW"}, {"name": "Ch3 enabled", "group": "Settings", "area": "holding", "address": 221, "type": "bool", "bit": 3, "access": "RW"}, {"name": "Ch4 enabled", "group": "Settings", "area": "holding", "address": 221, "type": "bool", "bit": 4, "access": "RW"}, {"name": "Ch5 enabled", "group": "Settings", "area": "holding", "address": 221, "type": "bool", "bit": 5, "access": "RW"} ] }