B081 LabVIEW 7.X 實用教本 第12章 程式架構
12-1 條件架構(Case Structure) 12-1-1 路徑
12-1-2 使用Case(T or F)
12-1-2 使用Case(T or F)
(密碼輸入程式一) 本例說明如何利用條件控制物件作為密碼的驗證,再執行不同的工作,程式中將設定一常數密碼1234,程式執行時,由使用者輸入一數值格式為I32的常數輸入物件,經判定是否與密碼相同後,程式將以字串訊息顯示比對之結果。本程式之撰寫步驟如下:
首先,於方塊圖工作區域按右鍵從路徑Function>Structure>Case點選條 件控制物件且於方塊圖視窗中適當位置上,拖曳出適當物件大小,如圖 4-1-13所示。 圖4-1-13 點選拖曳出適當條件控制物件
2.前視版工作區域內點選一個數值輸入控制物件並將標籤定 為密碼輸入,如圖4-1-14所示。 圖4-1-14 點選輸入控制物件
3. 於方塊圖工作區域內點選一個Equal?物件,如圖4-1-15所示。 圖4-1-15 點選相等?物件
更改工作模式為線軸模式,將數值輸入控制物件接線至相等?物件的x輸入端 ,如圖4-1-16所示。 圖4-1-16 接線至相等?物件的x輸入端
圖4-1-17 預設密碼為1234並將常數物件連接至Equal?物件的y輸入端 5.點選一個常數物件,並輸入1234當作預設的密碼。將工作模式更改為 線軸模式,連接常數物件至相等物件的y輸入端,如圖4-1-17所示。 圖4-1-17 預設密碼為1234並將常數物件連接至Equal?物件的y輸入端
圖4-1-18 連接比較相等物件輸出接點至條件控制物件的條件訊號輸入接點 6.於線軸模式下,將Equal?物件之輸出接點連接到條件控制物件的條件訊 號輸入接點,如圖4-1-18所示。 圖4-1-18 連接比較相等物件輸出接點至條件控制物件的條件訊號輸入接點
7. 從路徑Functions>String點選字串常數物件 (String Constant),此物件不但可以 輸入數字還可以輸入英文或中文文字等符號,輸入如圖4-1-19及圖4-1-20所示字串 常數之內容並完成圖示之接線。 圖4-1-19 密碼輸入正確顯示字串 圖4-1-20 密碼輸入錯誤顯示字串
於小方格上按滑鼠右鍵點選彈出式功能表,並以逆向方式產生一 個字串輸出顯示物件,如圖4-1-21及圖4-1-22所示。 圖4-1-21 逆向方式產生一個字串輸出顯示物件 圖4-1-22 完成物件接線 9. 執行程式後並檢視結果是否正確。
(密碼輸入程式二) 本範例延續範例二,並介紹Beep庫存函數物件之使用。 1. 首先建立如圖4-1-25所示之程式。 圖4-1-25 密碼輸入程式
利用單鍵對話框物件設計欲顯示的內容,如圖4-1-26所示。 並於置入條件控制的框線內連接字串物件,如圖4-1-27所示。 圖4-1-26 程式設計之顯示 圖4-1-27 置入單鍵對話框物件於程式中
圖4-1-28 單鍵對話框物件於螢幕正確與錯誤之顯示 3. 點選執行鍵如果答案正確,如圖所示。如果答案錯誤,則如圖4-1-28所示。 圖4-1-28 單鍵對話框物件於螢幕正確與錯誤之顯示
嗶聲物件 路徑:Functions>Graphics & Sound>Sound>Beep 功能:傳出嗶一聲。可以三種方式輸入產生聲音。 如上例“密碼輸入程式”在步驟2中置入單鍵對話框物件時, 將此物件置入條件控制物件的框線內,執行程式時不但會 彈出對話框同時也會發出“嗶”的警示音。如圖4-1-29所示。 圖4-1-29 嗶聲物件於程式中之使用
12-1-3 Case(0.1.2.3…n)
使用數值
使用字串
12-2平面模式(Flat Sequence Structure) 12-2-1 路徑
1.特色(易設計及觀察) 2.設定
3.跑馬燈(平面模式)
12-2-2 推疊式 Stacked Sequence
Stacked Sequence
使用表單(Ring)
Edit Items
(順序物件及順序區域變數) 本例題介紹一簡單程式,程式中使用到順序物件及區 域變數,而本程式之撰寫步驟如下: 首先從路徑Function>Structure>Sequence點選順序物件,並於方塊圖工作區域中適當的位置,點選左鍵且往右下角處拖曳出一適當大小之順序物件框架,如圖4-1-1所示。 點選滑鼠 拖曳至此 圖4-1-1 拖曳出順序物件框架
在前視版工作區的部分點選兩個數值控制物件,並將兩物件的標籤(Label) 定義為X與Y,並且置放在順序物件的框架範圍內,如圖4-1-2,4-1-3所示。 圖4-1-2 點選兩個數值控制物件 圖4-1-3 兩個數值控制物件
從路徑Function>Numeric>Add點選一加法(Add)物件, 並置放在順序物件的框架範圍內,如圖4-1-4所示。 圖4-1-4 點選加法物件
將工作模式更改為線軸模式,仿照下圖做連線,並在順序控制的框架上 按滑鼠右鍵,並點選彈出式功能表中的“Add Sequence Local ”, 注意框架邊緣處將產生一個方格,如圖4-1-5,如圖4-1-6所示,該空格 即為所謂的Sequence Local,可供暫存資料之用。 X Y X Sequence Local Y 圖4-1-5 物件間連線 圖4-1-6 Add Sequence Local
連接加法物件之輸出接點至Sequence Local,注意方格中會產生一個朝外的箭頭符號,該箭頭方向標示出資料可藉由此處傳遞至後方的順序資料頁框架(即將被建立)範圍裡,以供程式進一步之使用,如圖4-1-7所示。於框架上緣,按右鍵並於彈出式功能表中點選Add Frame After,注意框架上緣中央將出現0[0..1],即表示有兩個資料頁框架重疊,如圖4-1-8所示。 圖4-1-7 資料流向下一個資料頁面 圖4-1-8 點選Add Frame After
5. 按左鍵點選 旁的箭頭可切換順序物件的資料頁框架,如圖4-1-9所示, 當吾人將順序物件資料頁框架切換至新產生的一頁時,上一個資料頁藉由Sequence Local所傳遞出的資料,另可藉由適當的連線將該資料引入本資料頁,再予以使用 箭頭 圖4-1-9 新產生的順序物件資料頁
於前視版工作區X、Y、及Z的三個數值控制物件輸入適 當的數值,執行程式後並檢視結果是否正確。 將工作模式更改為線軸模式,再依照圖4-1-10所示進行接線。最後在加 法物件的輸出端,以逆向方式產生一個數值輸出顯示物件,其標籤定義 為X+Y+Z。 圖4-1-10 點選物件並完成最後連線 於前視版工作區X、Y、及Z的三個數值控制物件輸入適 當的數值,執行程式後並檢視結果是否正確。
(毫秒器及延遲器物件) 1.從路徑Function>Structure>Sequence點選順序物件,如圖5-2-9所示,再於框架上緣,按右鍵並於彈出式功能表中點選Add Frame After兩次,產生三個資料頁面,如圖5-2-10所示。 圖5-2-9 順序物件框架 圖5-2-10 第三個資料頁
2.在第一個的資料頁中,置入一個毫秒器,並以逆向產生一個數值輸出物件如圖5-2-11所示。 圖5-2-11 置入毫秒器並產生輸出物件
3.在第二個資料頁中置入一個延遲器,並以逆向產生一個常數物件,且輸入1000代表此程式執行至此將延遲一秒的時間,如圖5-2-12所示 圖5-2-12 置入延遲器
4.在第三個資料頁中,置入一個毫秒器,做法同步驟2,如圖5-2-13所示。 圖5-2-13 置入毫秒器並產生輸出物件
5.執行程式,因為延遲器延時一秒(1000微秒)輸出,所以毫秒器函數的輸出大約相差約1000左右(因處理器的快慢而定),如圖5-2-14所示。 圖5-2-14 毫秒器輸出數值之差
Formula Node(程式連結點)物件 程式連結點具有類似前述結構性物件之外形,其提供一整合傳統C文字式語言及LabVIEW圖形語言之功能。以目前最新的LabVIEW版本而言,程式連結點物件中,吾人可輸入部份的C語言程式碼,但C語言程式碼中所用到變數及屬性均須在程式連結點物件的邊緣上定義之。現在舉例說明程式連結點物件之功能及使用方法。
Example:計算函數值sin2x+cos2y 本範例提供簡易的說明程式連結點物件之使用,請依照如下步驟練習撰寫程式: 從路徑Functions>Structures點選程式連結點物件,如圖4-1-50所示, 且於方塊圖視窗中適當位置上,拖曳出適當物件大小。 圖4-1-50 點選程式連結點物件
將滑鼠游標移至程式連結點物件邊緣上,按右鍵並點選彈出式功能表中的 Add Input (加入一輸入變數定義),如圖4-1-51所示,注意物件邊緣點選處 會出現一小方塊,並於小方塊中輸入x,重複前述步驟再加入另一輸入變數y。 圖4-1-51 點選加入輸入或輸出變數
再將滑鼠游標移至程式連結點物件邊緣上,按右鍵並點選彈出式功能表中的 Add Output (加入一輸出變數定義),注意物件邊緣點選處會出現一小方塊,並 於小方塊中輸入a,重複前述步驟再加入另一輸出變數b。注意輸出變數定義方塊 邊緣厚度略粗於輸入變數定義方塊邊緣,如圖4-1-52所示,同時注意變數定義方 塊之位置可藉由滑鼠予以拖曳,並沿著物件邊緣移動。 圖4-1-52 定義輸入及輸出變數
3.點選程式連結點物件,並依圖4-1-53所示,於程式連結點物件中輸入C語言程式。
4.完成如圖4-1-54所示程式及接線。 圖4-1-54 完成相關物件及接線 5.執行程式後並檢視程式輸出結果。
12-3 自我挑戰題―無限循環 跑馬燈(強生計數器) 人機介面