I downloaded the latest version of ignition 8 yesterday.
Create a new project in ignition and connect it to a third part OPC UA server.(open62541 OPC UA server)
The tags on the third part OPC UA server are updated with 250 ms time interval periodically from 1 to 2, 3, 4, 5 …,99,100
When reading these tags from Ignition and select the historical logging to write the update value of tags into MySQL database through the tag setting of Ignition, 'even I set the mode to “on change” with minimal time interval to 100ms and the max sample interval to 250 ms, from both the UI tags display and MySQL database. I found that the tags in ignition UI and database are both updated with 1 seconds time interval, such as from 1 to 5, 9, 13, 17…
To catch each update value from 1 to 2, 3, 4, 5 on both Ignition UI and database.
I didn’t find any other place can set the time interval for OPC UA data subscription.
BTW, when I use UaExpert tool (a free OPC UA client) to connect the third part OPC UA server, it could catch 250 ms interval update of each OPC UA tags if I set the sample and publish time interval to less than 250 ms.
So how can I catch the short time interval update of each OPC UA tags from Igniton ?
BTW, Both the Ignition and the third part OPC UA server are running on the same machine.
In fact, I only saw the OPC sample time interval setting of the created tags when I clicked the right button of mouse with focused on the created tags, but it doesn’t work when I set it to 100 ms or 250 ms.
Where can I set the OPC rate of tag groups?
Is it the parent folder of the newly created tags?
I’ve set the tag group as the document. It can log the data update from the MySQL database when the third part OPC UA server update tags with 250 ms time interval.
But I found that it may still miss some data randomly.
Could you help to give some suggestion?
Is it the randomly data lost by “subscribe” method of OPC UA in ignition?
In fact, I’ve tested the third OPC UA server (tags update with 250ms) with UaExpert tool and it doesn’t have data loss in UaExpert for a long time.
Is there any performance info for the OPC UA client ability for the ignition?
My setting of tags are:
In Ignition Tag Editor->History
Set the Min Time Between Samples to 100 ms and Max Time Between Samples to 200 ms, the Sample Mode with “On change”.
For tag group Editor:
I set the Mode to Driven,
Rate to 50
Leased/Driven Rate to 50
Driving Comparison: Any_Change
OPC:
Data Mode Subscribed
Read After Write false
Optimistic Writes false
With those settings it is unlikely that we’re missing a value unless the server sends or skips one for some reason. You can turn the logger you find searching for DataValueConsumer to TRACE and see all the subscription value changes as they arrive at the UA client.
You may be encountering garbage collection delays–java’s “pause the world” behaviour can interfere with high speed recording. On your gateway web interface, navigate to “Status” => “System” => “Performance” and look at the Memory Trend. Underneath, you should see “Garbage Collectors: G1 Young Generation, G1 Old Generation”. (If not, search this forum for G1GC.) In the trend, look for a correlation between the falling edge of its sawtooth and missed records.
Okay… there’s 3 different people who have chimed in now so I’m not even sure who to respond to at this point.
At least in @Tong.Xie’s case it’s some good news, in that it’s not missed values from OPC. I don’t know if that’s a limitation or bug in the history system, but it seems to be storing only the most recent value when multiple values are received at the same time from the server. I’ll ask around…
I’m going to do some testing/sanity checking, but just looking over this, I feel like you’ve got things quite a bit over complicated, which may be creating problems.
“Any Change” + “Driven” means it ONLY executes at the time that whatever is driving it changes. I don’t know what you have that set to, but this seems very overly complicated. A bug fixed for 8.0.4 might have been causing this mode to fall back to “1 second default”, which might explain something, but even if it’s working as intended, it’s probably going to cause behavior you don’t expect in this case.
Min time=100 and max time=200… but your value is changing ever 250. This is definitely throwing unnecessary complexity into the mix. The fact that the timestamp in the db isn’t exactly the same as the timestamp in the opc log indicates it’s being manipulated somewhere, and it could be these settings.
It’s suspicious to me that the missed value comes after receiving the same value twice, so I’m going to look into that.
I’d recommend that you simplify these settings and see if it changes:
Direct tag group mode set to 50ms (I think the publishing interval is fine)
History: On Change, Discrete Deadband, Min Time Between = 0, Max Time Between = 0
After doing that, please post a similar comparison of db vs. opc logs. Thanks!
Thanks for your detail comments.
In fact, we want to know if ignition could capture all data change of third OPCUA server with 250 ms interval. So that’s why I use the “Any Change” + “Driven”.
With your recommend. I did below setting and test one OPC tag (which updated with 250 ms interval).
There is no data lost for 1 hours ( 3600*4 updated values) when logging the updated values in MySQL database. We will do similar with logging data to SQL Server to see if there is any data loss.
Hi all, (@pturmel , @Kevin.Herron ),
So what would be the workaround if Ignition OPC module does not record/register the updated values of the tags?
Thanks,
The OPC module doesn’t do recordings. The Tag Historian does. But you haven’t provided any information about your problem, if not hypothetical. If a real problem, post all the details you can. If hypothetical, please describe what you are trying to do. And in either case, it should be a new topic. Put a link to it here.