LabVIEWCompactRIO 開(kāi)發(fā)指南26 同步循環(huán)
LabVIEWCompactRIO?開(kāi)發(fā)指南26
同步循環(huán)
對(duì)于大多數(shù)控制和監(jiān)視應(yīng)用,代碼執(zhí)行的時(shí)間對(duì)于系統(tǒng)的性能和可靠性非常重要。在此電機(jī)控制示例中,有兩個(gè)不同的時(shí)鐘信號(hào):采樣時(shí)鐘和PID時(shí)鐘。這些是在應(yīng)用程序中生成的布爾信號(hào),用于在循環(huán)之間提供同步。可以在這些時(shí)鐘信號(hào)的上升沿或下降沿觸發(fā)。

圖5.6.具有兩個(gè)不同時(shí)鐘信號(hào)的電機(jī)控制
現(xiàn)在考慮用于監(jiān)測(cè)這些信號(hào)的LabVIEW?FPGA代碼,并在上升沿或下降沿觸發(fā)。
通?;诓紶枙r(shí)鐘信號(hào)觸發(fā)環(huán)的工作方式是:首先等待上升沿或下降沿發(fā)生,然后執(zhí)行要在觸發(fā)條件發(fā)生時(shí)運(yùn)行的LabVIEW?FPGA代碼。這通常是通過(guò)Sequence結(jié)構(gòu)實(shí)現(xiàn)的,該結(jié)構(gòu)使用第一幀等待觸發(fā)器,使用第二幀執(zhí)行觸發(fā)的代碼,如圖5.7所示。
上升沿觸發(fā):在這種情況下,正在尋找從False(或0)轉(zhuǎn)換為True(或1)的觸發(fā)信號(hào)。這是通過(guò)將值保存在移位寄存器中并使用GreaterThan?功能。(注意:True常量連接到迭代終端以初始化值,并避免在第一次迭代時(shí)提前觸發(fā))

圖5.7.上升沿觸發(fā)示例
下降沿觸發(fā)器:在這種情況下,使用a?Less?Than?函數(shù)來(lái)檢測(cè)從真(或1)到假(或0)的轉(zhuǎn)換。(注意:False常量連接到迭代終端以初始化值)

圖5.8.下降沿觸發(fā)示例
模擬電平觸發(fā):使用Greater?Than?函數(shù)檢測(cè)模擬信號(hào)何時(shí)大于模擬閾值電平,然后使用該函數(shù)的布爾輸出作為觸發(fā)信號(hào)。這種情況實(shí)際上是上升沿或下降沿檢測(cè)器,因?yàn)檎谑褂肗ot?Equal?函數(shù)來(lái)檢測(cè)任何轉(zhuǎn)換。

圖5.9.模擬電平觸發(fā)示例
現(xiàn)在檢查另一個(gè)常見(jiàn)的觸發(fā)用例:在觸發(fā)事件發(fā)生時(shí)鎖定信號(hào)的值。
提示:鎖存值
在這種情況下,使用上升沿觸發(fā)器將另一個(gè)環(huán)路的模擬輸入值鎖存到鎖存模擬輸入寄存器中。此值保持不變,直到下一個(gè)觸發(fā)事件發(fā)生。在此示例中,實(shí)際的模擬輸入操作發(fā)生在另一個(gè)循環(huán)中,使用局部變量在循環(huán)之間進(jìn)行通信。(注意:局部變量是在LabVIEW?FPGA中異步循環(huán)之間共享數(shù)據(jù)的好方法)

圖5.10.使用局部變量進(jìn)行環(huán)路之間的通信
?
需要說(shuō)明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開(kāi),其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個(gè)問(wèn)題就不用加微信咨詢了。有關(guān)LabVIEW編程、LabVIEW開(kāi)發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無(wú)法上傳,可去公司網(wǎng)站搜索下載。