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.
Calculated reference results
- Time per transaction
- 84.7ms
- Full poll cycle
- 678 ms
- Meets your update requirement
- Yes
- Devices that fit the requirement
- 11
- Character time
- 1.146ms
- Required silent interval
- 4.01ms
- Response frame size
- 45 bytes
8 devices
0.68 s cycle against a 1.00 s requirement
At this baud rate, register count, and response time
11 bits per character at 9600 baud
3.5 character times
20 registers
The arithmetic
- Character time = 11 bits / 9600 baud = 1.146 ms
- Request = 8 bytes x 1.146 ms = 9.17 ms
- Response = 45 bytes x 1.146 ms = 51.56 ms
- Per transaction = request + 20 ms device time + response + 4.01 ms silence = 84.7 ms
- 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.