Free tool · Modbus
Modbus exception code decoder
Modbus encodes slave errors as a 1-byte exception code returned with the request function code's bit 7 set (e.g. request 0x03 ReadHoldingRegisters → response 0x83 with exception). Type the code you encountered to get its meaning, probable cause and the typical resolution.
Free · no sign-upLast updated: 2026-05-20
0x02ILLEGAL DATA ADDRESS
The requested register address is outside the slave's allocated range (e.g. requesting register 40100 when the slave only maps 40000-40050).
Resolution
Verify the slave's address map. Mind 0-based vs 1-based offsets (Holding Reg 1 → register 0x0000 on the wire).
Request function code → exception PDU
| Request function code | Exception function code (bit 7 = 1) |
|---|---|
| 0x01 (1) | 0x81 |
| 0x02 (2) | 0x82 |
| 0x03 (3) | 0x83 |
| 0x04 (4) | 0x84 |
| 0x05 (5) | 0x85 |
| 0x06 (6) | 0x86 |
| 0x0F (15) | 0x8F |
| 0x10 (16) | 0x90 |
How to use
1. Trace the frames on your bus (Wireshark + Modbus plugin, or modpoll -v).
2. Locate the exception byte right after the function code whose bit 7 = 1.
3. Enter it above (0x02 or 02).
4. Apply the suggested resolution and retest.