10-18-2014 03:51 AM
お世話になっております。
学生の松井と申します。
usb6251を用いて、同一チャンネル(ao1)で、最初に1サンプル電圧を出力し、その後有限サンプル電圧出力をおこない、for ループで繰り返すプログラムを作成しています。添付ファイル1のプログラムでは
1回目のループでは、動作するのですが、2回目からエラーコード200288が出現し、動作しません。
解決策として添付ファイル2に示しましたように、ループ内に「DAQmx仮想チャンネル作成を」挿入し、1サンプル電圧を出力をおこなった後に「DAQmxタスクをクリア」をおこない、エラーワイヤで接続したループ内の電圧出力有限サンプル「仮想チャンネルを作成」に接続し、ループする方法を考えています。
しかし、この方法ではループ内に「仮想チャンネル作成」、「タスクをクリア」があるためループ速度が遅くなることが懸念されます。
forループの外に「仮想チャンネル作成」、「タスクをクリア」を挿入し、ループ速度が遅くならない方法についてご教示いただけますと助かります。
よろしくお願い致します。
10-19-2014 07:54 PM
タイミングに有限サンプルを指定されていますが、有限サンプルは「指定したデータ」分のサンプルを生成するために使用しますので、
今回のご使用にはあまり適さないかと考えています。
今回アプリケーションでは指定したサンプルを、一定タイミングで繰り返し生成されることが目標でしょうか。
サンプルプログラムの中に
電圧(非生成) - 連続出力
というサンプルがあります。
このサンプルでは再生成の許可を行わず、指定したサンプルのみ信号生成を行います。
http://digital.ni.com/public.nsf/allkb/08712573AEFC8F15862575930029B745
こちらのサンプルは作り込まれているもので、処理も早いかと思います。
よろしければこちらもご確認いただきましてお使いいただけるかご確認ください。
10-21-2014 03:20 AM