I have a problem whereby tags are going stale.
Ignition version 8.0.15
I’m still not sure that it isn’t a network problem, but I am unsure as to how to diagnose the Ignition system to check its usage.
I have six clients currently connected and since the last two were brought online tags have been going stale. I restart them and they are fine for a few minutes, then I lose them again.
Then when I check the others, the problem occurs on all Clients. This is not specific to one or two machines.
I have deleted pretty much everything out of the designer projects except some buttons, lamps and a string message display.
I am using indirect addressing for most of the tags.
I use a client script event on startup to verify the IP and set the machine number.
I set a client tag on page opened event to set a pathtag variable which is used for indirect addressing.
Nothing seems to be too taxing.
Single Rockwell L84S PLC with a dedicated Ethernet connection for the Clients.
Clients are Cincoze Windows 10 machines.
All brand new equipment.
The tags stay stale and I have to restart the client application to regain a connection.
I am currently using one default tag provider, but was looking into creating one tag provider per project (2-4 Clients). Will this be a help?
I am stuck for an answer.
Can someone give any pointers?
If you want anyone to make suggestions you will probably have to provide more information? Little things like what kind of tags? If OPC tags, what kinds of devices? What type of tag group they use? Does it happen when something specific is happening or all the time? Do they stay stale or come back on their own? With the forum, more information is better. If you don’t give enough to give someone a place to start, you probably won’t get any replies that help figure it out.
I’m assuming your talking two different things. I’m also assuming your talking Vision. Your talking stale tags but when you mention using indirect tagging, I’m assuming you talking tag binding.
When I’m looking at what you described, I think you may be making some parts of it more complicated than you need to. You mentioned doing a startup script to verify your IP and set a machine number and then setting a client tag as each page is opened. You can do a client tag as an expression using the system client/network/ipaddress tag to find your IP address in an expression. Then you can use a case in the expression to set your machine number. It would be something like:
Doing it this way takes out the startup script that you would have to test by starting clients. Then you can test your screens in the designer to see if they are having the same issue.
When your talking stale tags. Are they stale when you look at them in the designer or only on the client? If they are working in the designer but not on the client then there is something wrong with how they are bound to whatever your displaying. If they are stale in the designer, does your device have a fault? Are you seeing any errors in your log? With your setup right now, if you go into the diagnostics for the client, are you seeing any error?
Your assumptions are correct.
Vision and tag binding.
The gateway connects to one PLC and multiple Client PCs used as HMI screens.
The HMI PCs do not run any software other than as ignition clients.
I am doing what you described above for startup.
The Client startup script sets a ScreenNum tag. This identifies which panel the Operator is at. There is a reason for this, but I won’t bore you.
In addition to this, a tag is set on a vision window opened event as a second reference.
This is a secondary tag binding reference as there are common buttons and lamps etc. on every screen. This simply creates an indirect reference e.g. Tool1, Tool2 etc.
My question is two fold I guess.
Is any of this incorrect or in some way contributing to the problem I am experiencing?
What, where and how do I look for what may be causing my stale tags?
I am sure there is a whole host of other information I still need to provide, but am unsure as to where to look.
I think your trying to do something similar to what I have for one project. I have 16 lines running on one project all using the same screens. The reason I lean away from the startup script is if the script fails, you may not see it unless you check the diagnostic logs on your individual client. Thats why I like doing it through an expression in a client tag. By doing it that way, I also set up a separate memory tag with a test line number for when I’m in the designer. The -1 at the end of my case is linked to that test tag so I can vary which line I’m looking at while building and testing the screens. Doing it through a startup script, I can’t do that.
How are you testing it in the designer to make sure your indirect bindings are working? Are any of your tags stale in the designer or only an issue on the client?
I’m not sure what your trying to do with the secondary reference part. I would assume you would still do these connections through an indirect binding. I’m not sure what you would gain by doing it through a vision window opened event.
One of the biggest question is when tags are stale on your client, are the stale in the designer. If they are good in the designer then it has to do with how your binding the tags. You also need to look at the client diagnostics log. When the tags go stale, I would assume your getting some kind of error or if one of your scripts is failing, I would expect an entry.
When I’m testing I set the terminal number to 0.
It works with the PLC code I have, so I know it will work for all.
Plus I always bench test with a real HMI screen to try to find any additional problems (normally hardware), like I have been recently.
I didn’t really like the idea of the startup script, for the same reasons you mentioned, so changing that shouldn’t be a big deal.
Secondary reference is for each part of the machine. e.g. Tool{page}.faulttag
So as I change pages the reference to the tags change for common items like mode control and status. I’m not a fan of this either. For exactly the same reasons as startup.
I know the tags are good in designer and are/were good in the clients until recently.
They start up fine and just go stale after a few minutes.
I see no issues in Designer.
I know the scripts are good, because I tested them.
The tags go stale with absolutely no interaction whatsoever.
I think the diagnostics logs are the next place to look. Something has to cause them to lose it. I would assume it should be there. I’m assuming the secondary references are custom properties, you could also add property change scripts looking at these and add print statements so you can see when and how they change. If something else is changing them some how, it may help point you in the right direction.
We are on 8.0.16 and still experiencing a bug that can cause persistent red overlays on items bound to tags in clients after a connection loss. Usually they clear, but sometimes they do not and restarting the client resolves them. Before some recent fixes, the problem was more consistent; now it happens less often. You’d have to check the change logs, but some related fixes may be in 8.0.16 if you can upgrade.