虛擬儀控程式設計 Lab VIEW 程式執行架構
3.1 迴圈: for & while 在FunctionsAll FunctionsStructures子面板中,可以找到 3-P5-1 在FunctionsAll FunctionsStructures子面板中,可以找到 For 及While 兩種迴圈架構
For迴圈左上角有一個Count terminal (N),給定迴圈執行總次數 Remark: i= 0 ~ N-1 For loop: 3-P5-2 For迴圈左上角有一個Count terminal (N),給定迴圈執行總次數 左下角有一個Loop Iteration 接點 ( i ),記錄目前迴圈執行次數 Remark: i= 0 ~ N-1
3-P6-1 While loop: While迴圈與For迴圈功能類似,但其結束的條件是,當連接至 Loop Condition接點的布林值為FALSE時,迴圈則停止
3.1.3 在架構當中放置物件 3-P7-1 當某一物件正被移入迴圈架構中,或正被移出迴圈架構時, 該架構的邊緣會出現一個虛線外框。
3-P8-1 物件若非位於架構之內,而是在架構的上方或下方,該物件 的周圍會出現一個陰影
3.1.4 迴圈內的端點與其行為 3-P8-2 資料可以經由迴圈頁框邊界的通道小方框傳進或傳出迴圈。 若希望某一物件在每次迴圈中皆能被執行到,該物件必須置於 迴圈之中。 每次回圈都會檢查布林值
上圖中,左邊迴圈的數位顯示元在每次迴圈執行時都被更新, 而右邊的數位顯示元則在迴圈執行完畢時才獲得更新 3-P9-1 上圖中,左邊迴圈的數位顯示元在每次迴圈執行時都被更新, 而右邊的數位顯示元則在迴圈執行完畢時才獲得更新 會形成無窮回圈或一次回圈
3-P9-2 移除迴圈的方法:在迴圈邊框 上彈出選單Remove While Loop 或Remove For Loop即可 習作:3-1
3.1.5 移位暫存器 (使用於 for or while 迴圈裏) 移位暫存器包含迴圈左右兩框界上的一對接點。右邊接點會儲存本次 迴圈執行結果之資料,並於下次迴圈開始執行時出現於左邊接點上 Remark:暫存器可包含任何型態資料 – 數字,布林, 字串, 陣列.
3-P14-1 移位暫存器可經設定以留存之前數個迴圈執行結果之數值 在左邊接點上彈出選單,選取Add Element,即可建立多個接點. (可利用此方法取得多次迴圈的平均值)
初始值- 只進入迴圈一次. 3-P14-2 上圖說明了「多個變數儲存於多個移位暫存器」以及「單一移位暫存器 初始值- 只進入迴圈一次. 3-P14-2 上圖說明了「多個變數儲存於多個移位暫存器」以及「單一移位暫存器 儲存之前多次遞迴的單一變數」之不同
3-P15-1 經由通道,可將資料直接送出架構之外,或是將資料送 入架構內。而移位暫存器則是用以暫存執行結果 習作:3-2
3.1.6 為何需要移位暫存器 10 次迴圈為 i = 0 ~9. 上圖中,迴圈 (A) 用以計算迴圈計次端點的總和。每一次遞迴,新的總和都 3-P17-1 上圖中,迴圈 (A) 用以計算迴圈計次端點的總和。每一次遞迴,新的總和都 被儲存於移位暫存器。在迴圈結束時總和為45。迴圈 (B) 則未使用任何的移 位暫存器,所以在迴圈中無法儲存數值, 最後一值為9。 10 次迴圈為 i = 0 ~9. Disable indexing
3.1.7 移位暫存器之初始值設定 3-P18-1 圖左顯示設定了移位暫存器的初始值,程式執行兩次後之情況。圖右 顯示未設定移位暫存器的初始值,程式執行兩次後之情況。當程式執 行第二次時,兩種情況的初始值是不同的。 Remark: 1. 未設初始值, default =0. 2. shift register 亦可用於布林格式. 3. initial value 只進去一次.
3.1.8 Feedback Node之使用 3-P19-1 Feedback node的功能與移位暫存器一樣,但是可以縮小程式規劃 所需要的空間。只需要在移位暫存器上選擇彈出式選單Replace with Feedback Node即可。
3-P19-2 上圖中,兩個迴圈所產生的結果是一樣的
3.2 條件架構 Remark: 0 ~ 215-1 如上圖所示,條件架構一般具有兩個以上的子程式方塊圖 ( 或稱為狀態 )。 3-P20-1 如上圖所示,條件架構一般具有兩個以上的子程式方塊圖 ( 或稱為狀態 )。 它們會依照您連接到選擇器接點的布林值或數值,選擇其中一個子程式方塊 圖 ( 或狀態 ) 來執行。 Remark: 0 ~ 215-1
3-P21-1 若將選擇器上的資料格式由數值改為布林,原來的case 0與case 1將轉換為 FALSE與TRUE;但對於其它的狀態 (case 2到case n),LabVIEW並不會莽 撞地將其刪除。只是會如同上圖將告知您無法執行程式
3.2.1 接上輸入與輸出 並非每個狀態都要使用輸入資料或是提供輸出資料, 但若是其中一個狀態需要輸出資料,那麼所有的狀態都需要提供輸出資料. 3-P22-1 當您從某個狀態接出一個輸出時,所有的狀態在框界的相同位置 上都會出現一個小小的白色通道。在所有狀態均有資料接到輸出 通道之前,執行鍵的箭頭都是斷裂的。
3-P22-2 每個狀態都必須有輸出。您可以如下圖所示,選擇一個預設值 ( 狀態 ), 這解決前一頁的問題.
3.2.2 增加狀態數目 3-P23-1 在條件架構框界上選取彈出式選單Add Case After與Add Case Before便可在 目前狀態的前面或後面加入新的狀態。選取Remove Empty Case會刪除空架構
3.2.3 對話框: 具有最高位階 One Button Dialog函數 Two Button Dialog函數 習作:3.3 3-P24-1 One Button Dialog函數 3-P24-2 Two Button Dialog函數 習作:3.3
3.2.4 選擇函數 選擇函數的位置在Functions面板All Functions 3-P27-1 選擇函數的位置在Functions面板All Functions Comparison子面板Select函數。若s輸入值為 TRUE,傳回的值為t;若s輸入值為FALSE,傳回的值為f。
3-P27-2 上圖所示VI的邏輯: if ( Number >= 0) then Square Root Value = SQRT (Number) else Square Root Value = -9999.00 Display Message Error … Negative Number end if
3.3 循序架構 3-P28-1 如上圖所示,循序架構看來有如一個底片框,顯示方式與條件架構一樣, 您一次只能看到一個頁框。若欲新增頁框,只要在在架構的框界上彈出選 單,並選取Add Frame After或Add Frame Before即可。
3.3.1 平面模式與堆疊模式 3-P29-1 循序架構的兩種不同的顯示模式:平面模式與堆疊模式。
在循序架構的邊界上彈出選單,可以更換平面模式與堆疊模式 3-P29-2 在循序架構的邊界上彈出選單,可以更換平面模式與堆疊模式 Flat sequence Stacked sequence
3.3.2 循序區域變數 (傳遞資料到後面的頁框, 加上的sequence local 會出現在所有的框架上.) 3-P30-1 在循序架構的框界上選取彈出式選單Add Sequence Local,便可以取得循序區域 變數。欲移除該變數,只須從循序區域變數上彈出選單,然後選取Remove命令; 或用定位工具選定之後,直接將其刪除即可。
Input data Output variable
3.3.3 計時 有時候控制或監測VI的執行時間是很有用的。 Wait (ms) 函數會使 您的VI等待特定的秒數後才會繼續執行。 3-P31-2 有時候控制或監測VI的執行時間是很有用的。 Wait (ms) 函數會使 您的VI等待特定的秒數後才會繼續執行。
3-P32-1 Wait Until Next ms Multiple函數使得LabVIEW等待輸入時間 (millisecond multiple) 的整倍數後才繼續執行VI;它對於讓迴圈以特定的時間間隔來執行,以及讓兩個 動作同步,都是非常有用的。
3-P32-2 Tick Count (ms) 毫秒為單位,傳回作業系統內部的時間;通常我們用它 來計算執行時間 習作: 3.4
3.4 公式節點 Remark: 所有數學方程式之表示法可參考help. 3-P38-2 3-P38-1 公式節點來實現相同的式子,如圖(b)所示。 (a) (b) Remark: 所有數學方程式之表示法可參考help.
公式節點可實現條件演算法: 3-P38-3 上圖所示的運算元與函數都是正確的,可以在公式節點中使用。
習作:3.5 3-P39-1 對於如下的運算碼,可以使用公式節點來實現這段程式碼,如上圖所示。 if ( x>= 0 ) then y = sqrt (x) else y = -99 end if 習作:3.5
3.5 MATLAB Script節點 3-P42-1 欲執行MATLAB文字程式節點,請點選Functions All FunctionsAnalyze MathematicsFormula MATLAB script子面板
3-P42-2 將游標放置在程式方塊圖中適當的位置,按住滑鼠左鍵, 即可拖曳出一個方框
3.5.2將文字程式輸入到MATLAB Script節點 將寫好的MATLAB程式輸入的方法是,在MATLAB文字程式節點上按滑鼠右鍵以彈出 選單,選取Import選項即可;出現Choose a script對話框後,請選取您欲輸入的 程式檔案即可 3-P43-1
3-P44-1 出現Choose a script對話框後,請選取您欲輸入的程式檔案(在檔案上點兩下,或是點選右下角的「開啟」按鍵)即可
3.5.3 MATLAB Script 變數的輸入及輸出 欲增加輸出變數,在MATLAB文字程式節點彈出選單,選擇Add Output選項; 若要增加輸入變數,則選擇Add Input選項
習作:3.6 3-P46-1 若是您要為某個輸出端點建立顯示元,請在該端點上按滑鼠右鍵以彈出選單, 然後選取CreateIndicator即可。 習作:3.6