LabVIEWのNI-DAQmxイベントは、データ集録ハードウェアで特定条件に一致すると、ハードウェアまたはソフトウェアの割り込みで信号を生成する方法を提供します。NI-DAQmxイベントを使用する主な利点は、NI-DAQmxがマルチスレッドのため、プロセッサを集中的に使用しないこと、およびDAQデバイスの他のドライバ呼び出しへのアクセスをブロックしないことです。
NI-DAQmxイベントはPCバッファの監視に使用でき、DMAデータ転送と併用して使用することもできます。ただし、PCIバスを介したデータ転送に使用することはできません。
NI-DAQmxイベントは、ハードウェアレベルとソフトウェアレベルの両方で生成できます。
一般的に、トリガとクロックは入力信号ですが、サンプルクロックなどのエクスポート可能なトリガとクロックは出力信号にもなります。対応するトリガやクロックを持たない出力信号は、ハードウェアイベント呼ばれます。イベントは、デバイスの状態変化、特定の種類のサンプル受信、一定数のサンプル生成、および指定時間の経過を示すために生成されます。
NI-DAQmxには以下のハードウェアイベントがあります。
LabVIEWでこれらのイベントを設定するにはDAQmx信号のエクスポートプロパティノードを使用します。図1に示す通り、これはLabVIEWで、測定I/O » DAQmx-データ集録 » DAQmx上級タスクオプション » DAQmxエクスポート信号を選択します。
図1. DAQmx信号のエクスポートプロパティノード
図2に示す通り、DAQmx信号のエクスポートプロパティノードを使用すると、AIホールド完了イベント、変化検出イベント、カウンタ出力イベントなどのイベントの多態性インスタンスを選択できます。
図2. カウンタ出力イベントプロパティ
他のものは、LabVIEWの、測定I/O » DAQmx-データ集録 » DAQmx上級タスクオプションサブパレット、および » 測定I/O » DAQmx-データ集録 » DAQmxデバイス構成 » ウォッチドッグサブパレットにあります。
ソフトウェアイベントは、一連のDAQイベントの非同期通知メカニズムとしての役割を果たします。ハードウェアイベントとは異なり、ソフトウェアイベントではスレッドを使用してデータが用意されるまで待機する必要がありません。イベントベースでプログラミングすると、データ待機中にも動作を継続するアプリケーションを、マルチスレッドアプリケーションを開発することなく作成できます。
NI-DAQmxには以下のソフトウェアイベントがあります。
図3は、イベント応答アプリケーションのブロックダイアグラムです。このインスタンスのイベントはデジタルラインPFI0の立ち上がりエッジです。応答はタイミングループストラクチャの実行です。これは、デジタルラインをline0に設定しています。タイミングループとDAQデバイスを使用してリアルタイムイベント応答アプリケーションを作成するには、「タイミングソースを作成(DAQmx Create Timing Source)」VIを使用する必要があります。
図3. 「タイミングソースを作成」VIを使用してイベントを作成する