The serverTimestampis used to reflect the time that the Serverreceived a Variablevalue or knew it to be accurate.

In the case of a bad or uncertain status, serverTimestampis used to reflect the time that the Serverreceived the status or that the Serverlast tried to recover from the bad or uncertain status.

In the case where the OPC UA Serversubscribes to a value from another OPC UA Server, each Serverapplies its own serverTimestamp. This is in contrast to the sourceTimestampin which only the originator of the data is allowed to apply the sourceTimestamp.

If the Serversubscribes to the value from another Serverevery ten seconds and the value changes, then the serverTimestampis updated each time a new value is received. If the value does not change, then new values will not be received on the Subscription. However, in the absence of errors, the receiving Serverapplies a new serverTimestampevery ten seconds because not receiving a value means that the value has not changed. Thus, the serverTimestampreflects the time at which the Serverknew the value to be accurate.

This concept also applies to OPC UA Serversthat receive values from exception-based data sources. For example, suppose that a Serveris receiving values from an exception-based device, and that

  1. the device is checking values every 0,5 seconds,
  2. the connection to the device is good,
  3. the device sent an update 3 minutes ago with a value of 1,234.

In this case, the Servervalue would be 1,234 and the serverTimestampwould be updated every 0,5 seconds after the receipt of the value.