为什么VxWorks设备不遵循新的DST规则?



主要软件:
主要软件版本: 8.2.1
主要软件修正版本: N/A
次要软件: LabWindows/CVI Add-ons>>LabVIEW/CVI Real-Time Module
硬件: CompactRIO>>Controllers>>cRIO-9012

问题: 有些时候,我的基于VxWorks的控制器(比如cRIO907X系列)时间会有一个小时的偏差,我应该怎么修正?

解答:
2007年改版之后,VxWorks设备并不支持最新的DST规则。也正是因为这样,这些设备同样不支持非DST设备和DST设备之间的自动同步——在MAX中这一个勾选框是禁用的。因此,VxWorks设备可能会在以下时间段报告错误的时间:三月上旬和四月上旬之间以及十月下旬和十一月上旬之间。这两个时间段确切的开始和结束时间点每一年都不一样,并且也不是所有地区都会有。您可以查询您当地官方的DST规则说明以获取更多信息。

这里有几个选项可供您尝试绕过这个问题:

附件中的文件夹包含了几个VI,可以用来检查控制器是否在DST中。当DST受到影响时,使用DST_Rule.vi来设置日期和时间,这个VI将把信息存储在RT目标上的一个配置文件里面。在你的RT程序中,使用isDST.vi来判断控制器当前是否处在DST中。如果控制器在DST中那么你就可以手动修正时间值。附件中提供的VI是在LabVIEW8.2中保存的。

另一种方法是使用Real-Time工具包中的RT Set Date and Time VI。使用这个VI来校正RT上的时间和当地服务器的时间是比较简单的。

以下链接给出了一个范例程序,可以用来获取并写入时间到实时设备中。


相关链接: Developer Zone Example: Getting/Setting the System Date/Time on CVS, PXI RT Targets
Developer Zone Example: Set Date and Time on PC, PXI, and PXI-RT Using Network Time Protocol (NTP) Server from NIST
KnowledgeBase 4M2H23LC: LabVIEW Real-Time Module 8.6 Readme
KnowledgeBase 4LRA4IQ0: What Operating System is my Real-Time Controller Running and Why?

附件:





报告日期: 07/16/2007
最近更新: 08/18/2015
文档编号: 4BFDL3XL