【LabVIEW】程序結構


(包括:while循環、For循環、事件結構、條件結構、公式節點)

1、while循環

LabVIEW 在執行While循環時,如果用戶沒有給它設定循環時間間隔,那么它將以CPU的極限速度運行。

按下Ctrl+Alt+Delete 快捷鍵打幵任務管理器,可以看到它幾乎將CPU全部利用, 正常情況這樣做比較危險,因為這樣可能會導致整個 LabVIEW 程序看上去跟“死 掉” 一樣。

在很多情況下我們沒有必要讓 While 循環 以最大的速度運行,所以最好給 While 循環 加上時間間隔。

有兩種方法:一種是在每個循環中添加一個等待時間,只有在等待完畢后才運行下一個循環。

另一種方法是使用定時循環(Timed Loop)。



2、事件結構

Labview 提供了事件結構,即僅當 “事件” 發生時,程序才作相應的響應。 通過事件結構,程序可以變得很簡單,並降低CPU利用率。當多個事件發生時會形成事件隊列, 直到每個事件對應的代碼都被執行為止,因此不會有事件被漏掉的情況。

注意:事件結構必須放在 While 循環中,否則沒有意義,因為當一個事件完成后,程序 需要去等下一個事件的發生。

在跟用戶進行交互的時候,盡量使用事件結構。

 

深入探索之如何使多個事件分支執行相同的功能:
https://www.eefocus.com/csxcs366/blog/11-06/225992_7293b.html

 



3、條件結構

(1)當條件結構有多個分支時,必須設置默認分支,否則程序無法執行。
(是條件結構不是層疊順序時)

(2)隧道

在條件結構一個分支的邊框上創建輸出隧道時,其他分支邊框上也會出現輸出隧道。只要有一個輸出隧道沒有連線,則條件結構每個分支邊框上的輸出的隧道都顯示為白色正方形。

隧道可使用數據類型的默認值,不是每個速調都必須連線。
在條件結構上右鍵單擊輸出隧道,從快捷菜單中選擇未連接時使用默認,這樣所有未連線的隧道都將使用隧道數據類型的默認值。


索引隧道,一個循環外的數組通過索引隧道連接到循環結構上,隧道在循環內一側會自動取出數組的元素,依順序每次循環取出一個元素。用索引隧道傳出數據,可以自動把循環內的數據組織成數組。

通過移位寄存器傳入傳出數據,也是數據的類型和值都不會發生變化。移位寄存器的特殊之處在於在循環結構兩端的接線端是強制使用同一內存的。

因此,上一次迭代執行產生的某一值,傳給移位寄存器右側的接線端,如果下一次迭代運行需要用到這個數據,從移位寄存器左側的接線端引出就可以。


移位寄存器如何創建:

點擊循環結構上的節點——右鍵——替換為移位寄存器

同樣在這里右鍵可以替換為隧道。 

 

問題:

條件結構存在錯誤:部分選擇器無對應分支

解決:
在所有分支都確認無誤的情況下,可能是沒有設置默認分支導致的,將一個分支設置為默認分支就好了。

 

4、層疊式順序結構

注:  只有連接到結構的數據到達結構,層疊式順序結構才開始運行。只有當所有幀執行完畢后,各個幀才會返回所連接的數據。

按照下列步驟,添加順序局部接線端,在層疊式順序結構的幀之間傳遞數據

    1、轉到傳出的數據所在的幀。
    2、右鍵單擊結構右側邊框,從快捷菜單中選擇添加順序局部變量。
    3、連接要傳遞的數據和順序局部變量。接線端上將出現一個向外的箭頭。
    4、在順序結構的幀中,將順序局部變量接線端連接到需從上一幀接收數據的任意接線端。其后的幀中的接線端將出現向內的箭頭,表示該接線端是該幀的數據源。

    注:  如幀位於與順序局部變量接線端相連的第一個幀之前,則該幀不可使用順序局部變量接線端。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM