labview中的的幾種定時(shí)器

發(fā)布時(shí)間:2011-11-29 14:22    發(fā)布者:滿(mǎn)天星的愿望
關(guān)鍵詞: LabVIEW , 定時(shí)器
LABVIEW提供了幾種定時(shí)器(包括DELAY),如下圖所示



首先看看Tick Count 節點(diǎn)的幫助說(shuō)明:

返回毫秒定時(shí)器的值.

基準參考時(shí)間(0 毫秒)未定義,也就是說(shuō),不能把返回的毫秒數直接轉換成現實(shí)世界的時(shí)間和日期.必須注意當你使用這個(gè)函數進(jìn)行比較的時(shí)候,毫秒定時(shí)器達到2^32-1后反轉成0.

基準參考時(shí)間未定義,說(shuō)法比較模糊,難道會(huì )是個(gè)隨機數,那顯然不可能,如果是隨機數,那兩次調用TICK COUNT取得差值就不可能表示經(jīng)過(guò)的毫秒數.無(wú)論如何,必須有個(gè)時(shí)間的起點(diǎn).

API函數中也有一個(gè)類(lèi)似的函數:GetTickCount,該函數返回計算機啟動(dòng)以來(lái)經(jīng)過(guò)的毫秒數.在9X中,它讀取的是BIOS中保存的系統時(shí)鐘的滴答數,早期PC的ROM初始化Intel8259定時(shí)器芯片來(lái)產(chǎn)生硬件中斷08H。這個(gè)中斷有時(shí)稱(chēng)為"定時(shí)器滴答"中斷。中斷08H每隔54。925毫秒產(chǎn)生一次,或大約每秒18.2次。BIOS使用中斷08H更新存于BIOS數據區的"時(shí)間"值.這就是長(cháng)說(shuō)的55MS的由來(lái).對于NT操作系統,常規的說(shuō)法是能精確到10MS,也就是說(shuō)精度在1MS時(shí)是不精確的.

經(jīng)過(guò)實(shí)際測試,LABVIEW的TICK COUNT的返回值和API的返回值是一致的,也就是計算機啟動(dòng)以來(lái)經(jīng)過(guò)的毫秒數.

毫秒數達到2^32-1后反轉成0,可見(jiàn)它的數值形式是U32,最大值是2^32-1,大概相當于49.7天.對于一個(gè)連續運行的計算機,用這個(gè)節點(diǎn)進(jìn)行比較的時(shí)候,在連續運行49.7天后,該值自動(dòng)恢復到零,如果在這個(gè)時(shí)刻進(jìn)行比較,可能會(huì )出現錯誤的結果.

wait(ms)節點(diǎn)幫助文件中的解釋是這樣的.

等待指定的毫秒數并返回毫秒定時(shí)器的值(上面提到的計算機啟動(dòng)以來(lái)的毫秒數).如果WAIT (MS)連接0會(huì )強迫當前線(xiàn)程放棄控制權.

WAIT 0MS是一個(gè)相當重要的特點(diǎn),相當于VB 的DOEVENTS,CVI中的PROCESSSYTEMEVENTS,實(shí)際是歸還控制權給操作系統,來(lái)處理隊列中的其他消息,如果沒(méi)有消息需要處理,系統馬上把控制權交給這個(gè)線(xiàn)程,繼續運行.

這里有兩種情況,如果系統消息隊列中無(wú)需要處理的消息,立即返回,如果系統消息隊列中有消息需要處理,并且是一個(gè)耗時(shí)操作,無(wú)法預料LV線(xiàn)程何時(shí)再次取得控制權.我們比較LV是否加WAIT。埃停拥乃俣龋





實(shí)驗過(guò)程中未執行其它任何操作,避免了處理其他消息造成的影響.兩者之間,差距是驚人的.這也體現了LABVIEW的一個(gè)優(yōu)點(diǎn),對于一個(gè)傾向于硬件控制的編程軟件,它有著(zhù)極強的任務(wù)搶先能力.

在一個(gè)循環(huán)里多次并行執行WAIT,是累加時(shí)間,還是按最長(cháng)的執行那,實(shí)際上是異步的還是同步的問(wèn)題.我們做一下實(shí)驗.



可見(jiàn),這三個(gè)WAIT是同時(shí)執行的.

由于WAIT是基于線(xiàn)程的,一個(gè)循環(huán)里的WAIT不會(huì )影響同時(shí)運行的其它線(xiàn)程的運行.

看看WAIT UNTIL NEXT MS MULTIPULE(等待下一個(gè)毫秒的整數倍).

一直等到毫秒定時(shí)器變成指定時(shí)間的整數倍.可以用于在一個(gè)循環(huán)中調節循環(huán)的執行速率.但是第一次的循環(huán)周期可能比較短.可以直接連接0到這個(gè)節點(diǎn),強迫當前線(xiàn)程放棄控制權,歸還給CPU.

相比WAIT MS,這個(gè)節點(diǎn)在循環(huán)中更為常用,對于幾個(gè)采用相同參數的WAIT UNTIL NEXT MS MULTIPULE,可以實(shí)現不特別精確的同步.由于LABVIEW的循環(huán)的特點(diǎn),首次是立即執行的,所以第一次是不能保證同步的.如果必須要保證同步的話(huà),可以在循環(huán)中第一次執行空循環(huán)來(lái)避免這個(gè)問(wèn)題.

LABVIEEW EXPRESS中也提供了兩個(gè)快速VI,一個(gè)相當于WAIT MS,另一個(gè)可以實(shí)現非常復雜的定時(shí)功能.

我們先把TIME DELAY EXPRESS VI轉換成常規VI,跟蹤一下它是如何實(shí)現的.



進(jìn)一步跟蹤SUBTIMEDELAY



可見(jiàn),實(shí)際上還是調用的WAIT。停,不過(guò)是數據類(lèi)型換成的DOUBLE,表示秒數,同時(shí)增加了錯誤簇,有利于實(shí)現順序延時(shí)動(dòng)作.其他完全等同于DEALY。停樱

可能是在LV7.1后新增加了這個(gè)ELAPSED TIME快速節點(diǎn),這是一個(gè)非常有用的定時(shí)器.先介紹一個(gè)OPENG中提供的比較簡(jiǎn)單的定時(shí)器.



這是一個(gè)周期軟件定時(shí)器.可用于周期性地循環(huán)觸發(fā)事件.

看看它是如何實(shí)現的.

本文地址:http://selenalain.com/thread-83147-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
phy14 發(fā)表于 2012-2-5 20:43:58
學(xué)習了!
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页