OPC UA Connector Trend Advise Option
OPC UA Connector Trend Advise Option, such as in the UniInt interfaces
Just starting to roll out approx. 100 OPC UA Connectors over the next years, I'm faced with a data integrity issue.
We are using UPC UA 220.127.116.11 and found the following behavior:
As expected OPC UA Server only sends updates for values on change. That's how it works. But the Connector seems to just take those values and send them to the PI archive as is. Thinking about being able to reconstruct the evolution of a measurement, a more sophisticated data handling (like uniint exception handling) is a must to avoid wrong information ending up in the PI archive.
The Pump example: Think of a pump nor running for a year. Now the pump gets activated and the flow increases. Most likely not in ul/s steps. So when the first value send by the OPC UA Server is 10l/s the PI trend would show a slowly increasing flow for the entire past year. Asking the PI archive for a interpolated value within the last year would give you anything between not zero and 10 but should ofcourse return zero up to the point in time the pump was started. Switching to step = 1 like you would do for discrete values (e.g. Setpoint) is not option as it would mess up interpolation when it comes to data compression.
I understand this is a critical bug leading to data integrity issues and potential misinterpretation of data. The manual should highlight the behavior as it is far from how most of the other PI Interfaces work.
Trend Advise would be similar to the appearance of setting Step=1 when it comes to visualization, but is very different when it comes how close it is to reality. Trend advise is the only option to be able to make use of the pi data archive compression. The OPC Server ensures that a value is send if it is different from the previous value.
Right now you can use the UA connector to send numbers to the archive but not to collect valid information on your process. The issue is the same for high frequency data unless the value change faster that the scan rate. It only becomes less obvious. At the end it comes down to Nyquist sampling theorem.
Gabriel Verreault commented
There should be a way to better handle infrequently changing values, but Trend Advise should not be the implementation. Trend Advise is the same as changing the PI Point to STEP=ON. Trend Advise stores a value that would not have been actually read from the OPC UA Server and stores the last value right before - this does not only occur when there is a long period of time with no data, it happens for every event, meaning that in practical terms, it becomes a step tag.
James Jones commented
This is a must have for industries where trending is important, especially for CBM.
Mik Hegedus commented
This should be default behavior on all streaming functions.