Reputation: 1
All,
I have written an OPC client in c# using Interop.OPCAutomation.dll and OPCDAAuto.dll. Data transfer is asynchronous ("by exception").
When I test the OPC client against Matrikon's simulation OPC server, the timestamps of values I am reading have non-zero milliseconds.
When I try reading values from Honeywell Experion's HWHsc.OPCServer, the millisecond part of the timestamps of all values is zero. Is it supposed to be like that or am I missing something ? The Events screen in Experion clearly shows non-zero milliseconds for the digital tags I'm trying to read.
Any help/pointers would be greatly appreciated.
siim
Upvotes: 0
Views: 762
Reputation: 65
It is supposed to be like that.
Time resolution is OPC Server specific and depends only on its implementation. In your case time resolution of HWHsc.OPCServer is 1 second. And Matrikon Simulation OPC Server provides 1 millisecond resolution for timestamps.
Even if DCS supports milliseconds in timestamps (what you see in Experion) OPC Server is allowed to round timestamp to seconds or whatever it wants. OPC Specification doesn't specify the exact time precision for Servers.
Think about any OPC Server as a set of rules how to convert DCS 'values' to OPC format. In your case the rule for timestamps is to throw away milliseconds.
I recommend you to check HWHsc.OPCServer documentation. It is possible that time resolution can be configured.
Upvotes: 1