# How to batch/buffer fast data before working with them

**URL:** <https://forum.inductiveautomation.com/t/how-to-batch-buffer-fast-data-before-working-with-them/104375>\
**Category:** Ignition\
**Created:** [March 28, 2025, 2:38pm UTC](https://forum.inductiveautomation.com/t/how-to-batch-buffer-fast-data-before-working-with-them/104375 "2025-03-28T14:38:35Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 28, 2025, 2:57pm UTC](https://forum.inductiveautomation.com/t/how-to-batch-buffer-fast-data-before-working-with-them/104375/2 "2025-03-28T14:57:37Z")

</div>

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, then update `tail`.

---

_[View the full topic](https://forum.inductiveautomation.com/t/how-to-batch-buffer-fast-data-before-working-with-them/104375)._
