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
答案 0 :(得分:1)
应该是这样的。
时间分辨率是OPC Server特定的,仅取决于其实现。在您的情况下, HWHsc.OPCServer 的时间分辨率为1秒。 Matrikon Simulation OPC Server 为时间戳提供1毫秒的分辨率。
即使DCS在时间戳中支持毫秒(您在 Experion 中看到的内容),OPC服务器也可以将时间戳舍入为秒或任何其想要的值。 OPC规范没有指定服务器的准确时间精度。
将任何OPC服务器视为一组规则,如何转换DCS'值'到OPC格式。在你的情况下,时间戳的规则是扔掉毫秒。
我建议您查看 HWHsc.OPCServer 文档。可以配置时间分辨率。