Advantech ADAM-6017 Modbus register map
Also covers ADAM-6017-D
8-channel isolated analog input module with 2 digital outputs, Modbus TCP
- Official
- 152 registers
- Modbus TCP
- Revision 2 · 2026-10-17
- Identity: model
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus TCP
- Unit ID
- 1
- TCP port
- 502
- Byte / word order
- CDAB · bytes big-endian, words low first (word swap)
- Addresses
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 98 holding registers, 54 coils
- Groups
- 9
- Translation tables
- 1
- Revision
- 2 · 2026-10-17
- Added
- ()
- File
- maps/advantech/adam-6017.mbmap.json · 20 KB · history
- SHA-256
- 48793135045da5dcdb59e24ebe7ce8434dbf8fc144e224f5672a31dbb5403989
- Manufacturer
- advantech.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Model | Module name 1 | holding 211 | uint16 | 0x6017 = ADAM-6017 |
Sources and notes
- ADAM-6000 Series User Manual · version Edition 9 Appendix B.2, ADAM-6017
Source: Advantech, "ADAM-6000 Series User Manual", Edition 9, Appendix B.2 (I/O Modbus mapping tables)
- 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)).
- The floats are in the module's engineering units; the manual does not give their word order (this map uses the counters' low word first).
- Some registers (floats, GCL, diagnostics) need the CE or D version of the module.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| CO | 17 | bool | RW | ||||
| CO | 18 | bool | RW | ||||
| CO | 101 | bool | RW | ||||
| CO | 102 | bool | RW | ||||
| CO | 103 | bool | RW | ||||
| CO | 104 | bool | RW | ||||
| CO | 105 | bool | RW | ||||
| CO | 106 | bool | RW | ||||
| CO | 107 | bool | RW | ||||
| CO | 108 | bool | RW | ||||
| CO | 109 | bool | RW | ||||
| CO | 111 | bool | RW | ||||
| CO | 112 | bool | RW | ||||
| CO | 113 | bool | RW | ||||
| CO | 114 | bool | RW | ||||
| CO | 115 | bool | RW | ||||
| CO | 116 | bool | RW | ||||
| CO | 117 | bool | RW | ||||
| CO | 118 | bool | RW | ||||
| CO | 119 | bool | RW | ||||
| CO | 121 | bool | R | ||||
| CO | 122 | bool | R | ||||
| CO | 123 | bool | R | ||||
| CO | 124 | bool | R | ||||
| CO | 125 | bool | R | ||||
| CO | 126 | bool | R | ||||
| CO | 127 | bool | R | ||||
| CO | 128 | bool | R | ||||
| CO | 131 | bool | R | ||||
| CO | 132 | bool | R | ||||
| CO | 133 | bool | R | ||||
| CO | 134 | bool | R | ||||
| CO | 135 | bool | R | ||||
| CO | 136 | bool | R | ||||
| CO | 137 | bool | R | ||||
| CO | 138 | bool | R | ||||
| CO | 139 | bool | R | ||||
| CO | 141 | bool | R | ||||
| CO | 142 | bool | R | ||||
| CO | 143 | bool | R | ||||
| CO | 144 | bool | R | ||||
| CO | 145 | bool | R | ||||
| CO | 146 | bool | R | ||||
| CO | 147 | bool | R | ||||
| CO | 148 | bool | R | ||||
| CO | 149 | bool | R | ||||
| HR | 1 | uint16 | R | Raw value of the range set by the type code | |||
| HR | 2 | uint16 | R | ||||
| HR | 3 | uint16 | R | ||||
| HR | 4 | uint16 | R | ||||
| HR | 5 | uint16 | R | ||||
| HR | 6 | uint16 | R | ||||
| HR | 7 | uint16 | R | ||||
| HR | 8 | uint16 | R | ||||
| HR | 9 | uint16 | R | ||||
| HR | 11 | uint16 | R | ||||
| HR | 12 | uint16 | R | ||||
| HR | 13 | uint16 | R | ||||
| HR | 14 | uint16 | R | ||||
| HR | 15 | uint16 | R | ||||
| HR | 16 | uint16 | R | ||||
| HR | 17 | uint16 | R | ||||
| HR | 18 | uint16 | R | ||||
| HR | 19 | uint16 | R | ||||
| HR | 21 | uint16 | R | ||||
| HR | 22 | uint16 | R | ||||
| HR | 23 | uint16 | R | ||||
| HR | 24 | uint16 | R | ||||
| HR | 25 | uint16 | R | ||||
| HR | 26 | uint16 | R | ||||
| HR | 27 | uint16 | R | ||||
| HR | 28 | uint16 | R | ||||
| HR | 29 | uint16 | R | ||||
| HR | 31 | float32 CDAB | R | CE/D version | |||
| HR | 33 | float32 CDAB | R | ||||
| HR | 35 | float32 CDAB | R | ||||
| HR | 37 | float32 CDAB | R | ||||
| HR | 39 | float32 CDAB | R | ||||
| HR | 41 | float32 CDAB | R | ||||
| HR | 43 | float32 CDAB | R | ||||
| HR | 45 | float32 CDAB | R | ||||
| HR | 47 | float32 CDAB | R | ||||
| HR | 51 | float32 CDAB | R | ||||
| HR | 53 | float32 CDAB | R | ||||
| HR | 55 | float32 CDAB | R | ||||
| HR | 57 | float32 CDAB | R | ||||
| HR | 59 | float32 CDAB | R | ||||
| HR | 61 | float32 CDAB | R | ||||
| HR | 63 | float32 CDAB | R | ||||
| HR | 65 | float32 CDAB | R | ||||
| HR | 67 | float32 CDAB | R | ||||
| HR | 71 | float32 CDAB | R | ||||
| HR | 73 | float32 CDAB | R | ||||
| HR | 75 | float32 CDAB | R | ||||
| HR | 77 | float32 CDAB | R | ||||
| HR | 79 | float32 CDAB | R | ||||
| HR | 81 | float32 CDAB | R | ||||
| HR | 83 | float32 CDAB | R | ||||
| HR | 85 | float32 CDAB | R | ||||
| HR | 87 | float32 CDAB | R |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).