NI製品ディスカッション

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

50103

解決済み
解決策を見る

お世話になっております。

 

現在、VC++とUSB-6003を利用して電流と電圧の同時測定プログラム作成しています。

その際に、エラーコード-50103が発生していますが、私の力不足で解決策が見つけられない状態です。

考えられる原因や、使用する関数などを教えていただければ幸いです。

最終的には、電圧送信と電流電圧測定を同時にしたいと考えています。

 

アプリケーション側では、以下の手順でプログラムを組んでいます。

1.DAQmxCreateTask

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, ""))

3.DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000)

4.DAQmxRegisterEveryNSamplesEvent(taskHandle,DAQmx_Val_Acquired_Into_Buffer,1000,0,EveryNCallback,NULL)

5.DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL)

6.DAQmxStartTask(taskHandle)

 

長くなるため省略させていただきましたが、1.のCreateTaskの段階から電圧測定chにtaskHandleVol、電流測定chにtaskHandleCurという形で分けて、1~6のそれぞれを処理しています。

初歩的な質問で申し訳ありませんが、どうかご助力の程よろしくお願い致します。

0 件の賞賛
メッセージ1/3
3,995件の閲覧回数
解決策
トピック作成者Naaaaaanが受理

こんにちは。


最終的には、電圧送信と電流電圧測定を同時にしたいと考えています。

 

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 といった製品は一つのアナログ入力のタスクにしか対応していないので、電圧測定と電流測定のタスクを同時に作成、使用できません。

基本的に内部で電圧を計っているだけなので、電流を測定したいのであれば、計測された電圧と電圧がかかっている抵抗値から計算する方法となります。

メッセージ2/3
3,954件の閲覧回数

doradorachan

 

こんにちは。丁寧なご回答ありがとうございます。

 

>USB 6003 といった製品は一つのアナログ入力のタスクにしか対応していないので、電圧測定と電流測定のタスクを同時に作成、使用できません。

 

ということは、仮にDev/ai1に CreateAICurrentChanを割り当てたとしてもできないという認識で良さそうですね。

電流測定の仕組みのご解説まで丁寧にありがとうございます。大変わかり易く理解できました。ありがとうございました。

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