Skip to main content
3-Newcomer
August 5, 2026

question regarding ServerTimestamp and SourceTimestamp

  • August 5, 2026
  • 1 reply
  • 23 views

Hi,

I have a question regarding ServerTimestamp and SourceTimestamp  from this post


Based on the OPC UA specification, if the device/PLC doesn't support hardware timestamping, shouldn't SourceTimestamp be null? However, on the client side, I noticed that SourceTimestamp is always equal to ServerTimestamp. Is there any documentation explaining why this happens?
 

Furthermore, when I issue a Read request for a tag whose value hasn't changed, SourceTimestamp is still constantly updated and identical to ServerTimestamp.
 

Any insights or references would be greatly appreciated!

    1 reply

    Support
    August 11, 2026

    Greetings ​@CC_14565443,

    Thank you for your question.

    According to the OPC UA specification, Source Timestamp represents the time assigned by the data source to a value, while Server Timestamp represents the time the OPC UA Server processed or returned the value. The specification states that Source Timestamp should reflect the timestamp applied by the data source and may be null if a source timestamp is not available.

    Why are Source Timestamp and Server Timestamp identical in KEPServerEX?

    In KEPServerEX, many PLC drivers do not receive a native hardware timestamp from the connected device. In these situations, KEPServerEX generates and manages timestamps itself. As a result, the timestamp associated with the data acquisition/update cycle is commonly used for both Source Timestamp and Server Timestamp, causing them to appear identical. This behaviour has been observed and discussed for Kepware implementations where no independent device-origin timestamp is available.

    Why does Source Timestamp change even when the tag value has not changed?

    KEPServerEX timestamps are tied to the server's acquisition and update processing. The timestamp reflects when the driver successfully detects and processes data updates, including value or quality changes. Kepware documentation and support responses indicate that timestamps are updated when the driver processes new information, including quality state transitions.

    If a client performs repeated Read operations, KEPServerEX may return a newly generated Data Value associated with its current acquisition/update cycle. Consequently, the returned Source Timestamp can be updated even when the underlying PLC value remains unchanged, particularly when the PLC does not provide its own timestamp.

    Regards,

    Mohit