シーケンスストラクチャを使用するかを決定する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

シーケンスストラクチャによって実行順序は保証されますが、並列処理が妨げられます。たとえば、PXI、GPIB、シリアルポート、DAQデバイスなどのI/Oデバイスを使用する非同期タスクは、シーケンスストラクチャによって妨げられない限り、他の動作と並行して実行できます。

このような場合は、LabVIEWが持つ並列処理機能を活用する必要がある場合があります。次のいずれかの方法を使用し、シーケンスストラクチャの過度の使用を避けます。

  • 実行順序を制御する必要がある場合は、ノード間のデータ依存を確立することを検討します。たとえば、エラーI/Oなど、フロースルーパラメータを使用して実行順序を制御します。
  • ケースストラクチャとWhileループを使用します。以下の図に示されているように、表示器はシーケンスストラクチャの複数フレームから更新できません。



    前のブロックダイアグラムでは、テストアプリケーションで使用されるVIに、現在進行中のテストの名前を表示するステータス表示器があります。各テストが異なるフレームから呼び出されたサブVIである場合、以下のスタックシーケンスストラクチャの不良ワイヤが示すように、各フレームから表示器を更新することはできません。スタックシーケンスストラクチャのすべてのフレームは、データがストラクチャから渡される前に実行されるため、ステータス表示器に値を割り当てられるのは1つのフレームのみです。

    代わりに、以下のブロックダイアグラムに示すように、ケースストラクチャとWhileループを使用してください。


    ケースストラクチャの各ケースは、シーケンスストラクチャのフレームと同じです。Whileループの各反復は、次のケースを実行します。ステータス表示器は、各ケースについてVIのステータスを表示します。ケースが実行される毎にストラクチャからデータが渡されるため、ステータス表示器は対応するサブVIを呼び出すケースの以前のケースで更新されます。

    シーケンスストラクチャとは異なり、ケースストラクチャはどのケースにおいてもデータを渡してWhileループを終了することができます。たとえば、最初のテストの実行中にエラーが発生した場合、ケースストラクチャは、条件端子にFALSEを渡してループを終了することができます。ただし、シーケンスストラクチャの場合には、エラーが発生した場合でもすべてのフレームを実行する必要があります。


この記事は役に立ちましたか。

役に立たなかった