Modbus delay between polls


Thread Starter


In Modbus master we poll the slave for collecting desired data.
there are two other parameters are defined at master side:

1- delay between polls and
2- timeout.

timeout is that, master poll the slave for data and at the predefined time slave doesn't respond then timeout error generates,

master does a poll after every desired time e.g 30ms

what is confusing me is that, what is the purpose of delay between polls and how delay between polls works?

can anyone describe for me in detail?

From our help file regarding read delay time. (same as poll delay)

"To allow the throttling of data request to the slave device the value entered is the delay time between read request."

A slave device can be overwhelmed with data request. This is one method to control the data request to the slave device.

We allow a value of 0 which instructs the program to issue the next read request as soon as the response for the last read request is received.

Good luck,



Delay between polls is good because:

1. Reduce a burden of server in case of many devices connected to it.

2. Reduces costs if you have communication line between master and slave device which is cost dependent by amount of data


Lynn August Linse

Generally, the delay between polls has a few reasons.

First, some slaves turn OFF their serial port when they are not being addressed. This can be ugly, as you may be able to poll 1 slave rapidly, but to switch to a new one, you may need to delay 50 or even 200msec. This is NOT a Modbus issue - it is an implementation issue.

Second, with RS-485, line noise rings after the last byte of a response, so if the Master starts a new request too fast, there is a higher probability that the first byte is damaged by this noise, so the next poll will have a bad CRC anyway. So a constant 30msec delay is 'faster' than no delay and a 5-10% error rate.

Third, some media (like radio modems or RS-232/485 converters) take time to turn around from TX to RX. So polling too fast might cause the first few bytes to NOT be transmitted.

This delay is something you need to support as a setting in any slave devices or master tools.

Fred Loveless

Typically a Delay Between Polls is used when communicating to slave devices that are connected via some type of radio modem. It allows the radio time to switch from receive to send.
I am having the same confusion about delay between polls.

suppose if i have set the polling time of 20mS and 3 slaves are connected,so master will poll all 3 slaves after every 20mS. If i use delay between polls (e.g 10mS)then what happens to the timer interrupt? Will timer's polling time disable for 10mS or the timer keeps on interrupting every 20mS. if timer keeps on interrupting after every 20mS then what should be the purpose of using delay between polls?