【发布时间】:2017-01-20 23:00:21
【问题描述】:
我们正在开发 Beckhoff TwinCAT3 中的数据记录应用程序。要获取我们当前使用 LTIME() 的时间,然后使用 C# 将其转换为 ms:
ulong valA = reader.ReadUInt64(); // this gets the LTIME
long ftime = (long)(valA / 100);
DateTime t = DateTime.FromFileTime(ftime);
return (t.ToUniversalTime().Ticks - 621355968000000000) / 10000;
一定有更好的方法。此外,我们发现此时间与计算机时间(任务栏中的时间)之间存在差异。
从计算机时钟获取自 1970 年(格林威治标准时间)以来的毫秒数的最佳方法是什么?
我看到NT_GetTime。看起来我们需要对结构进行数学运算
感谢您的任何指点。
【问题讨论】:
-
作为重要说明:特别是如果您的数据点之间的时间跨度需要非常准确,那么您如何解决 plc 上的时间很重要。 NT_GetTime 抖动/不太准确。见Infosys
标签: unix-timestamp twincat twincat-ads