這篇我們將介紹 LabVIEW 的 For Loops。
For Loop 跟 While Loop 一樣,可以讓一段程式重覆的執行,然而 For Loop 與 While Loop 有一些差別,While Loop 會不斷地重覆執行一段程式直到遇到一個符合 Stop Condition 的條件成立時才停止,而 For Loop 則可以事先決定迴圈要執行的次數。
如果你事先已經知道迴圈要跑多少次,那麼使用 For Loop 是比較好的選擇。
建立 For Loops
在 Block Diagram 上按滑鼠右鍵打開 Functions Palette,然後點選 Structures,前兩個選項就是常見的迴圈 For Loop 和 While Loop:
現在我們要在程式裏用 For Loop。所以請選 For Loop,然後在 Block Diagram 上畫出一個 For Loop,並且把想要放在迴圈裏的程式整個包住。像底下這樣,我們已經建立了一個 For Loop:
For Loop 左上角的 Loop Count,也可以稱作 Count (N) Terminal,是用來指定迴圈要執行的次數。所以,假設要讓這個 For Loop 跑 10 次數,那麼我們就在 Count (N) Terminal 上按右鍵,然後點選 Create Constant:
接著輸入 10:
這樣便建立了一個可以重覆跑一段程式跑 10 次的 For Loop。
而 For Loop 左下角的 Loop Iteration,或稱作 Iteration Terminal,則可以提供目前迴圈已執行次數的資訊。所以,為了顯示迴圈目前已執行的次數,請在 Iteration Terminal 上按右鍵,然後點選 Create Indicator:
完成後會產生一個 Numeric Indicator 的 Terminal:
同時在 Front Panel 上會自動產生一個 Numeric Indicator:
讓我們把它改名為 Loop Iteration:
現在,當你按下 Run 鈕執行程式,For Loop 迴圈會執行 10 次,而 Loop Iteration 最後則會顯示 9 (i 從 0 開始):
為了看清楚 Loop Iteration 的變化,我們可以打開 Function Palette,點選 Timing > Wait (ms) 在迴圈裏放個 Wait (ms) function,並且輸入常數 1000:
Wait (ms) 的單位是 miliseconds,所以輸入 1000 就是會等待 1 秒鐘。現在再跑這支程式,你就會看到 Loop Iteration 從 0 到 9 的變化,而且每隔 1 秒鐘遞增 1,下圖是 For Loop 跑到第 7 圈時的截圖:
讓 Loop Iteration 從 1 開始算起
由於 Loop Iteration 是從 0 開始,每跑完迴圈一次會加 1,這在某些情況下可能不太方便,我們可以讓 Loop Iteration 從 1 開始算起,方法是在 Iteration Terminal 和 Loop Iteration (Indicator) 中間的接線上按右鍵,然後點選 Insert > Numeric Palette > Add:
這樣會在 Loop Iteration 前插入一個 Add function:
接著我們在 Add function 上按右鍵選 Create Constant,建立一個 1 的常數,這樣就可以了。完成後的程式如下:
現在,當我們再執行這支程式,就會看到 Loop Iteration 會從 1 數到 10,而不再是從 0 到 9:
0 意見:
張貼留言