NI-DAQmx上書きおよびオーバーフローエラーの理解と回避方法

更新しました Nov 10, 2023

使用製品

ソフトウェア

  • LabVIEW Full

ドライバ

  • NI-DAQmx

問題

上書きエラーとオーバーフローエラーとは何ですか?また、NI-DAQmxでそれらを回避するにはどうすればよいですか?
一般的に見られる上書きエラーは、エラー-200279(アプリケーションがハードウェア集録に追いついていません。)です。オーバフローエラーでよく見られるエラーは、エラー-200361(オンボードデバイスメモリのオーバーフロー。)です。

解決策

パートI - NI-DAQmxでの上書きエラー:

  • 上書きエラーを回避するには、バッファサイズを大きくするか、読み取り速度を速くするか、書き込み速度を遅くする必要があります。
  • LabVIEWでは、生産者/消費者デザインパターンアーキテクチャの実装を検討することもできます。生産者/消費者アーキテクチャを使用すると、解析と表示のステップを2番目のループに分離することで、より迅速に読み取ることができます。
  • 他のオプションとして、より高速のコンピュータを使用することを検討することもできます。より高速なコンピュータを使用すると、PCバッファとアプリケーション開発環境のメモリ間でより高速にデータを転送できます。

パートII - NI-DAQmxでのオーバーフローエラー:

  • オーバーフローエラーを回避するには、ダイレクトメモリアクセス(DMA)転送メカニズムを使用するか、設定したサンプルレートを下げるか、PCIバスを共有するデバイスの数を減らす必要があります。次の1つまたは複数のアクションを行うことを検討してください。
     
  • 割り込み要求(IRQ)データ転送メカニズムではなく、ダイレクトメモリアクセス(DMA)転送メカニズムを使用します。DMAはIRQより高速であり、パフォーマンスを大幅に向上させることができます。DMAの使用の詳細については、NI-DAQmxヘルプおよびDAQmxチャンネルプロパティノードのデータ転送メカニズムプロパティを参照してください。
    (メモ: DAQCardおよびUSBデバイスはDMAをサポートしていません)。
  • DAQmxタイミング関数でサンプル数/チャンネルを減らします。
  • PCI/PCIeバスを共有しようとする可能性のある他のデバイスを取り外します。

また、より大きなFIFOバッファを備えたNIデバイスまたはモジュールの購入を検討することもできます。オンボードメモリを増やすと、PCI/PCIeバスのボトルネックが減少します。

追加情報

NI-DAQmxでの上書きエラー:

このエラーは、情報が失われ、アプリケーションがPCバッファからデータを十分に速く読み取らない場合に発生することを示します。循環PCバッファに書き込まれたサンプルは、アプリケーション開発環境(ADE)メモリに読み取られる前に上書きされます。
 

NI-DAQmxでのオーバーフローエラー:

オーバーフローエラーは、データ収集デバイスのファーストインファーストアウト(FIFO)メモリバッファが、収集したサンプルを格納するための最大容量に達しており、新しいサンプルを受け入れることができなくなることを示します。オーバフローエラーは、要求されたデータ入力レートに満たないバス転送レートの兆候です。
 
FIFOバッファデータパス