Table 23 defines the ReadAtTimeDetails structure.
Table 23 – ReadAtTimeDetails
|ReadAtTimeDetails||Structure||Specifies the details used to perform an “at time” history read.|
|reqTimes ||UtcTime||The entries define the specific timestamps for which values are to be read.|
|useSimpleBounds||Boolean||Use SimpleBounds to determine the value at the specific timestamp.|
The ReadAtTimeDetails structure reads the values and qualities from the history database for the specified timestamps for one or more HistoricalDataNodes. This function is intended to provide values to correlate with other values with a known timestamp. For example, a Client may need to read the values of sensors when lab samples were collected.
The order of the values and qualities returned shall match the order of the timestamps supplied in the request.
When no value exists for a specified timestamp, a value shall be Interpolated from the surrounding values to represent the value at the specified timestamp. The interpolation will follow the same rules as the standard Interpolated Aggregate as outlined inOPC 10000-13.
If the useSimpleBounds flag is True and Interpolation is required then simple bounding values will be used to calculate the data value. If useSimpleBounds is False and Interpolation is required then interpolated bounding values will be used to calculate the data value. SeeOPC 10000-13 for the definition of simple bounding values and interpolated bounding values.
If a value is found for the specified timestamp, then the Server will set the StatusCode InfoBits to be Raw. If the value is Interpolated from the surrounding values, then the Server will set the StatusCode InfoBits to be Interpolated.
If the read request is taking a long time to calculate then the Server may return zero results with a ContinuationPoint that allows the Server to resume the calculation on the next Client HistoryRead call.
If the requested TimestampsToReturn is not supported for a Node, then the operation shall return the Bad_TimestampNotSupported StatusCode.