Check settings first, then wiring, then timing. A device that does not answer is usually a wrong address, wrong serial setting or wiring fault.
How a Modbus RTU Frame Looks
An RTU character is 11 bits: one start bit, eight data bits, a parity bit (even by default) and one stop bit. Frames end with a CRC, and a gap of at least 3.5 character times separates frames. A gap of more than 1.5 character times inside a frame discards it. Above 19200 baud, fixed times of 750 microseconds and 1.75 ms are used.
No Answer at All
Check the slave address (1 to 247), baud rate, parity and stop bits on both ends. A message to a slave that does not exist simply times out. Make sure every device on the trunk has a unique address and that only one master is polling.
CRC Errors and Garbage
Damaged replies point to wiring or noise: missing termination, long stubs, a star layout, unbiased idle line or ground potential differences. Fix the cable before changing software settings.
Timing and Timeouts
Set the response timeout above the slowest device, typically one second at 9600 baud. Too many retries or too short an interval on a slow trunk can starve other devices, so group contiguous registers and poll at a sensible interval.
Wrong Numbers
If a device answers but the value is wrong, suspect scale factor, word order, data type or a one-off address offset. Compare one reading with the device display. The Modbus register map guide covers decoding.
Exceptions
An exception reply means the device answered but refused. Illegal data address, for example, means the register does not exist on that model. Read registers one block at a time to find where it begins.
Common Questions
Why does my Modbus device time out?
The usual causes are a wrong slave address, mismatched baud rate or parity, swapped or missing wiring, or a second master on the line. A device that is not present never answers.
What is a Modbus exception code?
A reply with the high bit of the function code set, plus a code such as 2 for illegal data address. It means the device received the request and refused it.
