# Massive latency issues on HMI

**URL:** <https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073>\
**Category:** Ignition\
**Created:** [August 1, 2024, 5:45pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073 "2024-08-01T17:45:28Z")\
**Posts on this page:** 20\
**Page:** 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:** [August 1, 2024, 6:33pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/21 "2024-08-01T18:33:14Z")

</div>

> [@lrose](#):
>
> locked to "Hidden" from external access and can not be changed from that.

Actually no. That was a misimpression I got when I first encountered this. You should re-read that with the edits I made later.

> [@paul-griffith](#):
>
> Phil's module won't/cannot work on Edge.

Sigh. I'm _trying_ to get a "yet" inserted in that statement. 😐

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 1, 2024, 6:36pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/22 "2024-08-01T18:36:21Z")

</div>

It has been brought into question why they are using Edge over standard ignition and it was pointed out that this is their standard and cost efficient to them. I have no choice but to live with a single PLC and Edge. I have a better chance at marrying Victoria Beckham then them changing either of those things.

---

<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:** [August 1, 2024, 6:38pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/23 "2024-08-01T18:38:08Z")

</div>

> [@Josh\_Allen](#):
>
> I have no choice

You are [expletive]ed.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 1, 2024, 6:42pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/24 "2024-08-01T18:42:28Z")

</div>

It seems that way, but I do find something interesting you said in which if a member of an array is leased, yet the entire array is not then it is adding more traffic. If I was able to refine what I have as a leased tag, then I could potentially relieve some excess communication. Issue is that we are not looking at a single array, most of them are inaddressed tags examining the subroutine which is then packed full of aliased tags and AOIs so it would be extremely difficult to perform but something to examine.

---

<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:** [August 1, 2024, 6:54pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/25 "2024-08-01T18:54:42Z")

</div>

If you have OPC items that are alias tags in the PLC (not alias members of AOIs), you should change the Ignition OPC Item Path to point at the actual base tag. That will give the IA driver a chance to read things in the base tag in bulk. Go back into the linked topics and study the descriptions of how a driver optimizes arrays and structures.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 7, 2024, 5:44pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/26 "2024-08-07T17:44:32Z")

</div>

@Kevin.Herron. Do you think that reverting back to a different version could help. For instance, is there a difference between 8.1.31 and 8.1.38? If so, is there an easy way to change the version of the gateway or is it a fresh download?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 7, 2024, 5:46pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/27 "2024-08-07T17:46:02Z")

</div>

No, there's no difference between versions that would matter here.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 7, 2024, 5:49pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/28 "2024-08-07T17:49:09Z")

</div>

Going through the differences, I didn't think so either. If I do revert back to a previous version for the customer, can I use the license key multiple times or is there a quick way to revert .38 to .31.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 7, 2024, 5:53pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/29 "2024-08-07T17:53:12Z")

</div>

Going backwards isn't always easy. If you made changes since the upgrade they are not guaranteed to be compatible in the older version.

I think it's easiest to take a gateway backup, uninstall, install desired version, restore.

I'm not sure what's got you thinking you need to be reverting to an old version.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 7, 2024, 5:55pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/30 "2024-08-07T17:55:44Z")

</div>

Appeasing the customer. They are insisting on a change even though they have backups of my screens operating perfectly on their plant floor right now (with multiple PLCs)

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [August 7, 2024, 6:16pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/31 "2024-08-07T18:16:41Z")

</div>

> [@Josh\_Allen](#):
>
> it was pointed out that this is their standard and cost efficient to them.

Not for 7 HMIs, I'm thinking.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 7, 2024, 6:35pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/32 "2024-08-07T18:35:51Z")

</div>

@JordanCClark we will chalk it up to creative differences on "standards"

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [August 7, 2024, 6:49pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/33 "2024-08-07T18:49:37Z")

</div>

I don't think changing a PLC task will make any difference in HMI comms with the L8x series of processors, as communications is now run on a separate core from the Logic, so this was most likely just coincidence. Are all 7 HMIs talking to the same number of tags, or is each gateway talking to only the tags it needs? When you mention PP, are you talking PlantPAx? If so, delete any tags out of your UDTs that you don't need on the HMI.

As others have suggested, if you can't limit each station to only the tags they need, then you'll be better off with Ignition Standard edition, so there's only a single gateway collecting the data and each PC is a client off of that main gateway. If you don't have the PLC's web page enabled, I highly suggest it, as you can go to its IP in your browser and look at your tasks page. It will show you how much communications is loaded (my guess is 100%). If switching over to a central gateway and you're still overloaded, then you'll need to look at Phil's driver to improve comms and possibly "tweaking" the AOIs to make sure all parameters/local tags are set to at least read-only.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 8, 2024, 2:16pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/34 "2024-08-08T14:16:08Z")

</div>

I have the HMIs in 2 configurations. The first one was with each HMI looking at the same amount of tags which is roughly 200K. The second was that each HMI looks specifically at the operator station within line of site, which trimmed down the tags to around 90K. What I found was that regardless of the number of tags, the HMIs overload at the same position when the robots are interacting with the fixtures and running through their sequences. When I say PP, I mean part present sensors. We initially had latency issues with them which is where the leased tag group was introduced, and the issue has since compounded from there. @Kevin.Herron doubling back to the CIP connect of 7 HMIs x 12 = 94 CIP Connections, where is that 12 multiplier coming from?

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [August 8, 2024, 2:31pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/35 "2024-08-08T14:31:38Z")

</div>

Do you really need all of those tags? I have an entire gas plant I programmed and I'm only using about 41k tags for the entire plant. My bigger plants are around 90k but spread between multiple PLCs. I don't know your use-case, but it sounds to me like you have way more tags subscribed to than necessary. If you do need that number of tags, then check your UDT scan groups and make sure you're not polling tags faster than necessary.

Kevin's number came from you saying that you increased the connection count from 2 to 12.

> [@Josh\_Allen](#):
>
> Each of the 7 HMIs were still experiencing overloads of between 200%-400% so we changed the max concurrent requests to 12 starting on 2 of the 7 HMIs.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 8, 2024, 2:40pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/36 "2024-08-08T14:40:15Z")

</div>

> [@Josh\_Allen](#):
>
> where is that 12 multiplier coming from?

It's whatever value you have in the "Concurrent Requests" setting. It's 2 by default.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 8, 2024, 3:14pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/37 "2024-08-08T15:14:42Z")

</div>

I wish we didnt't need all of those tags, that is the absolute minimum that we can use per hmi to ensure functionality. The bulk of them come from large arrays that the tags are using as a parameter for the tag path. Ideally, we would get away from these since 70% of the array is not being used. However, that would entail changing their standard PLC program and HMI which is non-negotiable. When I first received the project I was looking at around 370K for 7 robots and 14 operator stations.

---

<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:** [August 8, 2024, 3:17pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/38 "2024-08-08T15:17:02Z")

</div>

> [@Josh\_Allen](#):
>
> The bulk of them come from large arrays that the tags are using as a parameter for the tag path. Ideally, we would get away from these since 70% of the array is not being used.

Explain in more detail, please. Maybe these shouldn't be subscribed tags at all.

Show the architecture of these arrays and describe how the HMI uses them.

---

<div class="post-metadata">

**Author:** ![Josh\_Allen](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/josh_allen/32/60694_2.png) [@Josh\_Allen](https://forum.inductiveautomation.com/u/Josh_Allen)\
**Post date:** [August 8, 2024, 3:36pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/39 "2024-08-08T15:36:42Z")

</div>

![op](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/5/85badf7ddc8ed186dfb02eabcefc5f48820e69a9.png)

This is an example of the UDT for what will be Op[1]. Then in ignition we utilize for following tag path.

 ![ignition op](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/b/7b29195f73afec63d60f855b0ff222b118524049.png)

Op[_] is used for everything that goes into the status of the operation station as well the main sequencer. Each op station has between 4-6 sequences which jump back and forth between op[_] and rbt[\*] through multiple AOI based on where it is in the cycle. Initially was 1 linear op index but has been broken up into multiple for whatever reason.

Sidenote: I'm working remotely so it is not connected to the PLC time of presentation.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [August 8, 2024, 4:55pm UTC](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073/40 "2024-08-08T16:55:38Z")

</div>

So I think what @pturmel is asking is how are the tags actually used. Like do these values change constantly? Are any of them just settings that only get changed by an operator while he's adjusting things? Is anything historized? What speed are all your different scan groups and what's direct/leased? Any settings changes that are HMI driven can be on slower scan groups and set to leased with a rate of 0ms and a slow rate (like 2000-5000ms) for the leased rate (and hopefully they're all grouped together in a UDT for optimization). Any alarm or historized values should be set to direct with the desired rate you want alarms or history to be collected, or if it's something being historized or alarmed that only needs to be collected every 5 seconds, but when displayed on the screen you want it to update at a 1 second rate, then set the scan group to 5000ms with a 1000ms leased rate.

Your/their UDT is fairly large at 5,420 bytes per UDT (how many instances of this are there?)

I feel like your Ignition parameters could be simplified also by having and OpId tag or something that is an integer that gets used by all the other item paths on tags rather than manually specifying all of those unique parameter values, but maybe it's because Op10 is linking to arrayIndex 1, but even then you could use 2 parameters instead of a dozen or more.

[Previous page](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073.md?page=1)

[Next page](https://forum.inductiveautomation.com/t/massive-latency-issues-on-hmi/94073.md?page=3)
