View Issue Details

IDProjectCategoryView StatusLast Update
000616410000-013: AggregatesSpecpublic2021-12-07 18:24
ReporterSrinivasu Jitta Assigned ToRod Stein  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.05.02 RC1 
Summary0006164: Wrong statusCode in test data for DurationInStateNonZero/Historian_3
Description

The statusCode (TimeBasedStatusCode) calculation at
12:01:20.000 13000 UncertainDataSubNormal, Calculated, Partial is Wrong.

Instead, it should be
12:01:20.000 13000 Good, Calculated, Partial

Additional Information

Calculation:

Good duration = 13000
Bad duration = 3000
Total duration = 16000

5.4.3.2 StatusCode calculation
5.4.3.2.1 General
For any intervals containing regions where the StatusCodes are Bad, the total duration of all Bad regions is calculated and divided by the width of the interval. The resulting ratio is multiplied by 100 and compared to the PercentDataBad parameter. The StatusCode for the interval is Bad if the ratio is greater than or equal to the PercentDataBad parameter. For any interval which is not Bad, the total duration of all Good regions is then calculated and divided by the width of the interval. The resulting ratio is multiplied by 100 and compared to the PercentDataGood parameter. The StatusCode for the interval is Good if the ratio is greater than or equal to the PercentDataGood parameter.

==>> Do not satisfy above conditions

If for an interval neither ratio applies then that interval is Uncertain_DataSubNormal.

However,
4.2.1.2 AggregateConfigurationType
The PercentDataGood and PercentDataBad shall follow the following relationship PercentDataGood ≥ (100 – PercentDataBad). If they are equal the result of the PercentDataGood calculation is used.

TagsNo tags attached.
Commit Version

Activities

Srinivasu Jitta

2020-10-20 14:21

reporter   ~0013071

Spec:
OPC 10000-13 - UA Specification Part 13 - Aggregates Draft 1.05.2

Archie Miller

2020-11-09 22:21

administrator   ~0013131

Last edited: 2020-11-09 22:21

5.4.3.2.1 says that The width of an interval is the ProcessingInterval unless it is a partial interval (i.e. has the
Partial bit set). In these cases, the width is the time used when calculating the partial interval.

As a result, the stepped simple bound values of

12:01:20 (null) BadNoData
12:01:23 70 Good
12:01:26 80 Good
12:01:30 90 Good
12:01:36 (null) BadNoData

would result in durations of
3000 Bad
3000 Good
3000 Good
1 Good

Resulting in 3000 Bad and 7001 Good. This is consistent with the original tool. The final result should be

Timestamp Value StatusCode
12:01:20.000 7001 Good, Calculated, Partial

Rod Stein

2021-12-06 05:09

developer   ~0015455

Last edited: 2021-12-07 18:24

Fixed in Part 13 1.05 Draft 5

The calculations now follow the correct procedure to calculate with PercentDataGood and PercentDataBad.

No errata needed. This table was not in previous specifications.

Jim Luth

2021-12-07 18:24

administrator   ~0015483

Agreed to changes in Virtual F2F.

Issue History

Date Modified Username Field Change
2020-10-20 14:16 Srinivasu Jitta New Issue
2020-10-20 14:21 Srinivasu Jitta Note Added: 0013071
2020-11-09 22:21 Archie Miller Note Added: 0013131
2020-11-09 22:21 Archie Miller Note Edited: 0013131
2021-09-14 17:03 Jim Luth Assigned To => Rod Stein
2021-09-14 17:03 Jim Luth Status new => assigned
2021-12-06 05:09 Rod Stein Status assigned => resolved
2021-12-06 05:09 Rod Stein Resolution open => fixed
2021-12-06 05:09 Rod Stein Fixed in Version => 1.05
2021-12-06 05:09 Rod Stein Note Added: 0015455
2021-12-07 18:24 Jim Luth Note Edited: 0015455
2021-12-07 18:24 Jim Luth Status resolved => closed
2021-12-07 18:24 Jim Luth Fixed in Version 1.05 => 1.05.02 RC1
2021-12-07 18:24 Jim Luth Note Added: 0015483