# How does the Logix driver divide the tags into request counts

**URL:** <https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902>\
**Category:** Ignition\
**Tags:** ignition81, vision\
**Created:** [December 21, 2022, 10:13pm UTC](https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902 "2022-12-21T22:13:20Z")\
**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:** [December 21, 2022, 10:39pm UTC](https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902/2 "2022-12-21T22:39:19Z")

</div>

Optimization is per-tag. The services uses to make requests work, at most, per-tag. (Including aliases as tags.) Each service grabs contiguous bytes from the PLC's tag storage and deliver for decoding in Ignition. Where unambiguous, and no tag or member permissions problems interfere, and not an AOI, structures can be read in bulk. Saving much time on both ends. So too with arrays of structures.

Many small services can be bundled into a larger (composite) service, which further reduces the number of requests that cross the wire (as fitted into the connection buffer--see the advanced props), but that bundling adds some CPU time on the PLC side (to unmarshal the inner requests and marshal the responses back into as single response).

So, to go fast:

- consolidate PLC tags into UDTs with no permissions restrictions,
- make arrays, both of primitive types and structs,
- avoid aliases like the plague (point Ignition at the target of the alias, not at the alias).
- for any given PLC tag, make sure all OPC tags use the same pace

Also, review this entire topic:

> [@Cannot read some tags inside Rockwell AOI](https://forum.inductiveautomation.com/t/cannot-read-some-tags-inside-rockwell-aoi/38393/3):
>
> What Mike said, but also: Don’t. All AOI’s have EnableIn and EnableOut booleans that are locked to “Hidden” and therefore prevent most optimization of the data traffic to read instances of these data types. Ignition’s Logix driver cannot do bulk reads on AOIs. Do very much of this and your Logix driver will choke. I strongly recommend that any AOI you design yourself use one or more InOut parameters of another data type, with instances of those datatypes elsewhere. Place all of your extern…

{ Psst! And watch the 3rd party modules category.... }

---

_[View the full topic](https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902)._
