LabVIEWでWhileループを構築および設定する

更新しました Aug 16, 2022

環境

ソフトウェア

  • LabVIEW

Whileループは、特定の条件が満たされるまでコードのブロックを繰り返し実行するために使用するストラクチャです。 VIが実行されると、Whileループ内のコードが実行され、条件端子が評価されます。

このチュートリアルでは、LabVIEWでのWhileループを構築および設定する方法について説明します。この紹介資料は、LabVIEWを初めて使用し、この基本的なプログラミングストラクチャを習得したい方に適しています。

Whileループを構築する

  1. LabVIEWを起動し、新しいVIを開きます。 [ファイル][新規VI]を選択すると、VIを開くことができます
  2. ブロックダイアグラムを右クリックして、関数パレットを表示します。
    • オプション:関数パレットの左上隅にある画鋲をクリックしてパレットを固定し、表示したままにします。
  3. ストラクチャに移動し、 Whileループを選択します
    • ブロックダイアグラムにループを配置するには、ループが目的のサイズになるまでマウスを左クリックしてドラッグします。
      rtaImage.jpg
  4. フロントパネルに停止ボタンを追加します。これは、[制御器パレット]»[ブール値]»[停止ボタン]にあります。
  5. ブロックダイアグラムで、停止ボタン端子をWhileループ内に移動します。
  6. Whileループの実行を制御できるように、停止ボタンを条件端子に配線します。
    • デフォルトでは、停止ボタンが押されると、Trueの値が条件端子に渡され、Whileループの実行が停止します。
    • 注:停止ボタンだけでなく、ブールデータを条件端子に配線して、Whileループの実行を制御できます。
rtaImage (1).jpg
  1. 条件端子を構成します。条件端子を右クリックして、Trueの場合停止もしくはTrueの場合継続を選択して条件端子の動作を切り替えることができます。
    • 条件端子は、ループがいつ停止するかを定義します。条件端子には2つの設定、Trueの場合停止 Trueの場合継続 )があります。
      • 条件端子のデフォルトの設定は、Trueの場合停止で、ブール値Trueが条件端子に送信されると、ループは実行を停止します。
      • 条件端子がTrueの場合継続に設定され、ブール値Trueが条件端子に送信されると、ループは実行します。
  2. (オプション)反復端子を右クリックし、[表示器を作成]を選択して、ループが実行した反復回数を監視します。

Whileループにトンネルを追加する

トンネルを使用して、Whileループなどのストラクチャにデータを入力したりストラクチャからデータを出力したりします。 Whileループにデータを送信する場合は、トンネルを作成する必要があります。
  • Whileループに送信されるデータは、最初の反復でのみ送信されます
  • Whileループから送信されるデータは、最後の反復後にのみ送信されます
    • フロントパネルのデータを継続的に更新する場合は、それらの表示器をWhileループ内に配置する必要があります

例:ループ内、トンネル使用時のデータ更新の違い

  1. 上記「Whileループを構築する」の手順に従いWhileループを作成します。
  2. フロントパネルに数値表示器([制御器パレット] >> [数値] >> [数値表示器] )を作成します
    1. (オプション)データ型の強制を回避するには、表示器を右クリックして[表記法] >> [I32]を選択し、数値表記をI32に変更します。
  3. ブロックダイアグラムで、反復端子を数値表示器端子に配線します
    • トンネルは、Whileループの境界にあるブロックとして表示されます。ブロックの色は、トンネルに配線されているデータ型の色です。
    • ループが終了した後、ループトンネルからデータが渡されます。
次のブロックダイアグラムでは、反復端子がトンネルに接続されています。 Whileループの実行が終了するまで、トンネル内の値はIteration Count表示器に渡されません。スニペットをLabVIEWコードに取り込み、次の点を確認してください。
  • Random Number表示器は、Whileループ内に配置されます。この表示器のデータは、反復ごとに更新されます。
  • コードの実行中、Iteration Count表示器の値はゼロです。これは、Whileループが実行を停止するまで、トンネルが表示器に情報を渡さないためです。
  • 停止を押すと、Iteration Count表示器が更新されます。

停止条件の設定

ブールを使用して、複数の条件を実装し、Whileループの条件端子に影響を与えることができます。 「Or」関数を使用して、エラーワイヤのステータスと停止ボタン制御器を比較し、いずれかがTRUEの場合、条件端子がTrue信号を受け取り、Whileループが停止するようにすることができます。

  1. 上記「Whileループを構築する」の手順に従いWhileループを作成します。
  2. フロントパネルにエラー入力3D制御器([制御器パレット]»[データコンテナ]»[エラー入力3D] )を作成します。
    1. ブロックダイアグラムで、エラー入力3D(error in(no error))制御器がWhileループの外側にあることを確認します。
  3. 停止ボタンと条件端子の間の配線を削除します。
  4. Whileループの外側にシンプルエラー処理関数(関数パレット»ダイアログ&ユーザインタフェース»シンプルエラー処理)を配置します。この関数は、呼び出されたときに発生したエラーを表示します。
  5. Whileループのトンネルを介して、エラー入力制御器とシンプルエラー処理を配線します。
    1. エラー入力制御器の出力をWhileループの境界に配線します。境界線をクリックしてトンネルを作成します。
    2. トンネルからWhileループの反対側の境界まで、そしてシンプルエラー処理関数の入力までエラーワイヤを配線します。
  6. 名前でバンドル解除(Unbundle By Name)関数(関数パレット»プログラミング»クラスタ、クラス、バリアント»名前でバンドル解除)をWhileループ内に配置します。この関数を使用して、エラークラスタのブールのデータのみを取得できます。
    1. エラークラスタのワイヤを[名前でバンドル解除]に配線します。
    2. 名前でバンドル解除を左クリックし、ステータスを選択して、エラークラスタのブールデータを表示します。
  7. Or関数(関数パレット»プログラミング»ブール»Or )をWhileループ内に配置します。
  8. ブールデータワイヤを接続します。
    1. Or関数に、 停止ボタン端子と名前でバンドル解除のステータスの両方を配線します。
    2. Or関数の出力を条件端子に接続します。
以下のスニペットは、停止ボタンが押された場合、またはWhileループ内でエラーが検出された場合に、Whileループの実行を停止します。

その他の停止条件に関する考慮事項

上記の状況(ユーザ入力またはエラー時に停止)は、条件付き停止入力を設定するために、よく使用される一般的な使用例です。しかし、複数の停止条件を構成する方法は他にもあります。
  • 3つ以上のブール条件を比較する場合は、複合演算(Compound Arithmetic)関数を使用します。これは、エラーステータス、ユーザー入力、および測定データ値を同時に監視し、しきい値または停止する条件が発生した場合にコードの実行を停止する場合に使用します。
  • Or、複合演算、またはその他のブール比較関数を使用してエラーワイヤを比較する場合、エラークラスタのワイヤを直接演算関数に配線できます。エラークラスタを配線するとブール値ステータスが自動的に選択され解析されます。
    • エラークラスタの配線を演算関数に配線する方法は、LabVIEWのすべてのバージョンに当てはまるとは限りません。「停止条件の設定」セクションで説明されている名前でバンドル解除を使用したエラークラスタのステータス使用のプロセスは、LabVIEWのすべてのバージョンに適用可能であり、正しいプロセスです。

次のステップ

Whileループに慣れたら、シフトレジスタを使用して1つのループ反復から次の反復に情報を渡す方法を学習します。オンライン教材LabVIEWの概要をリソースとして使用できます。