Overload with leased tags

I'm trying to figure out why my Ignition app is struggling with leased tags so much. The PLC I'm connecting to is a Control Logix 1756-L84ES running firmware version 36.

As of right now, my leased tags are running at two rates: 250ms and 1000ms. The 250ms rate is just for the I/O display views. I wanted them fast to aid in troubleshooting. Most other tags are leased with a 10,000ms base rate and a 1,000ms leased rate. I have ~120 Direct tags at 1,000ms. Those are just alarm tags.

When I go to Status> Devices on the gateway web page, my direct tags are 0% overloaded. My 250ms leased tags are, as of right now, around 500% overloaded, and my 1000ms leased tags are about 120% overloaded. The fast group was around 1000%, but I was able to improve on that. Here's everything I've tried:

  1. Two device connections to the PLC, one for leased tags and one for direct tags.
  2. Separate leased tag groups. I have 11 Fast and 11 Slow tag groups. Most of the Fast Tag groups have 72 tags. Most of the Slow tag groups have 8,410 tags. The only exceptions have fewer tags. Only 6 of these leased tag groups have enabled tags right now. We're in the testing phase, and we only have 3 "sections" active. So only 6 of those 22 leased groups has any enabled tags.
  3. Ensured no enabled tags are bad. All enabled tags are working.
  4. Increased the number of allowed simultaneous connections from 2 to 8. This showed the most improvement, but increasing this number has diminishing returns. Increasing beyond 8 shows no improvement.

As it sits right now, my leased tags when sampling at 250ms (I bring up a view that I know has these fast tags on it) show around 500% overload with a request count of 2. My 1000ms leased tags show an overload of 120% still, with a request count around 450-500.

Sounds like you have too many tags at once trying to be polled. You need to study the topics here about Logix optimization. Start here, read the whole thing:

As you read, open tabs for all of the related topics that are linked from it. In your other topic, you mentioned still being in development. Many of the problems can be fixed by restructuring your PLC data. You may need to do that.

While there is no magic wand, the closest thing to a magic wand for many cases is to switch to my alternate EtherNet/IP driver.

/shameless plug.

Increase the CIP connection size to 4000 as well. You may want to try various connection sizes again after changing this.

Ultimately, though, it's as Phil said... you are requesting more data at faster rates than the PLC is able to serve up. Some of this may be due how tags are being read - if you are using AOIs the Ignition driver cannot read those efficiently. (many more details available in the linked material).

Go to the PLC's status page in a browser and find the Tasks tab and look at the comms usage.

1 Like

I looked at this and my utilization is very high:


This is even after I slowed my comm rate down to 1000ms fast/2500ms slow

You have a bunch of PLC restructuring ahead of you, I suspect. (But run my alternate driver in trial mode, just to see if the magic wand helps you...)

Unfortunately while I do have input on the PLC development, I'm not in charge of it. And we're getting late in the development phase, FAT is approaching, so magic wand might be the way to go.

I saw some of your support screenshots. The request-to-tag ratio is pretty high.

You must be using a lot of AOIs? God help you if they are PlantPAX.

1 Like

Try Phil's driver, try FactoryTalk Linx or whatever it's called if you already have it.

We are using AOIs, but they are passing data in and out of separate UDTs. I'm not directly accessing any AOIs.

Unfortunately "don't use AOIs" is not an option, here.

Are your UDTs organized? Where the booleans are all grouped together in the UDT?

I'm attempting to use Phil's driver, but I'm not sure how to set it up yet.

Ask your PLC people to verify that every single UDT member and every single AOI parameter and local tag is set to External Access "Read/Write" or "Read Only". Have them change any "None" to "Read Only".

I have a copy of the program. I'll check into it.

Disable the Logix driver instance. Rename that one to something else, temporarily.

Wait ten seconds or so. (2x your slowest tag group, if larger.)

Create a new instance of my "EtherNet/IP Generic Client" with the original name of the Logix driver instance, and the IP address of your L8x. Take the rest of the defaults, except set the concurrent requests to the same as you were using on the Logix driver.

Let it settle for about a minute. Recheck your PLC's class 3 message load.

So far I'm looking and I don't see a single tag anywhere with External Access as None. Everything is Read/Write or Read Only.

When looking for External Access issues, make sure you exported to L5X without encoding protected resources.

The PLC's message load didn't really change. Still nearly 100%.

The only improvement I saw was in the 250ms scan. It went from being around 200% load to 2%. The 1000ms scan didn't change.

One question I have.

I have two devices set up in my project now. One for direct tags, one for leased.

Would it be any advantage to have more than that?

No, not really. You're trying to squeeze water from a stone here.

Your problem doesn't even have anything to do with leasing, really. Leasing is a strategy that you use to help lower the load, it's not the cause of it.

In most cases, the PLC's messaging load will stay pegged close to 100% until none of your tag groups are overloaded.

That your 250ms group improved indicates that my driver is making a big difference. Just not enough of a difference.

The next thing I'd check is whether you are addressing any alias tags from Ignition. Have those point at the base tag for another bump that doesn't require any PLC change.