10-06-2015 08:09 AM
お世話になっております。
現在、VC++とUSB-6003を利用して電流と電圧の同時測定プログラム作成しています。
その際に、エラーコード-50103が発生していますが、私の力不足で解決策が見つけられない状態です。
考えられる原因や、使用する関数などを教えていただければ幸いです。
最終的には、電圧送信と電流電圧測定を同時にしたいと考えています。
アプリケーション側では、以下の手順でプログラムを組んでいます。
1.DAQmxCreateTask
2.DAQmxCreateAIVoltageChan(taskHandleVol,"Dev1/ai0","
DAQmxErrChk(DAQmxCreateAICurrentChan(taskHandleCur, "Dev1/ai0", "", DAQmx_Val_Cfg_Default, -0.02, 0.02, DAQmx_Val_Amps, DAQmx_Val_Default, 220.0, ""))
3.DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQm
4.DAQmxRegisterEveryNSamplesEvent(taskHandle,DAQmx
5.DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback
6.DAQmxStartTask(taskHandle)
長くなるため省略させていただきましたが、1.のCreateTaskの段階から電圧測定chにtaskHandleVol、電流測定chにtaskHandleCurという形で分けて、1~6のそれぞれを処理しています。
初歩的な質問で申し訳ありませんが、どうかご助力の程よろしくお願い致します。
解決済! 解決策の投稿を見る。
10-08-2015 03:10 AM
こんにちは。
最終的には、電圧送信と電流電圧測定を同時にしたいと考えています。
2.DAQmxCreateAIVoltageChan(taskHandleVol,"Dev1/ai0","
",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts ,NULL)) DAQmxErrChk(DAQmxCreateAICurrentChan(taskHandleCur, "Dev1/ai0", "", DAQmx_Val_Cfg_Default, -0.02, 0.02, DAQmx_Val_Amps, DAQmx_Val_Default, 220.0, ""))
電圧送信と電流電圧測定をされたいとのことですが、出力と入力をされたいということでしょうか。
まず今回の -50103 のエラーの意味は、リソースがすでに使用されているということです。
原因としては、 CreateAIVoltageChan と CreateAICurrentChan の関数両方でDev1/ai0 を指定されているからです。
USB 6003 といった製品は一つのアナログ入力のタスクにしか対応していないので、電圧測定と電流測定のタスクを同時に作成、使用できません。
基本的に内部で電圧を計っているだけなので、電流を測定したいのであれば、計測された電圧と電圧がかかっている抵抗値から計算する方法となります。
10-09-2015 02:41 AM
こんにちは。丁寧なご回答ありがとうございます。
>USB 6003 といった製品は一つのアナログ入力のタスクにしか対応していないので、電圧測定と電流測定のタスクを同時に
ということは、仮にDev/ai1に CreateAICurrentChanを割り当てたとしてもできないという認識で良さそうですね。
電流測定の仕組みのご解説まで丁寧にありがとうございます。大変わかり易く理解できました。ありがとうございました。