2012年3月19日 星期一

Array

這篇我們將介紹 LabVIEW 的 Array。

Array 是一個相同資料型態的集合。在 LabVIEW 裏,建立 Array 是很簡單的一件事。底下我們用個簡單的例子來介紹如何建立 Array。

建立 Array

當你在 Block Diagram 上按滑鼠右鍵,打開 Functions Palette > Array, Matrix & Cluster,你會看到第一個選項就是 Array,像下圖這樣,把它拖曳放到 Block Diagram 上就可以建立一個 Array:

image 

底下我們建立了兩個 Array,右手邊的圖是 Block Diagram:

2012-02-02 22h21_12 2012-02-02 22h21_36

注意 Block Diagram 上這兩個 Terminals 的框線是黑色的,這代表它們的資料型態還未定義。

我們可以在 Array 上放上 Boolean, Numeric, String 或其它種類的元件,這樣就可以明確定義 Array 的資料型態。比如我們現在用滑鼠拖曳 Vertical Toggle Switch 到陣列的框架中:

2012-02-02 22h31_09

這樣就可以產生一個 Toggle Switch Array,同時 Block Diagram 上對應的 Terminal 框線顏色也會跟著變成綠色的,代表它是一個 Boolean Array:

2012-02-02 22h31_26     image

依樣畫葫蘆在 Array2 上放個 Round LED,順便利用滑鼠調整 Toggle Switch 和 Round LED 的大小:

2012-02-02 22h36_47 2012-02-02 22h37_00

接著只要用滑鼠拖曳 Array 的邊框,然後橫或是往直的拉,就可以增加 Array 的元素,例如下圖左往橫的拉四格後,即呈現圖右的結果,得到有 4 個元素的 Togglw Switch Array:

2012-02-02 22h42_10  2012-02-02 22h41_40

照同樣的方法做出有 4 個元素的 Round LED Array:

2012-02-02 22h42_43 2012-02-02 22h42_58

接著切到 Block Diagram,然後用接線把兩個 Array 連接起來:

image

為了方便,我們再用個 While Loop 放程式碼框起來,並在 While 右下角的 Loop Condition 上按右鍵點選 Create Control 建立 Stop 鈕:

2012-02-02 22h48_47

現在當我們按 Run 鈕執行這支程式,你會看到 Round LED Array 的狀態會對應到 Toggle Switch Array。

現在是全部為 False 的狀態:

2012-02-02 22h50_26

當我們改變 Toggle Switch Array 的狀態,就會看到 Round LED Arrary 對應的 LED 狀態會跟著同步改變:

2012-02-02 22h50_42

用同樣的方法,我們可以建立 Vertical Pointer Slide 和 Thermometer 的 Arrays,如下:

2012-02-02 22h59_21

底下是將兩個同為 Numeric 型態的 Arrays 連接起來並放到 While Loop 後的 Block Diagram:

2012-02-02 22h57_49

當我們按 Run 鈕執行這支程式,就可以利用畫面上方的 Vertical Pointer Slide 來控制底下對應的 Thermometer:

2012-02-02 22h57_38 

Array functions

在 Block Diagram 上,打開 Function Palette > Array,你會看到 LabVIEW 提供了很多 Array functions:

2012-02-02 23h08_44

我們可以利用 Array functions 來操控 array,例如利用 Array Size 取得陣列的大小、利用 Index Array 取出陣列指定位置的元素、用 Insert Into 插入新的資料到陣列中,或是用 Delete From Array 刪除陣列中的元素等。

底下以最常用的 Array Size 和 Index Array 示範 Array functions。首先是 Array Size,我們在 Block Diagram 上放個 Array Size,並為其 Create Indicator,然後像下圖這樣把它連接到 Vertical Pointer Slide Array 的輸出:

2012-02-02 23h10_53

因為 Vertical Pointer Slide Array 目前總共有 4 個元素,所以現在當我們執行這支程式,就會看到 size(s) 上會顯示數值 4:

image

現在放一個 Index Array 到 Block Diagram 上,一樣把它連接到 Vertical Pointer Slide Array 的輸出,然後照下圖這樣用 Create Control 建立一個 Control,並且用 Create Indicator 建立一個 Indicator:

2012-02-02 23h20_02

這時 Front Panel 會得到如下結果:

image

我們可以利用 Index Array 取出陣列指定位置的元素,而上圖 index 這個 Control 是讓你指定陣列的索引,而 element 這個 Indicator 則會顯示陣列指定元素的數值。

LabVIEW 陣列跟 C/C++ 語言一樣,索引是從 0 開始算起,所以如果我們要指定陣列第 3 個元素,那麼當我們按 Run 鈕執行這支程式,然後在 index 上輸入 2,你就會看到第 3 個元素的數值,如下圖,其值為 50:

2012-02-02 23h19_38 

參考資料

0 意見: