USB-6356 DAQ ボードを使用して、SPI 経由で IC を制御しています。
NI SPI デジタル波形ライブラリの一部を使用してデジタル波形を作成し、小さなラッパー VI を使用してコードを送信します。
私の IC は RTD で温度を測定します。現在、制御する VI には「単一測定用のプッシュ」スタイルのボタンがあります。押すと、SPI 通信を実行している一連の他の VI から温度が返されます。
何回か押した後 (ボタンを非常に速くクリックすると、時間的には速くなりますが、必ずしもクリック数が増えるとは限りません)、VI はエラー -200361 を生成します。これは、公称 DAQ ボードでの FIFO バッファ オーバーフローです。
それが実際に問題の原因であるかどうかは不明ですが、そうではないと思います...
USB-600{0,8,9} デバイスのこのエラーを説明するNI ガイドは有望に見えますが、提案に従っても役に立ちませんでした。私の読み取りタスクはデジタルであるため、「DI.UsbXferReqCount」をアナログに置き換えました。デフォルトを読み取ると4が返されたので、プロパティを書き込みに変更して「1」を選択しましたが、これは違いはありませんでした。
デバイスマネージャでDAQボードをアンインストール、抜き差ししてみましたが、これも変わりませんでした。
私の推測では、読み取りタスクと書き込みタスクの「有限サンプル」部分の終了後に追加のクロック サンプルが生成され、これらがオーバーフローする空白データを追加している可能性がありますが、返された温度は奇妙なデータを示していません。この場合、VI は読み込まれたデータを正しい温度として解釈できないと想定していました。
使用しているTransmit VIのブロックダイアグラムの画像を添付しましたが、実際に実行するにはVIのライブラリ全体が必要です。
制御 VI は、NI フォーラムのほぼ同じフォーラム投稿に添付されています。
