Questions on how to avoid communication overload with a Siemens S7-1500 PLC

TL;DR: Tags overload on the S7 driver seem to oscillate at random, how to proceed to diagnose what's causing a device's communication to overload and how to best configure tags to avoid it.

Using the S71500 driver over the last week and a half i've been having issues where i set some tag groups at around 250ms to 450ms and things look great with an overload of around 10% max, the UI is really fast and responsive. Then the next day comes(or sometimes within an hour) and suddenly they're all at around 95%~200% overload, even when i raise their rate, eventually it happens again on the new slower rate so the rates don't seem to be directly correlated to it.
My main goal is to find the source of this rise of overload since it happens seemingly at random times and with all sample rates even when nothing changed on the gateway.
Down bellow i'll provide some more details on the gateway and the setup in general but my questions are:

  1. What can i do on the PLC side to alleviate this problem?

  2. What can i do to know if the cause of this is within ignition, PLC or the network in general?

  3. Currently the PLC is on a multiuser project being accessed by multiple people(at least 2 people, sometimes 4) and the gateway gets most of it's tags(~1500 tags) from the PLC's OPC UA server while the tags i need a faster response time(~250 tags) are coming through the S71500 driver. Could these things end up affecting the performance of the tags that come through the S7 driver?

  4. Is it better to have separate tag groups with slightly different sample times or group all of them
    together and let the driver figure out how to optimize them?

  5. Is is ok to pull tags from both the S7 driver and the PLC's OPC UA server or should i stick with one? Maintenance wishes to avoid having to pull new offset values from the PLC again if anything changes but i also need the better performance of the S7 driver since OPC was getting unbearable.

  6. Speaking of avoiding to pull offset values, i've had to open each DB on the PLC i wanted to get values from, copy it's table then throw it on a script to sort it out and convert the tag paths to the S7 driver's syntax, is there an easier way that i'm missing or this is it?

The gateway is running on a development PC, version 8.1.23.
All of the tag groups that contain tags that use this driver are configured like this, with the exception of their individual rates:


This all started because i noticed that on this project someone pulled all of the tags available on the PLC's OPC server to the tag provider and performance was horrible, so i started remapping everything and switching most of the tag group's Data Mode from Subscribed to Polled and started using more tag groups instead of throwing everything at "Default"; it improved performance a lot but since i knew soon a lot of new alarm tags would have to be created and the performance that still wasn't ideal, would get worse, I've started using the S7 driver.
To illustrate the problem, these screenshots were taken a few hours apart.

~8AM.


~11AM
The other tag groups that aren't shown in the screenshot were at around 90~110% overload.

When these overload happen, usually i see these messages on the driver's page:


I don't know their source but i know that their timing doesn't correlate exactly to when the overload happens, so they might be a coincidence and unrelated.

Any tips and resources to study would be appreciated, i hope there isn't any crucial information missing and thank you for your time.

I'm not a Siemens guy, so have no specific advice, but you should know that any non-zero overload value means you are not meeting your target polling rates. Having a PLC always in overload means there's no leeway to handle non-polling messages (like writes, or traffic from devices outside Ignition).

Sounds like you have a design flaw to me.

1 Like

Can you copy/paste the full stack trace you get after clicking "+" to expand one of those errors? Don't think it's related, but curious.

The tag group rates you're using are not doing anything but making it harder to absorb the diagnostic info. There is no practical difference, you should just put all the "fast" tags into one 450ms or 500ms group.

I don't know if there's any reason not to use both the S7 and OPC UA connection. Seems fine to me? :man_shrugging:

Are people online with the programming software at times when the polling slows down? It does look like it could be on the PLC side since the response times appear to slow down in your later screenshots.

1 Like

Thanks Phil. Terrible new for me then.

Yeah, it's starting to sound like it for me too unfortunately.

Here:

java.lang.NullPointerException: null

I'll change the tag group times as soon as production stops and i'll kick everyone out of the server and start testing to see if the overload values start dropping.
Thank you for you guy's inputs on this.

I'm talking about TIA Portal, not Ignition users.

Me too, they're using a multiuser project so there's multiple people online with TIA Portal.

Ok cool, just making sure we're on the same page. If it's like every other PLC programming package then being online with the controller can impact comms.

2 Likes

Makes sense judging by how TIA loves to throw that popup about PLC cycle time every time you try to monitor anything. Shoud've picked up on it earlier.

Was there any solution to this issue?

Just a generic solution: Don't do too much or too fast with a lame PLC. Any external comms puts load on the PLC, including use of PLC programming tools.

(That Siemens permits external comms load to affect cycle time in what is supposed to be a real-time industrial system simply boggles my mind.)

1 Like