From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

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

複数電圧同時測定_USB-6003

お世話になっております。USB-6003を使用した電流出力と複数電圧同時測定プログラムを作成しており、1つわからないことが有ります。

言語はC++、VisualStudio2015を使用しています。以下に、簡単なプロセスを示します。

 

1.DAQmxCreateTask

2.DAQmxCreateAIVoltageChan(AItaskHandle,"Dev1/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL))

  DAQmxCreateAIVoltageChan(AItaskHandle,"Dev1/ai1","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL)

     DAQmxCreateAOVoltageChan(AOtaskHandle, "Dev1/ao0", "", -10.0, 10.0, DAQmx_Val_Volts, NULL)

3.DAQmxCfgSampClkTiming(taskHandle,"",125.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,100)

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

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

6.DAQmxStartTask(taskHandle)

  DAQmxReadAnalogF64(AItaskHandle, 100, 10.0, DAQmx_Val_GroupByScanNumber, data1, 200, &read, NULL)

  DAQmxReadAnalogF64(AItaskHandle, 100, 10.0, DAQmx_Val_GroupByScanNumber, data2, 200, &read, NULL)

 

質問なのですが、2.で電圧入力チャンネルをai1、ai2とした場合、6.のReadコードで読み取ったデータの格納先をdata1、data2にそれぞれ設定したいと考えています。

しかし、実際に取得したデータを見てみると、data1とdata2にほぼ同じデータが入ってしまいます。解決方法などのご教示の程お願い致します。

 

0 件の賞賛
メッセージ1/5
4,073件の閲覧回数

Naaaaaan 様

 

2.同じAItaskHandleで2回DAQmxCreateAIVoltageChanを実行しているので、上書きされて"Dev1/ao0"の方だけ設定が残っているので、ハンドル名を分けてAItaskHandle0と、AItaskHandle1にしてはいかがでしょう?

 

 

0 件の賞賛
メッセージ2/5
4,038件の閲覧回数

KONDOH様

 

ご提案ありがとうございます。アドバイスを頂きました通りAItaskHandle0、AItaskHandle1を作成した所、エラーコード-50103が発生しました。

http://digital.ni.com/public.nsf/allkb/09929182FB4BCA57862575A000035443

のケース6を参照した所、CreateChanelを1つにまとめるよう記載があったため、下記のように変更しました。

 

DAQmxErrChk(DAQmxCreateAIVoltageChan(AItaskHandle0, "Dev1/ai0, Dev1/ai1", "", DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, NULL));

 

DAQmxErrChk(DAQmxReadAnalogF64(AItaskHandle0, 100, 10.0, DAQmx_Val_GroupByScanNumber, data1, 200, &read, NULL));

 

この場合、測定は可能なのですがdata1に何の波形かわからないデータが格納されます。

度々申し訳ございませんが、ご存知のことございましたらご教授お願い致します。

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

Naaaaaan 様

 

> この場合、測定は可能なのですがdata1に何の波形かわからないデータが格納されます。

> 度々申し訳ございませんが、ご存知のことございましたらご教授お願い致します。

 

DAQmx_Val_GroupByScanNumberのオプションを使っているので、Ch0とCh1のデータが交互に並ぶと思います。

http://zone.ni.com/reference/en-XX/help/370466V-01/mxcncpts/interleaving/

 

DAQmx_Val_GroupByChannelを試してはいかがでしょうか?

 

 

メッセージ4/5
4,030件の閲覧回数

KONDOH

 

返信遅くなりまして申し訳ございません。

 

DAQmx_Val_GroupByChannelを使用して電流入力プログラムのデータ出力は解決できました。

ありがとうございました。

0 件の賞賛
メッセージ5/5
4,001件の閲覧回数