PortDock

Setting Modbus RTU timeouts and polling intervals — 3.5-character time and response time

How many ms for the response timeout and polling interval: the floor from character time, t3.5, frame time and slave processing, and symptoms of bad values.

Tools for this guideModbus Master Windows program · freeSerial Windows program · freeSerial Timing Calculator web · no installModbus RTU Request Builder web · no install

A Modbus RTU master (PLC, HMI or PC program) usually has settings for «response timeout», «retries», «delay between requests» and «polling interval». Too short a timeout makes a healthy device look dead; too long, and one powered-off device slows updates for the whole bus. This guide shows how to compute the minimum from baud rate and frame length.

1. Character time — how long is one byte

A serial line sends each byte framed by a start bit, data bits, parity and stop bits. The Modbus RTU character is 8 data bits with even parity and 1 stop bit (the default), or 2 stop bits when no parity is used. Either way it is 11 bits, so character time = 11 ÷ baud rate.

BaudChar timet1.5t3.5Max bytes/s
96001.146 ms1.719 ms4.010 ms872
192000.573 ms0.859 ms2.005 ms1745
384000.286 ms0.75 ms (fixed)1.75 ms (fixed)3490
1152000.095 ms0.75 ms (fixed)1.75 ms (fixed)10472

RTU frames carry no length field, so receivers split them by silence. The specification discards a frame when a gap between bytes exceeds 1.5 characters (t1.5) and ends a frame after 3.5 characters (t3.5) of silence. Above 19200 bps these times get so short that the specification recommends fixed values: t1.5 = 750 µs, t3.5 = 1.75 ms.

2. Frame length — how many bytes go each way

An RTU frame is address 1 + function 1 + data + CRC 2 bytes. Read requests are always 8 bytes; the response grows with the quantity read.

FunctionRequestNormal responseQuantity limit
03/04 read registers85 + 2N125
01/02 read coils/inputs85 + ⌈N ÷ 8⌉2000
05/06 write single881
10 write multiple registers9 + 2N8123
Exception response—5—

Reading 125 holding registers at once produces a 255-byte response, which takes about 292 ms on the wire at 9600 bps 8E1. Bigger blocks mean fewer requests but longer responses, so the timeout must grow with them.

3. How long one transaction takes

Timeline of reading 10 registers with FC03 at 9600 bps 8E1: t3.5 4.0 ms, 8-byte request 9.2 ms, slave processing 10 ms, 25-byte response 28.6 ms, t3.5 4.0 ms. From the end of the request to the end of the response is the floor for the response timeout
One transaction = request + slave processing + response + t3.5 before the next request. The response timeout must be longer than the time from the end of the request to the end of the response.

Reading 10 registers (FC03) at 9600 bps 8E1: the 8-byte request takes 9.2 ms, the 25-byte response 28.6 ms and t3.5 4.0 ms. With 10 ms of slave processing one transaction takes about 51.8 ms, and polling 5 devices in turn takes about 259 ms per cycle. A shorter polling interval will not make it faster — there is only one bus.

Slave processing time differs by device. Use the «response time» or «response delay» setting from the manual if there is one; otherwise measure the gap between request and response in a traffic log. Many devices take longer to process than to transmit, so raising the baud rate shortens the cycle less than you might expect.

4. Choosing the response timeout

5. Symptoms of wrong settings

SymptomSuspect
Occasional no response; the next reply looks like the answer to the previous requestTimeout shorter than processing + response time — the late reply lands in the next request's slot
Only large block reads fail, small reads workResponse transmission time (5 + 2N bytes) exceeds the timeout
Responses split in two with CRC errorsUSB adapter latency, or the device leaves gaps longer than t1.5 between bytes
One device off stalls all updates for secondsTimeout × retries is large
Some back-to-back requests get no reply, or exception 06 (busy)Too little rest between requests for the device — increase the delay between requests

In PortDock

Published 2026-10-23