With reference to Part 13: Aggregates OPC UA Specifications I have the following questions
- Why the end boundary sample is excluded while computing the simple aggregates like(Count, Minimum, Maximum, etc...?)
- The aggregate result is represented with the start time of the interval? Can we change it to end time of the interval? Is it a mandatory to represent result with start of the interval only?
- The section 18.104.22.168 (Standard Deviation Sample) recommends to consider Bounding values using Simple Bounding technique.
Why should we compute bounding values for the computation of Standard Deviation?
1) The boundary item needs to be include in only one calculation - i.e. I have a start time of 12:00:00 and an end time of 12:10:00 with 1 minute mins. Each minute has a range - 12:00:00 to 12:01:00, 12:01:00 to 12:02:00 ..... If a minimum occurred at 12:01:00 - you don't want it reported twice - it needs to be only in one of the ranges - so by definition the start bound is included the end is not included.
2) The aggregate definition defines what time is to be represented - MinumimActualTime returns the actual time of the minimum. The time that is to be displayed can not be changed from what is defined in the aggregate definition. The rule do describe how an aggregated behave if start and end time are switched (time is going forward or backward).
Paul Hunkar - DSInteroperability
The end boundary is always excluded from the data of the interval. The interval is always start time to the last possible unique time before the end time. The aggregates like Count, Minimum, etc. all use actual Raw data in the interval and no interpolation. Since the end time is outside the interval it will not be considered.
The aggregates are defined in the specification and cannot change. There is the option of reversing the start and end times so that the most recent time becomes the start time and it would be the time stamp of the aggregate. This has other ramifications and does not always calculate out to the same value as if it were not reversed (the start time included and end time not included can make a difference).
You are correct, bounds should not be calculated when calculating the standard deviation (or variance) aggregates. The examples should be correct, the tables 48 - 51 should have the Use Bounds table field as None. I will enter an issue in the OPC Foundation issue tracker.
The StandardDeviationSample Aggregate defined in Table 48 uses the formula:
where X is each Good raw value in the interval, Avg(X) is the average of the Good raw values, and n is the number of Good raw values in the interval.
With respect to the above section, I have the following observations
1. Only Good raw samples shall be processed. However the output of Historian 1 (Section A.35.2) has considered the uncertain data point for the below specified interval
Could you please justify this ambiguity?
Once again you are correct and this is an issue. The aggregate should only be calculated using good values and not uncertain values. I have entered an issue for this. This also stands for the variance aggregate for Historian1.