2012年3月22日 星期四

Loop Tunnels

這篇我們將介紹 LabVIEW 的 Loop Tunnels。

在 LabVIEW,Loop Tunnel 是用來輸入資料到迴圈或者是取得迴圈輸出的一個功能。底下我們用個簡單的例子來介紹如何建立 Loop Tunnel。

我們來看底下這支程式,在這支程式 Block Diagram 上有一個 For Loop,而 Front Panel 上則有 Loop Count 和 Loop Iteration,Loop Count 的用途是讓使用者指定迴圈要執行的次數,而 Loop Iteration 則用來顯示迴圈目前已執行的次數:

2012-02-05 12h51_07 2012-02-05 12h50_45

記得 LabVIEW 的迴圈 index 是從 0 開始數起的。所以,如果我們把 Loop Count 設成 5,當我們按 Run 鈕執行這支程式,在 For Loop 執行完畢後,Loop Iteration 上就會顯示 4:

2012-02-05 12h48_09

Loop Tunnels

現在我們在 Front Panel 上加一個 Numeric Control,幫它取名為 Input,我們會得到底下的結果:

image 2012-02-05 13h20_00

我們把 Input 連接到 For Loop 的邊框上,然後,如下圖,你就會看到迴圈的邊框上就會產生一個 Terminal,在 LabVIEW 裏這個 Terminal 就叫 Loop Tunnel:

image

Input 這個 Loop Tunnel 可以輸入資料到迴圈,我們也可以讓迴圈透過 Loop Tunnel 輸出資料,所以假如我們像底下這樣把 Input 和 Loop Iteration 加總後,然後再將加總結果接到迴圈的邊框上:

2012-02-05 13h27_41

這樣便建立了另一個 Loop Tunnel,這個 Loop Tunnel 會取得迴圈的輸出。由於輸出的 Loop Tunnel 預設是 enable indexing 會把輸出變成一個陣列,為了方便說明,我們先在 Loop Tunnel 上按右鍵並點選 Disable Indexing:

2012-02-05 13h31_08

Disable Indexing 後,我們會看到 Loop Tunnel 的 Terminal 變成這樣:

2012-02-05 13h32_57

接著我們在 Loop Tunnel 上按右鍵點選 Create Indicator,然後把 Indicator 取名為 Output:

2012-02-05 13h34_20 2012-02-05 13h34_04

我們把 Loop Count 設成 5:

2012-02-05 13h35_29

由於 Input 是 0,當我們按 Run 鈕執行程式,在迴圈執行完畢後,我們會看到 Output 會是 4:

2012-02-05 13h35_54 

我們把 Input 改為 10:

2012-02-05 13h37_38

現在再執行程式,就會看到 Ouput 結果為 14:

2012-02-05 13h38_01

Enable Indexing

現在我們在 Loop Tunnel 上按右鍵點選 Enable Indexing:

2012-02-05 13h47_31

我們會看到 Loop Tunnel 的圖示符號會變得不一樣。由於 Enable Indexing 後迴圈的輸出會變成一個陣列,所以我們也會看到接線上會出現一個 "You have connected two terminals of different types" 的錯誤:

2012-02-05 13h49_47

我們把 Numeric Indicator 刪除掉:

2012-02-05 13h52_47

然後重新在 Loop Tunnel 上進行 Create Indicator,我們會看到現在建出來的會是 Array Indicator:

2012-02-05 13h54_09 2012-02-05 13h54_33

接著我們把 Input 設成 0,然後用滑鼠拖曳 Array 的邊框增加 Array 的元素:

2012-02-05 14h00_23

現在當我們按 Run 鈕執行程式,我們會看到迴圈執行完畢後 Array 的內容如下,因為 Loop Count 是 5,所以我們得到一個有 5 個元素的 Array,而其元素內容依序是 0, 1, 2, 3, 4, 5:

2012-02-05 14h01_03

如果我們現在把 Input 改為 20,然後再次執行這支程式,我們就會看到在迴圈執行完畢後 Array 的結果會變成 20, 21, 22, 23, 24:

2012-02-05 14h01_47

參考資料

0 意見: