06-22-2016 04:51 PM
NI USB-6008
Visual basic SP6 (WIndows7 64)
アナログ出力のチャンネル0に指定の電圧を発生させたい
まず、サンプルプログラムのCont Gen Volt Wfm-Int Clkを試すと、エラーコード -200077が返ります。
過去の質問を参考に、さらにシンプルな以下のコードの付いたボタンを追加して試しましたが、同様にエラーコード -200077が返ります。
DAQmxErrChk DAQmxCreateTask("", taskHandle)
DAQmxErrChk DAQmxCreateAOVoltageChan(taskHandle, physicalChannelTextBox.Text, "aoChannel", minValueTextBox.Text, maxValueTextBox.Text, DAQmx_Val_VoltageUnits2_Volts, "")
DAQmxErrChk DAQmxGetTaskNumChans(taskHandle, numChannels)
DAQmxErrChk DAQmxWriteAnalogScalarF64(taskHandle, True, 10, amplitudeTextBox.Text, ByVal 0&)
電圧は”2.00”Vです。
最後の部分でエラーになります。
どこが間違っているのでしょうか。ご教授頂けると助かります。
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
06-22-2016 05:57 PM - 編集済み 06-22-2016 06:00 PM
0-5Vの間ではエラーは出ないと思います。USB-6008のアナログ出力レンジは0-5Vです。
http://home.hit.no/~finnh/videos/topics/labview_analog_io/371303.pdf
(14ページ目をご覧ください)
今後なんらかのエラーが出る場合、Google検索などで「DAQmx 200077 error」という風に調べるとエラーの原因が引っかかる可能性があります。実際この検索で以下のページを見つけまして、もしかして出力レンジ外の値ではと思いました。
http://digital.ni.com/public.nsf/allkb/0E497BE24CD123F286256EB00066E2C9
追記:2Vを渡していらしたのですね。それではレンジ内ということで上記はまったくあてはまりません。早とちりしてすいません。。
06-22-2016 06:09 PM
VBの記述が不慣れなので見当違いかもしれないのですが、DAQmxWriteAnalogScalarF64に与えている電圧値としてamplitudeTextBox.Textを与えていますが、これはちゃんと数値として認識されているのでしょうか?
試しに値で定数の1などを与えても同じエラーが出ますでしょうか?
DAQmxErrChk DAQmxWriteAnalogScalarF64(taskHandle, True, 10, 1 ByVal 0&)
06-23-2016 08:13 AM
TailOfGon 様
早々のアドバイスをありがとううございました。お蔭様で解決しました。
MaxとMInの値が、+10, -10 となっていたのが原因でした。
DAQmxCreateAOVoltageChan ではエラーが出ず、その後の DAQmxWriteAnalogScalarF64 で(5V 以下の値でも)、ここでエラーが出るのですね。
助かりました。