NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

USB-6229 3ch同時アナログ入力

解決済み
解決策を見る

いつもお世話になっております。

大変初歩的な質問で申し訳ございません。

 

DAQデバイスを用いて、アナログで電圧の3チャンネル入力を行おうと考えております。

DAQアシスタントからai0及びai1を用いてサンプル数・レートともに1kで電圧の入力を行うのには成功したのですが、

新たにDAQアシスタントを作ってai2からサンプル数250k、レート500で電圧の入力を行おうとしたところ、

「指定されたリソースは予約されています。操作を定通りに完了することができませんでした。」との表示が出てきました。

サンプル数やレートを変えても同じ表示が出続けます。

どのような原因が考えられるのでしょうか?

 

現在使用しているのはLabVIEW2010で、

DAQデバイスは表題の通りMシリーズのUSB-6229です。

 

大変恐縮ではございますが、よろしくお願い申し上げます。

0 件の賞賛
メッセージ1/8
4,625件の閲覧回数

参考までに過去スレのリンク貼っておきます。

異なるサンプリングレートでのデータ収録

 

ザックリとしか解りませんが

1つのDAQデバイス中で同時に使用できるサンプリングクロックは1種類しか選択出来無いと認識しています。

1つのボード、ケース、シャーシ内に複数のDAQデバイスが存在している場合は、それぞれに任意の

サンプリングクロックが設定できると思います。

 

0 件の賞賛
メッセージ2/8
4,611件の閲覧回数

xyzz様

早速のご返信ありがとうございます。

そういうことだったのですね。

 

同一のサンプリングレートに変更してみましたが、

同じエラーがやはり出てしまいます。

他にも原因があるのでしょうか。

 

質問が連続してしまい申し訳ございません。

0 件の賞賛
メッセージ3/8
4,587件の閲覧回数

同一DAQデバイス内のタスクが競合するからではないでしょうか?

 

データフローを接続して、処理順番を決めて実行すると競合は起きませんが

ch0,1の集録が完了後、ch2の集録になります。

 

同一タスク内でch0,1,2を集録すれば同時に集録できます。

(ここで言う 同時に集録 は 同時サンプリング とは違います。)

 

実際試していませんが

別々のDAQデバイスならDAQアシスタントの並列処理(同時実行)は

可能かと思います。

 

 

DAQ処理競合エラー.jpg

 

処理の順番付け.jpg

0 件の賞賛
メッセージ4/8
4,576件の閲覧回数

xyzz様

 

返信が遅くなってしまい大変申し訳ございません。

ご返答ありがとうございました。

 

 

現在1つのDAQアシスタントからサンプルレート1kHz、サンプル数1000で行い、

前回のエラー「定されたリソースは...」は出なくなりました。

しかし、今度は「利用できないサンプルを読み取ろうとしました。

要求されたサンプルは、以前は利用できましたが、上書きされてしまいました。」

とのエラーが出てくるようになってしまいました。

その下には

「利用できるサンプルをすべて読み取る代わりに、

バッファサイズを増やす、データをより頻繁に読み取る、

または固定のサンプル数を指定して読み取りを行うと、

問題が解決される可能性があります。」

と書かれています。

これが具体的に何を指しているのか分からず、困っております。

 

・「バッファサイズを増やす」とは、具体的にはどういうことでしょうか?

・「データをより頻繁に読み取る」とは、サンプリングレートを上げることとは異なるのでしょうか?

・「固定のサンプル数を指定して読み取りを行う」とありますが、通常の場合は指定されていないということでしょうか?

 

 

質問続きで申し訳ございません。

0 件の賞賛
メッセージ5/8
4,455件の閲覧回数
解決策
トピック作成者Lktが受理

連続サンプル集録の場合

集録が開始されるとDAQデバイスが、確保されているバッファーに集録したデータを

集録が停止される迄自動的に書き込んでいきます。

最初のバッファーアドレスから書込み開始し、最後のアドレスに到達すると、

最初のアドレスに戻ります。(DAQが自動的に処理しています。)

アプリケーション側の読出し処理が遅れて、まだ読出していないバッファーデータの上に

新しく集録されたデータが書き込まれた時に、このエラーが発生します。

 

サンプリングレート1kHzの場合

バッファーサイズは10kSに自動設定なので(オンラインヘルプ参照)

集録開始して、アプリケーション読取り間隔が10秒以上になった時に、このエラーが

発生すると思います。

 

サンプル数が1000に設定してあるので

バッファーにデータが1000個溜まるとDAQアシスタントからデータが出力されます。

バッファーにデータが2000個溜まっている場合、

1000個読み出した後、すぐにもう一度1000個読み出します。

このDAQアシスタントが繰返し読み出す処理を、他の処理(待ち関数、時間の掛かる処理、他アプリケーション)

が邪魔をしているのではないでしょうか?

 

今回は「データをより頻繁に読み取る」

対策をすれば良いと思います。

サンプリングレートを上げる事とは違います。

サンプリングしたバッファーデータを早急に読み取り、

未読み取りデータを増やさないと言う事です。

 

 

 

 

0 件の賞賛
メッセージ6/8
4,451件の閲覧回数

すべてのチャンネルを同じサンプリングレートで集録し、デシメートで間引くことで実質のサンプリングレートを落とす、という手がありますがこちらはすでに試されていますでしょうか?

 

蛇足まで。。。

 

 

MultiSamplingRate.png

メッセージ7/8
4,443件の閲覧回数

xyzz様

高須様

 

ご返答ありがとうございました。

御二方の意見により無事解決することができました。

0 件の賞賛
メッセージ8/8
4,322件の閲覧回数