请教这两个延时的区别,请大牛们指点呀
好像这两个都可以实现延时,并且同一框图内的其它函数都可以执行,开始以为其中某一
个会挂起从而阻止其它线程的执行,但试了一下好像都可以多线程同时运行,真不知道这
两个函数有什么区别(相信LabVIEW不会让两个功能完全相同的函数同时存在吧),有哪位
大牛知道吗,请不吝赐教呀哈哈,多谢了!^_^
这个我也不太理解,看到《LabVIEW图形编程》中如是说:
如果用户想让一个循环按照一个良好的规则时间间隔运行,所使用的
函数是Wait Until Next ms Multiple。只要将这个函数放入循环结构并将
其与一个比例范围为毫秒的数值相连接,这个函数会一直等待直到毫秒的
振荡计数成为用户提供的一个数值的精确的倍数为止。如果若干个VI需要同
步化,这个函数也会起到作用。例如,附件中左边两个VI可以强迫在两个非
常和谐相关的周期内运行,每隔200ms两个VI会同步运行,但右边的使用Wait
函数的VI只保证一定量的时间已经通过,可与绝对时间无关。
我的理解,大概是说Wait Until Next ms Multiple主要用于不同循环之
间的同步化方面,而Wait并不能保证不同循环之间的同步?
看到大部分example中的循环都是用Wait until next ms Multiple的,那
么Wait是否就可以被它取代了呢?
wait就是个等待。Wait Until Next ms Multiple有点类似绝对时钟。有可能是利用的系统
时钟。假设是个5ms吧。wait的意思是等5ms。而Wait Until Next ms Multiple的意思是每
当labview的系统时钟过5ms就结束一次。显然Wait Until Next ms Multiple可以用于同步
。但是在循环中的话,第一次循环的时候,Wait Until Next ms Multiple等到系统时间就
中断,未必是过了5ms的。这和wait概念是不同的。显然不能互相代替.都用Wait Until N
ext ms Multiple是不正确的。
非常感谢PhoenixTreeZ和Femto两位大牛的指点,现在对这两个延时理解透了呵呵。
哦,意思是wait until next ms multiple跟随系统时钟产生的节拍,而wait只简单地等待
指定的时间,若需不同循环间的同步化则用前者,若需控制精确的等待时间则用后者?
汗~不敢当,我也是对书吃不透,共同讨论,呵呵
我在while循环里一直用的是wait,因为每次循环的定时时间可能不一样,这样用好吗?这
样,可能每次的误差在1~3ms。现在我在某些循环里,又加入了别的VI同步运行,比如an
alog input。假设这次循环定时1S,采样率为20K,那我就设置采样20K点的数据,结果发
现这次循环的时间就增加了100~300ms左右(视采集的数据长短而定)。难道这样wait就
不能定时了吗?事件的优先级比它高吗?哪位大侠指点一下,我应该怎样作,才能在精确
定时的同步完成别的VI呢?