From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI製品ディスカッション

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

DAQmxStartTaskの戻り値に関して

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

 

現在、電圧値取得のプログラムを作成しています。

NI-DAQmx シミュレーションデバイスを用いてデバッグをしているのですが、DAQmxStartTaskが異常終了します。

戻り値ですが、-50103(DAQmxErrorPALResourceReserved)が返ってきます。

使用しているOSは、Windows XP、アプリケーションは、サンプルであるVC++をベースにしたものと、C++ Builder2010を使用して作成した両方を試しています。

 

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

1.DAQmxCreateTask

2.DAQmxCreateAIVoltageChan(taskHandle,"Dev2/ai0","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL))

  DAQmxCreateAIVoltageChan(taskHandle,"Dev2/ai1","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL)

3.DAQmxCfgSampClkTiming(taskHandle,"",10000.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)

 

また、NI-DAQmx シミュレーションデバイスは、以下のように設定しています。

・NI-DAQmxデバイスで、NI USB-6215を選択し、Dev2を使用。

・シミュレーションタスクを作成。

 ここで、Dev2/ai0、Dev2/ai1を使用する。

 Dev2/ai0の信号入力範囲は、10~-10、Dev2/ai1の信号入力範囲は5~-5

 タイミング設定は、集録モードは「連続サンプル」、読み取るサンプル数は「100」、レート(Hz)は「1k」

 

上記設定にてアプリケーションを起動すると、DAQmxStartTaskにて、-50103(DAQmxErrorPALResourceReserved)が返ってきます。

しかし、NI-DAQmx シミュレーションデバイスの集録モードを「Nサンプル」にすると、DAQmxStartTaskも正常で返ってきて、データ取得も可能です。

 

NI-DAQmx シミュレーションデバイスの集録モードを変更することで、なぜDAQmxStartTaskが正常終了するか、異常終了するのか、わかりません。

初歩的な質問で申し訳ありませんが、ご存知の方がいましたら教えていただけませんでしょうか。

 

よろしくお願いいたします。

 

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

K.Tani 様

 

平素より NI 製品をご利用いただきまして誠にありがとうございます。

日本ナショナルインスツルメンツ技術部の巳波と申します。

 

K.Tani 様が実行されている「シミュレーションタスク」というのは MAX (Measurement & Automation Explorer) 上で「データ設定」を右クリック → 「新規作成」 → 「NI-DAQmx タスク」 から作成されたものでしょうか。

 

MAX の「NI-DAQmx タスク」が実行中にはそのデバイスの機能が予約されますので、別のアプリケーション (Visual C++ など)から同じデバイスの同じ機能を使用しようとすると「リソースが予約されています」といった エラーが出ます。

 

プログラムを動作させるためには MAX の「デバイスとインタフェース」 でシミュレーションデバイスが作成されていれば十分ですので、C++ のプログラムと MAX の「NI-DAQmx タスク」は同時に実行しないようにしてください。

 

宜しくお願い致します。

*********************************************************************************
日本ナショナルインスツルメンツ株式会社 技術部 巳波裕介
Yusuke Minami, Applications Engineering, National Instruments Japan
技術サポートウェブページ: http://www.ni.com/support/ja
お問い合わせフリーダイヤル: 0120-527196
*********************************************************************************
0 件の賞賛
メッセージ2/3
2,992件の閲覧回数

日本ナショナルインスツルメンツ技術部 巳波様

 

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

 

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

シミュレーションタスクは、回答していただいた内容にて、使用しています。

使用方法は理解しました。

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

これからもよろしくお願いいたします。

 

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