這篇我們將介紹 LabVIEW 的 Loop Tunnels。
在 LabVIEW,Loop Tunnel 是用來輸入資料到迴圈或者是取得迴圈輸出的一個功能。底下我們用個簡單的例子來介紹如何建立 Loop Tunnel。
我們來看底下這支程式,在這支程式 Block Diagram 上有一個 For Loop,而 Front Panel 上則有 Loop Count 和 Loop Iteration,Loop Count 的用途是讓使用者指定迴圈要執行的次數,而 Loop Iteration 則用來顯示迴圈目前已執行的次數:
記得 LabVIEW 的迴圈 index 是從 0 開始數起的。所以,如果我們把 Loop Count 設成 5,當我們按 Run 鈕執行這支程式,在 For Loop 執行完畢後,Loop Iteration 上就會顯示 4:
Loop Tunnels
現在我們在 Front Panel 上加一個 Numeric Control,幫它取名為 Input,我們會得到底下的結果:
我們把 Input 連接到 For Loop 的邊框上,然後,如下圖,你就會看到迴圈的邊框上就會產生一個 Terminal,在 LabVIEW 裏這個 Terminal 就叫 Loop Tunnel:
Input 這個 Loop Tunnel 可以輸入資料到迴圈,我們也可以讓迴圈透過 Loop Tunnel 輸出資料,所以假如我們像底下這樣把 Input 和 Loop Iteration 加總後,然後再將加總結果接到迴圈的邊框上:
這樣便建立了另一個 Loop Tunnel,這個 Loop Tunnel 會取得迴圈的輸出。由於輸出的 Loop Tunnel 預設是 enable indexing 會把輸出變成一個陣列,為了方便說明,我們先在 Loop Tunnel 上按右鍵並點選 Disable Indexing:
Disable Indexing 後,我們會看到 Loop Tunnel 的 Terminal 變成這樣:
接著我們在 Loop Tunnel 上按右鍵點選 Create Indicator,然後把 Indicator 取名為 Output:
我們把 Loop Count 設成 5:
由於 Input 是 0,當我們按 Run 鈕執行程式,在迴圈執行完畢後,我們會看到 Output 會是 4:
我們把 Input 改為 10:
現在再執行程式,就會看到 Ouput 結果為 14:
Enable Indexing
現在我們在 Loop Tunnel 上按右鍵點選 Enable Indexing:
我們會看到 Loop Tunnel 的圖示符號會變得不一樣。由於 Enable Indexing 後迴圈的輸出會變成一個陣列,所以我們也會看到接線上會出現一個 "You have connected two terminals of different types" 的錯誤:
我們把 Numeric Indicator 刪除掉:
然後重新在 Loop Tunnel 上進行 Create Indicator,我們會看到現在建出來的會是 Array Indicator:
接著我們把 Input 設成 0,然後用滑鼠拖曳 Array 的邊框增加 Array 的元素:
現在當我們按 Run 鈕執行程式,我們會看到迴圈執行完畢後 Array 的內容如下,因為 Loop Count 是 5,所以我們得到一個有 5 個元素的 Array,而其元素內容依序是 0, 1, 2, 3, 4, 5:
如果我們現在把 Input 改為 20,然後再次執行這支程式,我們就會看到在迴圈執行完畢後 Array 的結果會變成 20, 21, 22, 23, 24:
0 意見:
張貼留言