新聞中心

        EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > LabVIEW關(guān)于定時的研究

        LabVIEW關(guān)于定時的研究

        作者: 時間:2012-09-07 來源:網(wǎng)絡(luò) 收藏

        二.Wait Until Next ms Multiple


        要比較好的解釋這個vi,需要知道系統(tǒng)(至少Windows里有)中有一個millisecond timer這樣一個計時器,這個vi跟這個計時器有著千絲萬縷的關(guān)系。
        簡單來說,這個vi將一直等到ms timer得到輸入值的整數(shù)倍才結(jié)束,通過下面的example,將會更好的理解(Wait Until Demo 1.vi)。程序中,首先輸入50ms給Wait Until,計算第一次Wait Until花的時間,再輸入50ms,同樣地計算出第二次Wait Until花的時間。

        運行完程序后,得到大致下面的結(jié)果:

        每次運行的結(jié)果都不相同,但是可以看到,第一次Wait Until所花的時間總不是50ms,而第二次花的時間肯定是50ms,并且Timer Value兩次一般都是50ms的倍數(shù);出現(xiàn)這樣的情況是這樣來解釋:首先,在程序運行的時候,系統(tǒng)的Timer值并不會正好是50的倍數(shù),假設(shè)為10450935,那么程序在運行了15ms后Timer達到10450950(50的倍數(shù))從而結(jié)束第一個Wait Until;在之后又進入第二個Wait Until,在達到后一個50的倍數(shù)(10451000)后完成。
        因此,如果將Wait Until并行地放在While循環(huán)中時,可能會出現(xiàn)兩個問題,首先是它的第一次的周期就是不確定的。如下面的例子(Wait Until Parallel Demo 1.vi):

        將按鈕調(diào)在Wait Until和Wait,運行程序后,得到下面的對比結(jié)果:

        可以看到,在用Wait Until時,第一次(即第二個值)都達不到20ms,但用Wait時,第一次就能保證在20ms,這是由于程序剛開始時Timer值不是整數(shù)倍導(dǎo)致。
        用Wait Until Next ms Multiple.vi的第二個問題見下面的鏈接,講得也很清楚了:http://zone.ni.com/devzone/cda/tut/p/id/4120
        最后再看一個例子,當(dāng)Wait Until放在順序模式中時,大致可以起到Wait的并行模式的作用,但是在代碼時間超過設(shè)定值時,兩者還是有著很大的區(qū)別。

        當(dāng)將Loop Num設(shè)大后,代碼執(zhí)行時間超過了20ms,此時得到的結(jié)果如下圖,執(zhí)行周期達到了40ms,這也證明了一旦代碼時間超過設(shè)定值后,Wait Until就會一直等到下一個設(shè)定值的整數(shù)倍才能結(jié)束。


        上一頁 1 2 下一頁

        關(guān)鍵詞: LabVIEW 定時

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 文水县| 姜堰市| 新郑市| 南和县| 北票市| 山阳县| 洪泽县| 且末县| 汉川市| 香港 | 年辖:市辖区| 翼城县| 红原县| 西盟| 海淀区| 四子王旗| 白玉县| 海南省| 凤凰县| 紫阳县| 台南市| 秦安县| 伊宁市| 西昌市| 襄城县| 新安县| 湘阴县| 阿拉善右旗| 乐昌市| 万荣县| 连山| 龙岩市| 和龙市| 合水县| 儋州市| 河北区| 松阳县| 华容县| 华蓥市| 大港区| 绍兴县|