LabVIEW 2018ヘルプ
発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照
ダウンロード (Windowsのみ)
シーケンスストラクチャによって実行順序は保証されますが、並列処理が妨げられます。たとえば、PXI、GPIB、シリアルポート、DAQデバイスなどのI/Oデバイスを使用する非同期タスクは、シーケンスストラクチャによって妨げられない限り、他の動作と並行して実行できます。
このような場合は、LabVIEWが持つ並列処理機能を活用する必要がある場合があります。次のいずれかの方法を使用し、シーケンスストラクチャの過度の使用を避けます。
- 実行順序を制御する必要がある場合は、ノード間のデータ依存を確立することを検討します。たとえば、エラーI/Oなど、フロースルーパラメータを使用して実行順序を制御します。
- ケースストラクチャとWhileループを使用します。以下の図に示されているように、表示器はシーケンスストラクチャの複数フレームから更新できません。

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

ケースストラクチャの各ケースは、シーケンスストラクチャのフレームと同じです。Whileループの各反復は、次のケースを実行します。ステータス表示器は、各ケースについてVIのステータスを表示します。ケースが実行される毎にストラクチャからデータが渡されるため、ステータス表示器は対応するサブVIを呼び出すケースの以前のケースで更新されます。
シーケンスストラクチャとは異なり、ケースストラクチャはどのケースにおいてもデータを渡してWhileループを終了することができます。たとえば、最初のテストの実行中にエラーが発生した場合、ケースストラクチャは、条件端子にFALSEを渡してループを終了することができます。ただし、シーケンスストラクチャの場合には、エラーが発生した場合でもすべてのフレームを実行する必要があります。