Moxa ioThinx 45MR-6810 Modbus register map
Also covers ioThinx 45MR-6810-T
8-channel thermocouple input module for the ioThinx 4510 adapter
- Official
- 58 registers
- Modbus TCP
- Revision 3 · 2026-11-11
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
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 2 holding registers, 40 input registers, 16 coils
- Groups
- 9
- Translation tables
- 2
- Revision
- 3 · 2026-11-11
- Added
- ()
- File
- maps/moxa/iothinx-45mr-6810.mbmap.json · 12 KB · history
- SHA-256
- cc1345032855952519f9b212fe8d545a14c222849463ea771741abd62530afa6
- Manufacturer
- moxa.com
Sources and notes
- ioThinx 4510 Series User's Manual · version 6.2, 2024-07 Appendix A, 45MR-6810 (-T) registers
Source: Moxa, ioThinx 4510 Series User's Manual, version 6.2 (July 2024), Appendix A (Modbus/TCP slave rules and register lists)
- Addresses are relative to the module: the Modbus address on the 4510 is the slot's base address (set on the Modbus page of the 4510 web console: reload the default addresses or edit them) plus the relative address given here, separately for coils, discrete inputs, holding registers and input registers. Modbus/TCP port 502 on the ioThinx 4510 adapter.
- The manual lists every parameter with a length: in bits for coils and discrete inputs, and in 16-bit registers for the others. A DWORD or REAL value takes two registers; a REAL is a 32-bit float. Per-channel entries here follow that: for example 8 registers of DWORD for 4 channels are four 32-bit values.
- The manual does not state the word order of the 32-bit values; big is assumed. The function codes are 1, 5 and 15 for coils, 2 for discrete inputs, 3, 6 and 16 for holding registers and 4 for input registers.
- Each 'All' register is a bit mask with one bit per channel.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| CO | 0 | bool | RW | TC - reset minimum value (1: Reset) | |||
| CO | 1 | bool | RW | ||||
| CO | 2 | bool | RW | ||||
| CO | 3 | bool | RW | ||||
| CO | 4 | bool | RW | ||||
| CO | 5 | bool | RW | ||||
| CO | 6 | bool | RW | ||||
| CO | 7 | bool | RW | ||||
| CO | 8 | bool | RW | TC - reset maximum value (1: Reset) | |||
| CO | 9 | bool | RW | ||||
| CO | 10 | bool | RW | ||||
| CO | 11 | bool | RW | ||||
| CO | 12 | bool | RW | ||||
| CO | 13 | bool | RW | ||||
| CO | 14 | bool | RW | ||||
| CO | 15 | bool | RW | ||||
| HR | 0 | uint16 | RW | TC - reset minimum value (1: Reset); bit n is channel n | |||
| HR | 1 | uint16 | RW | TC - reset maximum value (1: Reset); bit n is channel n | |||
| IR | 0 | float32 ABCD | R | TC - scaled value | |||
| IR | 2 | float32 ABCD | R | ||||
| IR | 4 | float32 ABCD | R | ||||
| IR | 6 | float32 ABCD | R | ||||
| IR | 8 | float32 ABCD | R | ||||
| IR | 10 | float32 ABCD | R | ||||
| IR | 12 | float32 ABCD | R | ||||
| IR | 14 | float32 ABCD | R | ||||
| IR | 16 | float32 ABCD | R | TC - minimum scaled value | |||
| IR | 18 | float32 ABCD | R | ||||
| IR | 20 | float32 ABCD | R | ||||
| IR | 22 | float32 ABCD | R | ||||
| IR | 24 | float32 ABCD | R | ||||
| IR | 26 | float32 ABCD | R | ||||
| IR | 28 | float32 ABCD | R | ||||
| IR | 30 | float32 ABCD | R | ||||
| IR | 32 | float32 ABCD | R | TC - maximum scaled value | |||
| IR | 34 | float32 ABCD | R | ||||
| IR | 36 | float32 ABCD | R | ||||
| IR | 38 | float32 ABCD | R | ||||
| IR | 40 | float32 ABCD | R | ||||
| IR | 42 | float32 ABCD | R | ||||
| IR | 44 | float32 ABCD | R | ||||
| IR | 46 | float32 ABCD | R | ||||
| IR | 48 | uint16 | R | TC - Type (0: J Type, 1: K Type, 2: T Type, 3: E | |||
| IR | 49 | uint16 | R | ||||
| IR | 50 | uint16 | R | ||||
| IR | 51 | uint16 | R | ||||
| IR | 52 | uint16 | R | ||||
| IR | 53 | uint16 | R | ||||
| IR | 54 | uint16 | R | ||||
| IR | 55 | uint16 | R | ||||
| IR | 56 | uint16 | R | TC - Status (0: normal, 1:burnout) | |||
| IR | 57 | uint16 | R | ||||
| IR | 58 | uint16 | R | ||||
| IR | 59 | uint16 | R | ||||
| IR | 60 | uint16 | R | ||||
| IR | 61 | uint16 | R | ||||
| IR | 62 | uint16 | R | ||||
| IR | 63 | uint16 | 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).