06-06-2014 01:36 AM
LabVIEW初心者で、こちらを拝見しながら、いろいろなサンプルを利用して試行錯誤しています。
とりあえずアナログ入力から始めていますが、デジタル入力・出力、アナログ出力も今後追加予定です。
1.やりたいこと
USB-6363を使用して、2msecサンプリング、16回移動平均でアナログ入力を行い
この結果からPID制御を行いたい(アナログ出力)。
画面描画とファイル保存は100msec(50回に1回程度)でよい。
2.アナログ収集のサンプルVI
全体の中から、とりあえずアナログ入力の部分だけ切り出して添付しました。(AI_Sample.vi)
使用しているサブVI(MoveAve.vi、Graph_Sample.vi)も添付しました。
3.エラーの発生
最初、画面描画とファイル保存をしないで実施すると、問題なく(15分程度確認)動くのですが
画面描画とファイル保存を実行すると、数分でエラーコード-200279が発生します。
プロパティ:RelativeTo
相当する値:現在の読み取り位置
プロパティ:Offset
相当する値:0
タスク名:AI_Sample
と、以上のようにエラーメッセージ画面が開きます。
4.エラーの原因と対策を教えてください。
たぶん、負荷がかかってアナログ入力ができなくなっているのではないかと原因を推察していますが
どのように修正したらよいかわかりません。エラーの原因と修正方法を教えてください。
5.さらに機能追加したい
今回のAI_Sample.viの画面に、さらに、
(1)グラフが2種類、(2)アナログ入力からエラーチェック及び画面表示
(3)デジタル入力からのエラーチェック及び画面表示
(4)アナログ入力からのPID制御(アナログ出力ですが)等々、
いろいろ追加すべき項目がたくさんあります。
これらの項目を全て1つのLOOPの中で実施した方がよいのか、
それとも項目ごとに各々のLOOPを作って複数LOOPを同時に走らせた方がよいのか
LabVIEWでの全体構造として、どのような作りにするのが 負荷が少なく
定時間間隔で正確なデータ収集・制御を行うことができるのか、
アドバイスもお聞きできればと思います。
以上、よろしくお願いいたします。
Solved! Go to Solution.
06-09-2014 06:48 AM
Hi Imomushi,
4.エラーの原因と対策を教えてください。
たぶん、負荷がかかってアナログ入力ができなくなっているのではないかと原因を推察していますが
どのように修正したらよいかわかりません。エラーの原因と修正方法を教えてください。
refer to: http://digital.ni.com/public.nsf/allkb/AB7D4CA85967804586257380006F0E62
I guess the most likely cause is:
- buffer is too small
- VI loop is not fast enough
5.さらに機能追加したい
...
これらの項目を全て1つのLOOPの中で実施した方がよいのか、
それとも項目ごとに各々のLOOPを作って複数LOOPを同時に走らせた方がよいのか
LabVIEWでの全体構造として、どのような作りにするのが 負荷が少なく
定時間間隔で正確なデータ収集・制御を行うことができるのか、
アドバイスもお聞きできればと思います。
Check this example: http://www.ni.com/example/31192/en/
..and this whitepaper: http://www.ni.com/white-paper/3023/en/
Good luck!
06-11-2014 09:58 PM
まず -200279のエラーを修正するところから始めさせてください。
『DAQmx エラー-200279の対処方法』
http://digital.ni.com/public.nsf/allkb/82B0DFD4DA91B3B4862576E10022A516
このエラーの原因のほとんどは、DAQデバイスがPCメモリにデータを転送する速度に、
LabVIEWがPCメモリからデータを取り出す速度が追いついていないことが原因です。
読み取りの際のループタイミングをより速くするまたは、読み取るサンプル数を増やすといった
工夫をなさってみてください。
06-11-2014 10:07 PM
バッファを指定することで解決しました。
ありがとうございました。