"Wait (ms)" 和 "Wait Until Next ms Multiple" 的区别



主要软件: LabVIEW Development Systems>>Base Package
主要软件版本: 7.1
主要软件修正版本: N/A
次要软件: N/A

问题:
在LabVIEW中,"Wait (ms)" 和 "Wait Until Next ms Multiple" 两个vi有什么区别?

解答:
Wait (ms)
函数等待的是您指定的时间量。而对 Wait Until Next ms Multiple 函数而言,LabVIEW通过一个毫秒计数器来监测等待的时间量,等待会一直持续,直到您所指定的整数倍毫秒时间量。

可以考虑这样一种情况,以方便您来理解这两个函数的区别。假设您需要某个特殊任务每小时执行一次,您有两种方法供选择:

1.获取当前时间,并决定在60分钟后执行任务。

2.您可以决定在每小时的开始执行任务(12:00, 1:00, 等等)。

例如,如果完成该任务需要5分钟,而您使用第一种方法,在12:00开始这个任务,并在12:05结束。那么您接下来需要等待60分钟直到1:05,才开始再次执行并于1:10完成。然后您又需要再等60分钟,以此类推。随着时间的推移,您每次开始任务的时间也将随之变化,从小时的开始,慢慢变化到结束,并再次循环。这就是在LabVIEW中关于"wait" 函数的类推。

另一方面,如果您使用第二种方法,它不会关心任务是花5分钟还是15分钟来完成,任务开始的时间总是在每个小时的开始。需要注意的是,取决于您开始的时间,第一次的等待时间也许会相当短,这是因为系统时钟在您开始等待前已经开始计时了。所以,如果您于12:50开始您的第一个任务,那么很快,您将在1:00开始您的下一个任务。这就是在LabVIEW中关于"wait until next ms multiple"函数的类推。

注意: 作为LabVIEW 7的新特性,Time Delay 这个快速VI提供了一种定时执行的方式。该VI的功能和Wait (ms)类似,唯一的例外是它的输入是以秒为单位,而不是毫秒。

相关链接:
LabVIEW Support
Developer Zone Tutorial: Software Timed Loops using Wait (ms) and Wait Until Next ms Multiple
KnowledgeBase 2G27ANEW - "Wait Until Next ms Multiple" Function Does Not Wait Properly on First Loop Iteration


附件:





报告日期: 11/15/2006
最近更新: 02/02/2008
文档编号: 0EF854SG