09-22-2010 02:47 AM
いつもお世話になっております。
大変初歩的な質問で申し訳ございません。
DAQデバイスを用いて、アナログで電圧の3チャンネル入力を行おうと考えております。
DAQアシスタントからai0及びai1を用いてサンプル数・レートともに1kで電圧の入力を行うのには成功したのですが、
新たにDAQアシスタントを作ってai2からサンプル数250k、レート500で電圧の入力を行おうとしたところ、
「指定されたリソースは予約されています。操作を指定通りに完了することができませんでした。」との表示が出てきました。
サンプル数やレートを変えても同じ表示が出続けます。
どのような原因が考えられるのでしょうか?
現在使用しているのはLabVIEW2010で、
DAQデバイスは表題の通りMシリーズのUSB-6229です。
大変恐縮ではございますが、よろしくお願い申し上げます。
解決済! 解決策の投稿を見る。
09-22-2010 08:00 PM
参考までに過去スレのリンク貼っておきます。
ザックリとしか解りませんが
1つのDAQデバイス中で同時に使用できるサンプリングクロックは1種類しか選択出来無いと認識しています。
1つのボード、ケース、シャーシ内に複数のDAQデバイスが存在している場合は、それぞれに任意の
サンプリングクロックが設定できると思います。
09-24-2010 12:00 AM
xyzz様
早速のご返信ありがとうございます。
そういうことだったのですね。
同一のサンプリングレートに変更してみましたが、
同じエラーがやはり出てしまいます。
他にも原因があるのでしょうか。
質問が連続してしまい申し訳ございません。
09-24-2010 05:28 AM
同一DAQデバイス内のタスクが競合するからではないでしょうか?
データフローを接続して、処理順番を決めて実行すると競合は起きませんが
ch0,1の集録が完了後、ch2の集録になります。
同一タスク内でch0,1,2を集録すれば同時に集録できます。
(ここで言う 同時に集録 は 同時サンプリング とは違います。)
実際試していませんが
別々のDAQデバイスならDAQアシスタントの並列処理(同時実行)は
可能かと思います。
10-08-2010 12:33 AM
xyzz様
返信が遅くなってしまい大変申し訳ございません。
ご返答ありがとうございました。
現在1つのDAQアシスタントからサンプルレート1kHz、サンプル数1000で行い、
前回のエラー「指定されたリソースは...」は出なくなりました。
しかし、今度は「利用できないサンプルを読み取ろうとしました。
要求されたサンプルは、以前は利用できましたが、上書きされてしまいました。」
とのエラーが出てくるようになってしまいました。
その下には
「利用できるサンプルをすべて読み取る代わりに、
バッファサイズを増やす、データをより頻繁に読み取る、
または固定のサンプル数を指定して読み取りを行うと、
問題が解決される可能性があります。」
と書かれています。
これが具体的に何を指しているのか分からず、困っております。
・「バッファサイズを増やす」とは、具体的にはどういうことでしょうか?
・「データをより頻繁に読み取る」とは、サンプリングレートを上げることとは異なるのでしょうか?
・「固定のサンプル数を指定して読み取りを行う」とありますが、通常の場合は指定されていないということでしょうか?
質問続きで申し訳ございません。
10-08-2010 02:56 AM
連続サンプル集録の場合
集録が開始されるとDAQデバイスが、確保されているバッファーに集録したデータを
集録が停止される迄自動的に書き込んでいきます。
最初のバッファーアドレスから書込み開始し、最後のアドレスに到達すると、
最初のアドレスに戻ります。(DAQが自動的に処理しています。)
アプリケーション側の読出し処理が遅れて、まだ読出していないバッファーデータの上に
新しく集録されたデータが書き込まれた時に、このエラーが発生します。
サンプリングレート1kHzの場合
バッファーサイズは10kSに自動設定なので(オンラインヘルプ参照)
集録開始して、アプリケーション読取り間隔が10秒以上になった時に、このエラーが
発生すると思います。
サンプル数が1000に設定してあるので
バッファーにデータが1000個溜まるとDAQアシスタントからデータが出力されます。
バッファーにデータが2000個溜まっている場合、
1000個読み出した後、すぐにもう一度1000個読み出します。
このDAQアシスタントが繰返し読み出す処理を、他の処理(待ち関数、時間の掛かる処理、他アプリケーション)
が邪魔をしているのではないでしょうか?
今回は「データをより頻繁に読み取る」
対策をすれば良いと思います。
サンプリングレートを上げる事とは違います。
サンプリングしたバッファーデータを早急に読み取り、
未読み取りデータを増やさないと言う事です。
10-08-2010 09:11 AM
すべてのチャンネルを同じサンプリングレートで集録し、デシメートで間引くことで実質のサンプリングレートを落とす、という手がありますがこちらはすでに試されていますでしょうか?
蛇足まで。。。
10-20-2010 10:21 PM
xyzz様
高須様
ご返答ありがとうございました。
御二方の意見により無事解決することができました。