Large number of tag reads are stale

I have a large number of tags in a PLC that get updated
at one time in the PLC. Then I want to tell Ignition to come
get all of them using a BOOLEAN tag in the PLC set to True.

Ignition 8.0.10
All tags are in the same tag group, at a rate of 1000ms
I have a gateway tag change event with the boolean tag in it.
When the event fires and I see that the tag is TRUE, I write
all those tags to a database. That is all working just fine.

SOMETIMES the values of a few of the tags have “stale” data in them from the previous
time they were refreshed in the PLC a few minutes ago.
The PLC only refreshes the data every few minutes.

How can I know that the tags have the most recent data in them from the PLC?

In the gateway tag change event script, I want to be able
to somehow tell Ignition to refresh these tags.
THEN I will write them to the database.

So I was thinking in my gateway tag change event
to use: system.tag.requestGroupExecution()
However I don’t know if it is synchronous or not?

If it is asynchronous then it will not help me.
Any ideas?

The only way to do this for sure is to do the read in your tag change script using system.opc.readValues, not rely on tags.

1 Like

You can also use a SQL Bridge Transaction Group in OPC “Read” mode (having dragged the opc items to it, not tags), with the boolean as the trigger. In that mode, the transaction group will subscribe to the trigger, but not the rest. They will be read via OPC after the trigger fires.


I will use the system.opc.readValues ,

I was SUCCESSFUL using the system.opc.readValues.

no more STALE values.