# 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:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![quartzFarm](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/quartzfarm/32/42037_2.png) [@quartzFarm](https://forum.inductiveautomation.com/u/quartzFarm)\
**Post date:** [December 21, 2022, 10:13pm UTC](https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902/1 "2022-12-21T22:13:20Z")

</div>

I have an Ignition 8.16 vision project that has some very slow device connections. I was using a leased scan group, but the screens would take forever to show live data. I contacted tech support and found out the Logix driver has to optimize the tags anytime a tag scan rate has changed. This device connection has 44,464 tags, so the process takes around 10 seconds. So I tried using a direct scan group, but this leads the load on the driver exceeding 100%.

I have other projects in a 7.9 gateway with large tag counts. Another Logix driver project has 31,117 tags running around 38% load.

So then I started playing around with how much tags lead to load on the driver. I created a 50,000 DINT array in a dev environment and was impressed that it can handle all those tags in \< 1ms. But it only created on request count to get all those tags.

The device connection with 44k tags has 265 requests and is overloaded.  
The device connection with 31k tags has 166 requests and runs great.

So I think the answer is to somehow architect the tags so the driver has a reduced amount or request counts. Does anyone have a link to helpful information of how to get this under control, or any other helpful information?

We have already messed around with increasing the amount of connections the driver can create, but we haven't seen any huge improvements. Right now it is set for 8. I am connecting to a 1756-L84ES through a 1756-EN2T.

---

<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.... }

---

<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:44pm UTC](https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902/3 "2022-12-21T22:44:57Z")

</div>

One more thing, for your case especially:

- Use the front port of 1756-L8x processors for Ignition and SCADA in general, moving other loads to chassis-based communications.

---

<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:** [January 3, 2023, 10:33pm UTC](https://forum.inductiveautomation.com/t/how-does-the-logix-driver-divide-the-tags-into-request-counts/67902/4 "2023-01-03T22:33:07Z")

</div>

> [@pturmel](#):
>
> And watch the 3rd party modules category....

> [@Automation Professionals' EtherNet/IP Communication Suite V2](https://forum.inductiveautomation.com/t/automation-professionals-ethernet-ip-communication-suite-v2/68190):
>
> Automation Professionals is pleased to announce its latest EtherNet/IP Communications Suite driver module, a major upgrade to its EtherNet/IP Class1 Communications module, as a Public Beta. As of April 15, 2023, this is now a Production Release. The primary new feature is its new Generic EtherNet/IP Client Driver, a drop-in replacement for IA's Logix V21+ driver and its Omron NJ/NX driver. It does work with older Logix processors, and also works with Rockwell's MicroLogix 8xx family (ethernet…
