View Issue Details

IDProjectCategoryView StatusLast Update
000616610000-013: AggregatesSpecpublic2022-03-10 16:14
ReporterSrinivasu Jitta Assigned ToRod Stein  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
Summary0006166: Wrong value entries in test data for PercentGood/Historia_1 and Historian_2
Description

A.31 PercentGood
A.31.2 PercentGood data
Historian_1:
12:00:32.000 0 Good, Calculated
12:01:04.000 0 Good, Calculated

Instead, the values should be
12:00:32.000 50 Good, Calculated
12:01:04.000 100 Good, Calculated

Historian_2:
12:00:32.000 62.500 Good, Calculated
12:01:04.000 81.250 Good, Calculated
12:01:20.000 70.003 Good, Calculated, Partial

Instead, the values should be
12:00:32.000 43.75 Good, Calculated
12:01:04.000 50 Good, Calculated
12:01:20.000 43.75 Good, Calculated, Partial

Additional Information

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

TagsNo tags attached.
Commit Version

Activities

Rod Stein

2021-12-07 21:26

developer   ~0015492

Fixed in Part 13 Draft 5

Values in the aggregate were calculated incorrectly and have been corrected.

Rod Stein

2021-12-07 21:28

developer   ~0015493

Please check the calculations from the CTT. They differ from what I have and listed in this issue (for all historian examples).

Archie Miller

2022-01-04 22:22

administrator   ~0015670

Last edited: 2022-01-04 22:23

There are two things to keep in mind with these calculations -

  1. Uncertain data does not affect the calculations
    • 5.4.3.31 DurationGood - divides the interval into regions of Good and non-Good data.
    • 5.4.3.32 DurationBad - divides the interval into regions of Bad and non-Bad data.
  2. Intervals allow for durations of 1.
    5.4.2.4 Time calculation issues - If there is one data point in the Interval and it falls on the StartTime the time duration used in calculations is one unit of the time resolution of the Server.

PercentGood and DurationGood use SimpleBounds to determine Values for each interval

Historian One

12:00:32.000 Calculation

GetSimpleValues

  • Value = Data Value status UncertainDataSubNormal [0402] timestamp 2022-01-01 12:00:32 AM value 30
  • Value = Data Value status Bad timestamp 2022-01-01 12:00:40 AM value 40
  • Value = Data Value status BadNoData timestamp 2022-01-01 12:00:48 AM value (null)

Time Regions

  • Duration 8000 StartValue 30 EndValue 30 start time 12:00:32 AM status UncertainDataSubNormal [0402]
  • Duration 8000 StartValue 30 EndValue 30 start time 12:00:40 AM status Bad

DurationGood = 0
DurationBad = 8000

PercentGood = 0
PercentBad = 50

12:01:04.000 Calculation

GetSimpleValues

  • Value = Data Value status UncertainDataSubNormal [0402] timestamp 2022-01-01 12:01:04 AM value 64
  • Value = Data Value status Uncertain timestamp 2022-01-01 12:01:10 AM value 70
  • Value = Data Value status Good timestamp 2022-01-01 12:01:20 AM value 80

    Time Regions

  • Duration 6000 StartValue 64 EndValue 64 start time 12:01:04 AM status UncertainDataSubNormal [0402]
  • Duration 10000 StartValue 70 EndValue 70 start time 12:01:10 AM status Uncertain

DurationGood = 0
DurationBad = 0

PercentGood = 0
PercentBad = 0

12:01:20.000 Calculation

GetSimpleValues

  • Value = Data Value status Good timestamp 2022-01-01 12:01:20 AM value 80
  • Value = Data Value status Good timestamp 2022-01-01 12:01:30 AM value 90
  • Value = Data Value status BadNoData timestamp 2022-01-01 12:01:36 AM value (null)

Time Regions

  • Duration 10000 StartValue 80 EndValue 80 start time 12:01:20 AM status Good
  • Duration 1 StartValue 90 EndValue 90 start time 12:01:30 AM status Good

Last Raw value of 90 at 12:01:30 meets the criteria of If there is one data point in the Interval and it falls on the StartTime the time duration used in calculations is one unit of the time resolution of the Server.

DurationGood = 10001
DurationBad = 0

PercentGood = 100
PercentBad = 0

Both the Original test tool and the CTT follow these calculations.
If desired, more data can be provided for the remaining datasets, but this should be enough to provide a conversation about how to calculate these values.

Rod Stein

2022-03-09 02:03

developer   ~0016267

Recalculated values and original values are correct.

No change needed.

Jim Luth

2022-03-10 16:14

administrator   ~0016308

Agreed to no change required in VirtualF2F.

Issue History

Date Modified Username Field Change
2020-10-20 14:32 Srinivasu Jitta New Issue
2021-09-14 17:04 Jim Luth Assigned To => Archie Miller
2021-09-14 17:04 Jim Luth Status new => assigned
2021-12-07 21:26 Rod Stein Status assigned => resolved
2021-12-07 21:26 Rod Stein Resolution open => fixed
2021-12-07 21:26 Rod Stein Fixed in Version => 1.05
2021-12-07 21:26 Rod Stein Note Added: 0015492
2021-12-07 21:28 Rod Stein Status resolved => feedback
2021-12-07 21:28 Rod Stein Resolution fixed => reopened
2021-12-07 21:28 Rod Stein Note Added: 0015493
2021-12-07 21:28 Rod Stein Status feedback => new
2021-12-09 14:06 Jim Luth Status new => assigned
2022-01-04 22:22 Archie Miller Note Added: 0015670
2022-01-04 22:23 Archie Miller Note Edited: 0015670
2022-03-09 02:03 Rod Stein Assigned To Archie Miller => Rod Stein
2022-03-09 02:03 Rod Stein Status assigned => resolved
2022-03-09 02:03 Rod Stein Resolution reopened => no change required
2022-03-09 02:03 Rod Stein Note Added: 0016267
2022-03-10 16:14 Jim Luth Status resolved => closed
2022-03-10 16:14 Jim Luth Fixed in Version 1.05 =>
2022-03-10 16:14 Jim Luth Note Added: 0016308