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.
The requested register address is outside the slave's allocated range (e.g. requesting register 40100 when the slave only maps 40000-40050).
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
See how exam-ready you really are for Modbus
10 real certification questions, no account needed. Find your gaps in under 5 minutes — free.