LabVIEW用NI-DAQmxで連続収集する場合のサンプル数を指定する

更新しました Nov 18, 2018

使用製品

Software

  • LabVIEW Full

Driver

  • NI-DAQmx

問題

LabVIEW用NI-DAQmxを使用して連続的にデータを収集する際、読み取るサンプル数を指定する必要があるのはなぜですか?

解決策

配列/波形のサイズとDAQmx PCバッファのサイズは、以下に概説するDAQmxタスク構成によって暗黙的に決定されます。

DAQmxを用いて収集を実行すると、まずデータがDAQデバイスからコンピュータのメモリ(RAM)に転送されます。未読データの保存場所として予約されているDAQmx PCバッファと呼ばれる、事前に割り当てられたバッファがコンピュータのRAMにあります。

DAQmx読み取り関数を実行することにより、DAQmx PCバッファからDAQmxアプリケーション内の配列または波形にデータを読み取ることができます。


LabVIEWでタスク用に対してDAQmxタイミングVIを構成すると、サンプルモード連続サンプルまたは有限サンプルに設定されているかどうかによって、サンプル数/チャンネルの値が異なる効果を示します。

  • 有限サンプルでは、サンプル数/チャンネルの値によって、タスクが完了する前に収集するサンプル数が決まります。
  • 連続サンプルでは、デフォルトのバッファサイズが十分でない場合、DAQmx PCバッファのサイズを決定するために、サンプル/チャンネルの値が使用されます。ただし、ほとんどの場合、デフォルトのバッファサイズが使用され、この値は無視されます。連続収集におけるバッファサイズの決定方法の詳細については、DAQmx Buffer Size Allocation for Finite or Continuous Acquisitionsを参照してください。

 

逆に、DAQmx読み取りVIにはサンプル数/チャンネルと呼ばれる入力があります。サンプル数/チャンネルの値は、DAQmx読み取りの実行時にバッファからアプリケーションに読み取るデータの各配列または波形のサンプル数を決定します。

 

DAQmx読み取りVIは、アプリケーションにデータを提供する前に、要求されたすべてのサンプルが収集され、DAQmx PCバッファに格納されるまで待機します。

したがって、タイムアウトによって割り当てられた時間内にサンプルレートがこのサイズの配列または波形を作成するのに十分速くない場合、VIはタイムアウトエラーを返します。これを防ぐには、タイムアウト値(デフォルト値は10秒)を増やすか、サンプル数/チャンネルを減らします。

追加情報

メモ: DAQデバイスとホストコンピュータのRAM上にあるDAQmx PCバッファ間の転送速度は、DAQデバイス(PCI、USB、PXIなど)との通信に使用されるバスによって異なります。

対話式のDAQアシスタントパネル、SignalExpress、およびNI MAXでは、このパラメータの名前が読み取るサンプル数に変更されます。

 

サンプル数/チャンネルのデフォルト値は-1で、DAQmx読み取りVIがバッファ内で使用可能なすべてのデータを直ちに読み取るようにします。サンプル数/チャンネルが-1に設定されているときにバッファにデータがない場合、DAQmx読み取りVIはサンプルの収集を待機するのではなく、空の配列を返します。

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

いいえ