When a Modbus slave cannot execute a request (invalid address, out-of-range value, etc.) it replies with an "Exception Response": the original function code with bit 7 set to 1, followed by an Exception Code explaining the reason.
True
An Exception Response is built as function_code OR 0x80, so a request 0x03 (Read Holding) returns 0x83 on error. It is followed by an Exception Code: 0x01 Illegal Function (function code not supported), 0x02 Illegal Data Address (address out of range), 0x03 Illegal Data Value (invalid value), 0x04 Slave Device Failure (internal error), 0x05 Acknowledge (received, processing is long), and 0x06 Slave Device Busy (try again later). These codes are critical for field diagnostics through Modbus logs.
Log the raw exception byte alongside the function code in any Modbus driver you write: "slave returned 0x83 / 0x02" is far more useful than "read failed".
Modbus bank in preparation
The full Modbus bank isn't available yet. Drop your email to get notified at launch and grab an early-bird discount.
Join the waitlist →See the 9 other Modbus practice questions
Related questions
- A Modbus RTU bus on RS-485 supports up to 32 nodes per segment (extendable with repeaters), requires 120 ohm termination resistors at both ends of the bus, and biasing resistors to define the idle state.3. Modbus RTU · RS-485 Multi-Drop
- Which Modbus function code is used to READ the Holding Registers (16-bit read/write registers) of a slave?4. Function codes · Lesen Coils/Register
- Function 0x06 "Write Single Register" writes a single 16-bit Holding Register on a Modbus slave, with both the address and the value encoded on 16 bits each in the request.4. Function codes · Write Single Register (0x06)
- To carry a 32-bit IEEE 754 floating-point value over Modbus (whose registers are 16 bits), two consecutive registers are typically used, with the byte order documented by the slave manufacturer.5. Data encoding · 32-Bit-Float
- Modpoll (focus-sw.com) and mbpoll (Linux/macOS) are free command-line tools used to query a Modbus slave from a PC, indispensable for Modbus diagnostics and integration commissioning.6. Practical · Modpoll / mbpoll