Skip to main content
Call Eric:863-698-8266
CURRYCONTROLS.COMControls & Automation Knowledge Hub

PLC & Data

Modbus Serial Poll Time

How long a Modbus RTU transaction takes at a given baud rate, and how many devices a serial bus can poll within a required update period.

Inputs

Time the device takes to answer. Field devices are often much slower than expected.

Calculated reference results

Time per transaction
84.7ms
Full poll cycle
678 ms

8 devices

Meets your update requirement
Yes

0.68 s cycle against a 1.00 s requirement

Devices that fit the requirement
11

At this baud rate, register count, and response time

Character time
1.146ms

11 bits per character at 9600 baud

Required silent interval
4.01ms

3.5 character times

Response frame size
45 bytes

20 registers

The arithmetic

  1. Character time = 11 bits / 9600 baud = 1.146 ms
  2. Request = 8 bytes x 1.146 ms = 9.17 ms
  3. Response = 45 bytes x 1.146 ms = 51.56 ms
  4. Per transaction = request + 20 ms device time + response + 4.01 ms silence = 84.7 ms
  5. Cycle = 84.7 ms x 8 devices = 678 ms

What this does not account for

  • Device response time is usually the dominant term and is the one people guess at. Measure it rather than assuming, because field devices are often far slower than their datasheets suggest.
  • This assumes no retries. A single timeout on a slow device can add its full timeout period to every cycle, which is why one marginal device slows an entire bus.
  • Reading contiguous blocks is far cheaper than reading individual registers. One request for twenty registers costs a fraction of twenty separate requests.
  • Polling faster than the process changes wastes bus capacity and increases the error rate without improving anything an operator can use.

How this is calculated

A Modbus RTU transaction takes the time to transmit the request, the device response time, the time to transmit the reply, and the required silent interval of at least 3.5 character times. At 9600 baud each character is about 1.15 milliseconds, so a bus with many devices can easily fail to meet a one-second update requirement.

Formulas

character time = 11 bits / baud rate

transaction = request bytes + device response + reply bytes + 3.5 character silence

Assumptions and limitations built into this calculator

  • 11 bits per character, the usual Modbus RTU framing with one start bit, eight data bits, parity, and one stop bit.
  • Function code 03 with a contiguous block read.
  • No retries, no collisions, and a healthy bus.

Frequently asked questions

Why is my Modbus bus so slow?
Usually device response time and per-register polling rather than the baud rate. Read contiguous blocks, measure the actual response time of each device, and check whether one slow device is timing out on every cycle.

Direct contact

Have a controls question?

Reach Eric Sullivan directly about anything on this site, a controls or automation topic, or one of his personal projects.