Moxa ioLogik R1214 Modbus register map
Also covers ioLogik R1214-T
RS-485 remote I/O with 6 digital inputs and 6 relay outputs
- Official
- 168 registers
- Modbus RTU
- Revision 2 · 2026-10-17
- Identity: serial number
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 RTU
- Unit ID
- 1
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 58 holding registers, 32 input registers, 72 coils, 6 discrete inputs
- Groups
- 3
- Revision
- 2 · 2026-10-17
- Added
- ()
- File
- maps/moxa/iologik-r1214.mbmap.json · 27 KB · history
- SHA-256
- a7146fa9941e95baf54a2bc26152bf11a0437083d8b0cacffa836fac87c10920
- Manufacturer
- moxa.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 |
|---|---|---|---|---|
| Serial number | Serial number | input 30027 | string[6] |
Sources and notes
- ioLogik R1200 Series User's Manual · version Edition 3.3, 2018-02 Appendix A, Modbus address and register maps
Source: Moxa, "ioLogik R1200 Series User's Manual", edition 3.3 (February 2018), Appendix A
- The unit ID is set with the two rotary switches (1-99). With the mode switch in Initial position the port runs at 9600 baud, 8N1; the settings in Run mode are configured by software.
- 32-bit values are high word first.
- The manual lists relay safe mode status for 8 channels (0x01E0-0x01E7) although the device has 6 relays; only the first 6 are in this map.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| CO | 0 | bool | RW | ||||
| CO | 1 | bool | RW | ||||
| CO | 2 | bool | RW | ||||
| CO | 3 | bool | RW | ||||
| CO | 4 | bool | RW | ||||
| CO | 5 | bool | RW | ||||
| CO | 32 | bool | RW | 1: reset to initial value | |||
| CO | 33 | bool | RW | 1: reset to initial value | |||
| CO | 34 | bool | RW | 1: reset to initial value | |||
| CO | 35 | bool | RW | 1: reset to initial value | |||
| CO | 36 | bool | RW | 1: reset to initial value | |||
| CO | 37 | bool | RW | 1: reset to initial value | |||
| CO | 64 | bool | RW | 1: clear overflow flag | |||
| CO | 65 | bool | RW | 1: clear overflow flag | |||
| CO | 66 | bool | RW | 1: clear overflow flag | |||
| CO | 67 | bool | RW | 1: clear overflow flag | |||
| CO | 68 | bool | RW | 1: clear overflow flag | |||
| CO | 69 | bool | RW | 1: clear overflow flag | |||
| CO | 96 | bool | RW | ||||
| CO | 97 | bool | RW | ||||
| CO | 98 | bool | RW | ||||
| CO | 99 | bool | RW | ||||
| CO | 100 | bool | RW | ||||
| CO | 101 | bool | RW | ||||
| CO | 128 | bool | RW | ||||
| CO | 129 | bool | RW | ||||
| CO | 130 | bool | RW | ||||
| CO | 131 | bool | RW | ||||
| CO | 132 | bool | RW | ||||
| CO | 133 | bool | RW | ||||
| CO | 160 | bool | RW | ||||
| CO | 161 | bool | RW | ||||
| CO | 162 | bool | RW | ||||
| CO | 163 | bool | RW | ||||
| CO | 164 | bool | RW | ||||
| CO | 165 | bool | RW | ||||
| CO | 320 | bool | RW | ||||
| CO | 321 | bool | RW | ||||
| CO | 322 | bool | RW | ||||
| CO | 323 | bool | RW | ||||
| CO | 324 | bool | RW | ||||
| CO | 325 | bool | RW | ||||
| CO | 352 | bool | RW | ||||
| CO | 353 | bool | RW | ||||
| CO | 354 | bool | RW | ||||
| CO | 355 | bool | RW | ||||
| CO | 356 | bool | RW | ||||
| CO | 357 | bool | RW | ||||
| CO | 384 | bool | RW | ||||
| CO | 385 | bool | RW | ||||
| CO | 386 | bool | RW | ||||
| CO | 387 | bool | RW | ||||
| CO | 388 | bool | RW | ||||
| CO | 389 | bool | RW | ||||
| CO | 416 | bool | RW | ||||
| CO | 417 | bool | RW | ||||
| CO | 418 | bool | RW | ||||
| CO | 419 | bool | RW | ||||
| CO | 420 | bool | RW | ||||
| CO | 421 | bool | RW | ||||
| CO | 448 | bool | RW | ||||
| CO | 449 | bool | RW | ||||
| CO | 450 | bool | RW | ||||
| CO | 451 | bool | RW | ||||
| CO | 452 | bool | RW | ||||
| CO | 453 | bool | RW | ||||
| CO | 479 | bool | RW | 1: reset pulse count | |||
| CO | 480 | bool | RW | 1: reset pulse count | |||
| CO | 481 | bool | RW | 1: reset pulse count | |||
| CO | 482 | bool | RW | 1: reset pulse count | |||
| CO | 483 | bool | RW | 1: reset pulse count | |||
| CO | 484 | bool | RW | 1: reset pulse count | |||
| DI | 0 | bool | R | ||||
| DI | 1 | bool | R | ||||
| DI | 2 | bool | R | ||||
| DI | 3 | bool | R | ||||
| DI | 4 | bool | R | ||||
| DI | 5 | bool | R | ||||
| IR | 0 | uint16 | R | ||||
| IR | 1 | uint16 | R | ||||
| IR | 2 | uint16 | R | ||||
| IR | 3 | uint16 | R | ||||
| IR | 4 | uint16 | R | ||||
| IR | 5 | uint16 | R | ||||
| IR | 32 | uint32 ABCD | R | ||||
| IR | 34 | uint32 ABCD | R | ||||
| IR | 36 | uint32 ABCD | R | ||||
| IR | 38 | uint32 ABCD | R | ||||
| IR | 40 | uint32 ABCD | R | ||||
| IR | 42 | uint32 ABCD | R | ||||
| IR | 320 | uint32 ABCD | R | ||||
| IR | 322 | uint32 ABCD | R | ||||
| IR | 324 | uint32 ABCD | R | ||||
| IR | 326 | uint32 ABCD | R | ||||
| IR | 328 | uint32 ABCD | R | ||||
| IR | 330 | uint32 ABCD | R | ||||
| IR | 384 | uint32 ABCD | R | ||||
| IR | 386 | uint32 ABCD | R | ||||
| IR | 388 | uint32 ABCD | R | ||||
| IR | 390 | uint32 ABCD | 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).