# Pull Rate of Ignition and Data Collectors/PLCs

**URL:** <https://forum.inductiveautomation.com/t/pull-rate-of-ignition-and-data-collectors-plcs/106589>\
**Category:** Ignition\
**Created:** [May 22, 2025, 6:33pm UTC](https://forum.inductiveautomation.com/t/pull-rate-of-ignition-and-data-collectors-plcs/106589 "2025-05-22T18:33:26Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [May 22, 2025, 6:44pm UTC](https://forum.inductiveautomation.com/t/pull-rate-of-ignition-and-data-collectors-plcs/106589/2 "2025-05-22T18:44:38Z")

</div>

> [@Kaleb\_Buck](#):
>
> What is the rate of pull that occurs when Ignition pulls from a PLC?

You configure this as part of tag groups that you configure in Ignition. Ignition will poll for values at that configured rate. Example, 1000ms poll rate, Ignition polls once every 1000ms.

> [@Kaleb\_Buck](#):
>
> If a bit that Ignition is looking at turns on at a faster rate than the time it takes for Ignition to pull and process the day, are there transactions getting lost?

If the bit goes high and then low again in between polls, Ignition will not know.

> [@Kaleb\_Buck](#):
>
> How quick of a signal can Ignition handle.

Several factors influence this, including PLC make and model, Ignition server resources, location of Ignition server in regards to the PLC (cloud or onsite? **Never** do cloud if you want it to talk directly to a PLC). Typically fastest on base ignition is 250ms, with work being done on the PLC side to optimize data locations in PLC memory to help with comms load.

If you use 3rd party modules, like pturmels Ethernet/IP driver, people have reported as good as 100ms poll rates, again with work done on PLC side to optimize.

If you require high volume/speed data collection, the following method is the recommended/most followed:

> [@How to batch/buffer fast data before working with them](https://forum.inductiveautomation.com/t/how-to-batch-buffer-fast-data-before-working-with-them/104375/2):
>
> For those kinds of speeds, you are best off using a ring buffer data structure (array of structures) in your PLC, with head and tail integer tags for the current subscripts into the array. Only those two tags would be subscribed. head would be updated by the PLC as entries are filled. tail would be updated by Ignition as entries are delivered to the consumer. Use a timer at the desired slower pace to perform a bulk PLC read of the entries between head and tail, send them to the consumer, the…

Basic method layout is:  
Have your plc stuff data into a ring buffer at real time speed (however fast you want to collect data). Make sure each datapoint has a timestamp value included with it. This will mean you need to have your PLC and Ignition server clocks synced to the same master clock.

Make the buffer max size enough to handle minor windows of comms disconnect, or several times the Ignition poll rate.

This allows ignition to catch back up in case of a bad transaction or comms hiccup, without stopping your machine.

Read from that ring buffer at slower poll rate with Ignition (5s for example) and read \>5s worth of data from the ring buffer. Stuff the data into a db table or do whatever processing you want on it.

You will **NOT** be able to use the SQL bridge module to perform this, you will have to script these data transactions. SQL Bridge module is NOT required to talk to a db.

---

_[View the full topic](https://forum.inductiveautomation.com/t/pull-rate-of-ignition-and-data-collectors-plcs/106589)._
