National Instrumentsデバイスでの作業

イントロダクション

Aurora Vision Studioでは、National InstrumentsのI/Oデバイスと通信できます。これは、Hardware Support :: National Instruments カテゴリのフィルタを使用して行います。

タスクの操作

National Instrumentsデバイス全体のサポートは、タスクに基づいています(タスクマクロフィルタとは異なります)。

Aurora Vision Studioのタスクは、単一のチャンネルです。各タスクはIDに関連付けられており、タスクの構成、入力からの状態の読み取り、またはデバイスの出力への値の書き込みにはこのIDが必要です。

タスクの作成

National Instrumentsのデバイスで作業を開始するには、特定の操作を実行するタスクを作成する必要があります。
そのためには、以下に示すリストからいずれかのフィルタを選択する必要があります。

これらのフィルタは、作成されたタスクの識別子である outTaskID を返します。

タスクの開始

タスクを開始するには、フィルタ DAQmx_StartTask を使用します。

タスクの終了

タスクの終了には、DAQmx_StopTask フィルタを使用するか、プログラム全体の終了を待つかの2つの方法があります。
同じポートまたはチャンネルを使用してデバイスで2つのタスクを開始することはできません。

プログラムの基本的なスキーム

値の読み書き

Aurora Vision Studioでは、値を読み書きするための2種類のフィルタが提供されています。DAQmx_WriteAnalogArrayDAQmx_WriteDigitalArrayDAQmx_ReadAnalogArrayDAQmx_ReadDigitalArrayDAQmx_ReadCounterArray フィルタは複数の値で作業できます。 単一の値を読み書きする場合は、DAQmx_WriteAnalogScalarDAQmx_WriteDigitalScalarDAQmx_ReadAnalogScalarDAQmx_ReadDigitalScalarDAQmx_ReadCounterScalar フィルタを使用する必要があります。

タスクの構成

タスクを作成した後、DAQmx_ConfigureTimingDAQmx_ConfigAnalogEdgeTrigger、またはDAQmx_ConfigDigitEdgeTrigger フィルタを使用してタスクを構成できます。 一部の構成フィルタは、タスクを開始する前に使用する必要があります。

サンプルアプリケーション

以下の例は、DAQmxフィルタの使用方法を示しています。以下のプログラムは、アナログ入力から5000サンプルの電圧を読み取ります。ただし、データはデジタル信号の立ち上がりで取得されます。

最初にアナログチャンネルを作成します。このサンプルでは、入力値が測定されるため、inCVType 入力を Voltage に設定し、inIOTypeInput に設定する必要があります。残りの入力は使用するデバイスに依存します。

その後、タスクにサンプルクロックを割り当てます。 inDeviceID 入力は Auto に設定しても問題ありません。このプログラムで使用されるデバイスは唯一のものです。他のパラメータはユーザーのカメラに応じて設定できます。

デジタル信号のアクティブエッジが立ち上がりであるため、データの取得を開始する前にデジタルエッジが発生する必要があります。 inTriggerEdge 入力は Rising に設定する必要があります(立ち下がりエッジの場合は、Falling を選択する必要があります)。タスクは開始準備が整いました。

示されているプログラムの最後のステップは、選択したデバイスから複数のデータを取得することです。これにはフィルタDAQmx_ReadAnalogArrayが使用できます。DAQmx_StopTaskは必要ありません。なぜなら、このプログラムでは1つのチャンネルを2つの異なるタスクで使用していないからです。 取得した値の配列は、プロファイルとして表現できます(以下に示すように)。

DAQデバイスから取得したデータ

データを取得するためのサンプルアプリケーション