These bits are set only when obtaining Aggregate data. They indicate where the data value came from and provide information that affects how the client uses the data value. Table 10 lists the bit settings which indicate the data location (i.e. is the value stored in the underlying data repository, or is the value the result of data aggregation). These bits are mutually exclusive.
StatusCode |
Description |
Raw |
A Raw data value. |
Calculated |
A data value which was calculated. |
Interpolated |
A data value which was interpolated. |
In the case where Interpolated data is requested, and there is an actual raw value for that timestamp, the Server should set the ‘Raw’ bit in the StatusCode of that value.
Table 11 lists the bit settings which indicate additional important information about the data values returned.
Table 11 – Additional information
StatusCode |
Description |
Partial |
A calculated value that is not based on a complete interval. See 5.3.3.2. |
Extra Data |
If a Server chooses to set this bit, it indicates that a Raw data value supersedes other data at the same timestamp. |
Multiple Values |
Multiple values match the Aggregate criteria (i.e. multiple minimum values or multiple worst quality at different timestamps within the same ProcessingInterval). |
The conditions under which these information bits are set depend on how the data has been requested and state of the underlying data repository.
Partial bit is used to indicate that the interval is not a complete interval and that a client may receive a different value for the Aggregate if it re-fetches the interval with the same parameters.
The Partial bit will be set in the following examples:
Assume for these examples the first stored point in the collection is 1:01:10 and the last stored point in the collection is 1:31:20. Older data may exist but is unavailable or offline at the time of the query. Newer data may be available but has not yet been stored in the history collection.
- The interval that overlaps the beginning of the history collection. If the start time is 1:00:00 and end time is 1:10:00 and the interval is 2 minutes then the first interval would have a Partial bit set since it has no data for the first 70 seconds. The Partial bit will always be set for the first interval with data if the start time of the interval is before the first data value of the data collection. For intervals prior to the interval with a Partial bit, these intervals will be flagged Bad_NoData.
- The interval that overlaps the latest point stored in the history collection. The last point in the collection is 1:31:20 and the historian was not shut down and is still running. A 6-minute interval that started at 1:30:00 would have the Partial bit set because the historian is expecting data, but just has not yet received anything. The Partial bit will always be set for the last interval with data if the end time of the interval is after the last data value stored in the data collection. Intervals entirely after the interval with a Partial bit will be flagged Bad_NoData. For those Aggregates with extrapolation, the Partial bit may be set. See the Aggregate specific characteristics for more details.
- If the start/end time does not result in an even interval and there is additional data beyond the end time then the last interval will have a Partial bit. If the start time is 1:00:00 and end time is 1:20:00 and the interval is 6 minutes then the last interval is just 2 minutes long and will have the Partial bit set. Extrapolation does not apply in this case.
The Partial bit may be set with the Calculated bit when the Calculated bit is always set for the specific Aggregate.