02/12/2016
The Latest version of OPC UA Aggregate specifications has very inconsistent description of the Simple Bounding Value method
The definition and descriptions are totally not in sync.
Can any one explain me the differences between interpolated bounding values and simple bounding values preferably with some example data
Thanks & Regards
Samba
Hello Samba,
Thanks for posting your question here.
Could you provide us with an example of these conflicting statements. What would be helpful is if you could copy/paste the text while referring to the section where you found it, for example:
section: 5.6.7.8
text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
section: 6.7.8.9
text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
If there are mistakes in the specification then we will correct them via adding a Mantis issue.
Moderators-Specifications
Moderators-Companion
Moderators-Implementation
Moderators-Certification
Moderators-COM
02/24/2014
Samba,
As Nathan said if you can point out the section that are inconsistent please let us know.
There are a lot of examples in Annex A for all of the aggregates and section 3.1.8 describes interpolated bounding values while section 3.1.9 describes simple bounding values. The key difference between the two bounding value is how non-Good status values are treated.
In interpolated bounding they are not used in the calculation of the bound, a good status is found and then processed. There are a number of rules defined with regard to the resulting status and process, but the key is that a good status values are used.
In Simple Bounding a non-Good value can be the bound, the rules are much simpler.
If all of the values are Good then the two algorithms are the same.
What can add to the confusion is that the bound in either case can be computed using SteppedInterpolation or SlopedInterpolation (defined in 3.1.6 & 3.1.5 respectively).
Paul Hunkar - DSInteroperability
02/12/2016
OPC UA Part 13-Aggregates
Section 3.1.7
Simple Bounding Value uses the data points immediately before and after the boundary timestamps to estimate the bound even if these points are Bad
Section 3.1.9
simple bounding values bounding values determined by a calculation using the nearest value
Simple Bounding Values using SlopedInterpolation are calculated as follows:
- if any Raw value exists at the timestamp then it is the bounding value;
- find the first Raw value before timestamp;
- find the first Raw value after timestamp;
- if the value after the timestamp is Bad then the before value is the bounding value;
- draw a line between before value and after value;
- use point where the line crosses the timestamp as an estimate of the bounding value.
If a Raw value at the timestamp is Bad the StatusCode is Bad_NoData. If the value before the timestamp is Bad the StatusCode is Bad_NoData. If the value before the timestamp is Uncertain the StatusCode is Uncertain_DataSubNormal. If the value after the timestamp is Bad or Uncertain the StatusCode is Uncertain_DataSubNormal.
Questions:
1. The definition says consider bad sample also but the description talks about many rules - how to handle if adjacent samples are bad?
2.If the value after the timestamp is Bad then the before value is the bounding value.Why special handling of bad sample in this use case?
3. If a Raw value at the timestamp is Bad the StatusCode is Bad_NoData means we do not consider that sample as bounding value ?
or
we consider it as bounding value with the status code is Bad_NoData?
4. Bad_NoData means no data sample at all ? or A sample with valid time stamp having no value?
Moderators-Specifications
Moderators-Companion
Moderators-Implementation
Moderators-Certification
Moderators-COM
02/24/2014
Remember that in OPC UA a value that is Bad Status does not have a value. The definition describe what is to happen for Bad Status Values.
1) The description describes how to calculate the bounding value, values outside of what is needed for the bounding value do not apply.
2) The use case is for SlopedInterpolation - you can not draw a line (compute the slope), if one of the ends is bad and thus does not have a value. So the special cases describe what to do if one of the endpoints of the line is Bad Status.
3) The request was to include bounding values, so the Bad Status value is to be included as the bound. Each aggregate calculation describe what to do with Bad Status Values.
4) Bad_NoData means a valid timestamp, having a status of "Bad_NoData" and a value that is indeterminate (and should be ignored).
Paul Hunkar - DSInteroperability
1 Guest(s)