Whileループ LabVIEW


3-3

LabVIEWにおけるdo-While文にあたるWhileループについて説明します。

Whileループ

LabVIEWのWhileループ機能

LabVIEWのWhileループは、囲んだループの中に作成されたプログラムを条件端子にTure(真)が入力されるまで繰り返し実行します。

Whileループ

反復端子は、ループの現在のループ回を数値で出力します。開始数が0なので、n回の実行に対してn-1を出力します。

Whileループの条件設定

LabVIEWのWhileループは条件端子の入力がFalesの時はループを継続して、Tureの時にループを終了するします。

例:停止ボタンがON(True)になった時にループが終了する設定

Whileループ停止

条件端子の設定でTrueの時にループを継続、Falseの時にループを終了する逆の設定にできます。
Whileループを右クリック→TRUEの場合継続をクリックしてチェックをいれます。TRUEの場合継続の設定になると条件端子のマークが変わります。

継続条件

ループの出力トンネル機能

Whileループ内からループ外にワイヤを出力させると指標(配列作成)、最後の値、連結の機能を使うことができます。
機能の変更は、ループ外の端子を右クリック→トンネルモードで選択できます。トンネルモードのデフォルトは最後の値です。

自動指標
指標ループ内で実行された順番で配列を作成します。
最後の値最後に実行された反復時の最終値を出力します。
連結入力が順番に追加され、配線された配列入力と同じ次元の出力配列が生成されます。

WhileループでもForループと同じように指標機能を使うことが出来ます。
しかし、Whileループではループ開始時に反復回数が決まらないため、反復する度に配列のサイズを変更する処理となり、メモリが重くなります。
Whileループで大きいサイズの配列を作る場合、最初に配列を用意しておいて、部分配列置換の関数を使うなどで対応したほうが良いとされれいます。

Whileループの条件端子

LabVIEWのForループは条件端子を使用して、Whileループと同じように条件がTureになった時にループを終了することができます。

条件端子を表示するには、Forループを右クリック→条件端子を選択してチェックをいれます。

Forループの条件端子

条件端子を使用するとForループですが、Whileループでループ回数にOR(追加)の条件を設定した動作となります。

例:反復端子の数値が3以下ならば終了の条件の場合。結果カウント端子は10だが、反復端子が3(ループ4回)で終了している。

Forループの条件終了

LabVIEWのWhileループの動作は、一般的なWhile文ではなくdo-While文の動作なります。
条件に関わらず必ず1回はループが実行されます。
他のプログラミング言語の経験者は注意しましょう。


Whileループの条件は複数設定することが多く、計算による条件に追加して、エラーが発生した場合、非常停止した場合の条件を入れることが多いです。

例:電圧集録のLabVIEWサンプル。停止ボタンとエラーのどちらかがTrueの時に終了する条件。

LabVIEWサンプル

Whileループの配列入力

WhileループもForループと同じように自動指標機能で入力した配列を順番に取り出すことが出来ます。
しかし、Forループと異なり、配列の要素数でループ回数は設定されません。
また、入力した配列の要素数がループ回数より小さい場合、要素数以上のループでは空(数値ならば0、文字列ならば空白)が出力されます。

例:3要素の配列を入力して、条件が反復端子の値4以下(ループ回数5)場合、ループの4回目からは0が出力される

Whileループの自動指標

Whileループの注意点

Whileループでは条件が必ずTrueとなり、ループを終了できるか注意してプログラムしましょう。
条件が満たせないとWhileループは無限ループになってしまい、ループが止まらなくなってしまいます。
止まらなくなったら、ツールバーの実行を中断ボタン(ショートカットCtrl+.ピリオド)を押して止めます。

また、Whileループは非常に高速でループするため、長時間実行するようなプログラムですとCPUやメモリに負荷がかかるため、待機関数などでループの間隔を調整しましょう。

例:Whileループに100ミリ秒の待機関数を入れてループ間隔を調整

ループの間隔
前ボタン
前の講座
トップボタン
LabVIEW基本講座TOP
次ボタン
次の講座