2012年3月4日 星期日

For Loop and Shift Regsiter

在這篇,我們將介紹如何利用 LabVIEW 的 For Loop 和 Shift Register 寫一支從 1 加到 10 的程式。

首先,打開 LabVIEW,建立一個 Blank VI,然後在 Block Diagram 上按滑鼠右鍵打開 Functions Palette,接著點選 Structures > For Loop 在 Block Diagram 上拖曳畫出一個 For Loop:

 image_thumb5 

由於我們要計算 1 加到 10 的總合,Loop Count 是 10,所以我們要把 For Loop 的 Loop Count 設定為 10,先在 Count (N) Terminal 上按右鍵,點選 Create Constatn:

2012012821h32_52_thumb

接著輸入 10:

2012012821h33_08_thumb

這樣便建立了一個可以重覆跑一段程式跑 10 次的 For Loop。

下一步,因為 Loop Iteration 預設是從 0 開始數起,所以我們在 Loop Iteration 的輸出加個 Increment function,這樣會讓它變成從 1 開始數起:

2012-01-29 12h50_51 

接著我們只要把每一次的 Loop Iteration 數值累加起來便可以算出 1 加到 10 的總合,這會需要在 Loop Iteration 之間傳遞資料,所以我們會用到 Shift Register。因此,我們在 Loop 的邊框上按右鍵,然後點選 Add Shift Register:

2012-01-29 12h51_22

建立 Shift Register 後的程式如下:

2012-01-29 12h58_41

讓我們為 Shift Register 的 left terminal 設定初始值:

2012-01-29 12h59_45

接著我們只要將 Loop Iteration 累加起來即可:

2012-01-29 13h01_45 

完成這支程式後,按 Run 鈕執行,便可以算出 1 加到 10 的總合為 55:

2012-01-29 13h02_00

動動腦

這篇範例程式的 Loop Count 是常數 10,只能計算 1 加到 10 的總合,試著把這支程式改成下圖這樣,讓使用者可以指定 Loop Count,假如使用者指定 Loop Count 為 100,那麼,程式執行應該要得到總合為 5050:

2012-01-29 13h07_15

接著利用 Function Palette 的 Timing >  Wait (ms),在迴圈裏加個 Wait (ms) function,設定等待時間為 500 ms,接著再次重跑程式,現在你應該會看到迴圈每個 Iteration 的加總結果。

參考資料

0 意見: