A Historian collects values (data or Events) and provides long term storage of these values. Occasionally data that is collected is incorrect. It may be incorrect for many reasons, such as a failed sensor, or failed communication or even an out of calibration sensor. Sometimes the correct values are obtained from another source and the historical value will need to be updated. In many Historians, the act of updating a historical value needs to be tracked. This specification provides two aspects for tracking:

  • Recording the original value and information related to who made the change (see section 6.9 for HistoryUpdateDetails).
  • Generating an audit event describing the history edit action (see section 5.8).

Some Historians obtain data from other sources (for example not an OPC UA Subscription). This data may be from lab data analysis package or other off-line activities. This data is typically provided in bulk and with SourceTimestamps that are in the past. For this type of data, even though it may be inserted using an HistoryUpdateDetails service call, the Historian does not have to create a modification record for the initial insertion.

Modification of Events is different than modification of data, in that in a single event stream there may be many Events with the same Timestamp. Events need to be identified by their EventId. The EventId is generated as part of normal Event processing in a Server and is used to correlate actions related to the Event. For example, when an Alarm (which is represented by an Event) is acknowledged, the acknowledgement is related to the specific EventId that represent that event is time. A Historian that historizes Events shall store the EventId that it receives; Modification of Events shall not allow modification to EventIds.