Hello everyone, I'm experiencing issues with tag response times in an Ignition application.
This project is currently set up with a Scale-Out architecture, consisting of a Front-End server and two Back-End servers connected to the PLCs.
We've been seeing recurring issues with slow tag writes.
The project is currently configured with a Scale-Out architecture, with one Front-End server and two Back-End servers that handle the PLC connections. All tags read from the PLCs are created as OPC tags on the Back-End servers, and are then referenced from the Front-End.
For example, in the image you can see, I have a control module based on the ISA-88 standard. When switching from Automatic mode to Assisted Manual mode, it takes around 30 to 35 seconds for the system to respond.
I've checked the communication and response times between servers, and haven't found any bottlenecks there. Other actions in the system work as expected, but this specific tag write delay keeps recurring.
Has anyone experienced something similar or have suggestions on what I could check to improve tag write performance?
I will assume that the measured time is from the time the command is sent and the handshake response.
Test 1:
Send the command straight from the remote tag provider tree at the designer (on the frontend) ignoring the window:
Measure the time and share_______
Test 2:
Send the command straight from the local tag provider also from the tag tree at the designer (on the backend)
Measure the time and share_______
Test 3:
Send the command straight from your PLC
Measure the time and share_______
Test 4:
Create a dummy memory tag at the backend and send a command from the frontend. Is the new value immediately showing on the backend?
Measure the time and share_______
Also, what are your tag group settings for this particular tag (both in the UDT which I assume you're using, and the tag itself - check just to be sure no one overrode the tag group on this specific tag).
I would be checking your device stats on the backend gw for the devices in question from where your tags are coming from, as well as the tag group settings they're part of in the backend gw(as already mentioned). If your PLC is overloaded, then this could well be the reason you're not seeing fast tag updates. This is under Status -> Connection: Devices. Then click on your device's Details.
Tags in remote tag providers are read directly from the remote tag provider, not through the local tag provider, so the tag group that matters is the remote tag provider's tag groups where that tag is the local tag.
Remote tags get all of there information from the backend. Even if you were to say create a reference tag on the front end that was in a leased tag group, and reference a remote tag, I'm not sure you would really be saving the front end that much overhead. And you certainly wouldn't be removing any load from the device, which I believe is the intent of Leased Tags.
The tag group that matters is the tag group on the same provider that the OPC tag exists in. When you use a remote tag provider, and if you have write access to the remote tag provider and you change a tag group on a tag, it's changing it on that remote tag provider. In this case, it's the backend gateway. Changes made to a remote tag provider are not local to the current/local gateway. The only question would be how reference tags work, but I believe they don't even use tag groups as the tag groups are really for OPC tags more than anything.
Derived tags don't use tag groups, but you still need a tag group for tags in the frontend (you can't just leave it blank). It doesn't hurt to have them, as they don't do anything if they're not used. But you could just keep the default ones that come as part of your local realtime tag provider.
Tag Groups are attached to a tag provider. Each tag provider has its own defined Tag Groups. So the answer is a big no to this question; as Phil said, deleting Tag Groups will delete them from the associated tag provider. A "Remote" tag provider is just a reference to the source. Deleting from the reference will delete it from the source (similarly, deleting tags from a remote tag provider connection will delete them from the source)
I think in my response, I was misunderstanding what he was asking due to how he was using terminology like remote tag provider rather than saying the local tag provider on the front end, but hopefully your explanation clears it up for him. I have a feeling he's getting confused on how the tag providers work and maybe he was thinking that a remote tag provider is a "copy" of the tag provider from the remote gateway, when in reality it's a direct reference and that there's only a single source of "truth" for each tag provider and that modifying a tag provider anywhere modifies that source tag provider no matter whether it's local to the gateway or remote.