Modbus RTU timing calculator

Work out Modbus RTU character time, the 1.5 and 3.5 character gaps, and how long it takes to poll every device on a serial line.

Modbus and serial Updated Free, no sign-up

Serial settings
Parity
Stop bits
Polling

Common requests

Time each device takes to start replying

ms

Including address and CRC

bytes

Including address and CRC

bytes

Time to poll every device once

4,605ms

One request and reply
153.5 ms
Character time
1.146 ms
Frame gap, t3.5
4.01 ms
Longest gap inside a frame, t1.5
1.719 ms
Complete polls per minute
13.03 /min
Request 9.167 msDevice delay 20 msResponse 120.3 msGap, t3.5 4.01 ms
How it’s calculated
  1. tchar = bits ÷ baud=11 ÷ 9,600 × 1000=1.146 ms
  2. t3.5 = 3.5 × tchar=3.5 × 1.146=4.01 ms
  3. Exchange = (request + response) × tchar + delay + t3.5=(8 + 105) × 1.146 + 20 + 4.01=153.5 ms
  4. Cycle = devices × exchange=30 × 153.5=4,605 ms

Choose the gateway connection for this Modbus line.

Build a system

Polling 30 devices at 9,600 bit/s takes 4,605 ms per round, 153.5 ms for each request and reply, or 13.03 complete rounds a minute.

Tip: Most of a polling cycle is often the devices thinking, not bytes on the wire. Measure the response delay rather than guess it.

How to calculate Modbus RTU polling time

A Modbus RTU line carries one exchange at a time: the master sends a request, the device thinks, the device replies, and the line stays quiet for at least 3.5 character times before the next frame. Add those up for every device and you have the time to poll the whole line once. At 9,600 bit/s, ten devices each returning ten registers take about half a second.

Character time

tchar = (1 + 8 + parity + stop) ÷ baud

Each byte travels as 11 bits: a start bit, eight data bits, a parity bit and one stop bit, or two stop bits with no parity. At 9,600 bit/s that is 1.146 ms per byte.

Frame gaps

t3.5 = 3.5 × tchar; recommended 1.75 ms above 19,200 bit/s

A silence of 3.5 character times marks the end of a frame, and a gap of more than 1.5 inside a frame makes it invalid. Above 19,200 bit/s the serial line guide recommends fixed values of 1.75 ms and 0.75 ms.

One exchange

exchange = (request + response) × tchar + delay + t3.5

Request and response lengths include the address and CRC: 8 bytes to ask for registers, and 5 plus 2 per register back. The device delay is how long it takes to start answering, and it is never shorter than t3.5.

The whole line

cycle = devices × exchange

Polling is sequential, so the round time grows with every device added. Retries and timeouts add more.

Modbus RTU timing examples

Ten meters at 9,600 bit/s

Reading ten registers from each of ten meters, with 5 ms for each to respond, takes 46.82 ms per exchange and 468.2 ms for the round. Every meter can be read about twice a second.

Time to poll every device once 468.2 ms Open in the calculator

Twenty devices with longer reads at 19,200 bit/s

Fifty registers from each of twenty devices: each reply is 105 bytes, and the round takes 1,435 ms even at twice the speed. Longer reads of fewer, contiguous blocks are usually faster than many short ones.

Time to poll every device once 1,435 ms Open in the calculator

A slow device on a busy line

Thirty devices that each take 20 ms to answer and return fifty registers: 153.5 ms per exchange and 4,605 ms per round. At this size, splitting the devices across two lines halves the round.

Time to poll every device once 4,605 ms Open in the calculator

Modbus RTU character time and frame gaps by baud rate

For 11-bit characters (even parity, one stop bit), with the time for one 8-byte request and a 25-byte reply of ten registers, allowing 5 ms for the device to respond.

Modbus RTU character time and frame gaps by baud rate, values in ms
Baud rate (bit/s)Character (ms)t1.5 (ms)t3.5 (ms)One exchange (ms)
1,2009.16713.75032.083366.7
2,4004.5836.87516.042183.3
4,8002.2923.4388.02191.7
9,6001.1461.7194.01046.8
19,2000.5730.8592.00525.9
38,4000.2860.7501.75016.2
57,6000.1910.7501.75013.1
115,2000.0950.7501.7509.9

Download this table (CSV)

Questions about Modbus RTU timing

What is t3.5 in Modbus RTU?

The silent interval of 3.5 character times that separates frames. A receiver treats a gap that long as the end of a frame. At 9,600 bit/s with 11-bit characters it is 4.01 ms; above 19,200 bit/s the serial guide recommends a fixed 1.75 ms interval.

How fast can I poll a Modbus RTU line?

Add up the exchanges: one per device per round. More devices, longer replies, slow devices and retries all lengthen the round. For more readings per second, raise the baud rate, read contiguous blocks, or split the devices over more lines.

Why 11 bits per character?

The Modbus serial line guide specifies 11: start, eight data bits, parity and one stop bit, or no parity with two stop bits. Many devices also accept no parity with one stop bit, but that is outside the specification.

Does a higher baud rate always help?

Only up to the point where device response time dominates. At 115,200 bit/s the bytes take a fraction of a millisecond, and a device that needs 20 ms to answer sets the pace. Long cables and poor termination also limit the rate that works reliably.

Limits of this result

  • The cycle estimate excludes retries, timeouts, broadcasts, operating-system scheduling and other masters.
  • The entered response delay must represent the device from request end to response start; the calculation enforces at least t3.5.
  • This is an ideal sequential estimate with one identically sized exchange per device. Nonconforming 10- or 12-bit framing results are exploratory timing arithmetic, not Modbus conformance approval.

Read Modbus devices on the Gateway

A ZMB polls its own RS-485 line next to the equipment, so each Modbus device or small group gets a short, fast line instead of sharing one long bus.

Related guides

Sources

  1. MODBUS over Serial Line Specification and Implementation Guide V1.02 (opens in a new tab) (PDF) Modbus Organization, 2006-12-20
  2. REF601/REJ601 Modbus Communication Protocol Manual (opens in a new tab) (PDF) ABB, 1MDU072231-YN