フラットシーケンスの使い方

LabVIEWのブロックダイアグラムは、左から右へ、上から下へ順番に実行されます。また、各計測器のシーケンスは、VISAリソースネーム、データ、エラー情報などのフロー(結線順序)に依存します。では、フラットシーケンスで実行順序を指定するのは、どのような場合でしょうか。

CUIによるプログラミングでは、行の上下によって、実行順序を決定することができます。一方、LabViewでは、ブロックの配置と情報のフローで、ブロックの実行順序が決定されます。しかし、複数の計測器が並列動作する場合、異なる計測器を制御するブロックの実行順序は明確ではありません。このため、ブロック間の同期や順序指定を行う方法が用意されています。

実行順序が重要な場合、例えば、計測器Aで電圧を与えてから、計測器Bで電流を測定を行なうような場合、Aの処理が完了するのを待って、Bの命令を実行させる必要があります。実行順序を決定するためには、1. エラー情報またはVISAリソースネームを実行順序に合わせて結線する方法(ブロックにエラー出力やVISA出力がある場合)、2. フラットシーケンスを使用して同時に実施するブロックを指定する方法、3. ブロックに同期イベント(トリガー)をかける方法があります。

  1. エラー情報またはVISAリソースネームの結線
    エラー情報またはVISAリソースネームの入出力端子が装備されているブロックについては、別の計測器であってもブロック間の結線順序に従ってに実行順序を決めることができます。ただし、配線が計測器間に入り乱れてプログラムが読みにくくなる傾向があります。また、エラー情報またはVISAリソースネームの入出力に対応しないブロックの順序を決めることができません。

  2. フラットシーケンス
    フレームを左から右に実行するので、処理手順を明示することができます。特に、下図のように、ブロックとブロックの処理の間に、一定の待ち時間を挿入したいときに便利です。また、複数のブロックを一つのフレームに配置することができるので、複数の計測器の実行手順を一括して記述することもできます。
    Flat-sequence

  3. トリガー
    計測器ドライバの命令には、設定命令(Configuration)と実行命令(Read, Outputなど)があります。設定命令は発行後直ぐに実行されますが、実行命令については、予め指定された完了イベントを待って、ソフトウエアトリガを送信するように記述を行うことで、命令実行のタイミングや順序を制御することもできます。


up