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製品ディスカッション

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

DAQデバイスからのデジタル出力にミリ秒精度の時間差をつける方法について

解決済み
解決策を見る

DAQデバイス(USB-6363)の2つのデジタル出力からミリ秒精度の時間差をつけて立ち上がり信号を出したいと考えています。

 

現在、以下のようなLabVIEWプログラムで2つの出力に時間差をつけています(添付の図)。

1.デジタル出力の初期化(どちらもLOWにする)。

1.DAQアシスタント1を利用してデジタル出力1から立ち上がり信号を出す。

2.時間差を高解像度ポーリング待機でつける。

3.DAQアシスタント2を利用してデジタル出力2から立ち上がり信号を出す。

 

しかし、上記の方法では立ち上がり信号の時間差に1ミリ秒のズレが出てしまいます。また、時間差を10msに設定していてもオシロ上で確認する立ち上がりの時間差が17msくらいになります。

プログラムの組み方に問題があるのでしょうか?問題があるとした場合、どのように組めばミリ秒精度の時間間隔で立ち上がり信号を制御することが可能でしょうか?

 

また、これは別の質問になりますが、LabVIEW上でマイクロ秒精度の制御は可能なのでしょうか?

 

ご存知の方がいらっしゃいましたら、教えていただけると幸いです。こちらからの情報に不足があれば、お知らせください。

宜しくお願い致します。

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

Windows上で正確にクロックを制御することは不可能ですし、DAQアシスタントがUSBバスを通して指令を出すところでも遅延が生じます。

また、DAQアシスタントは起動するたびにUSB-DAQに初期化と終了をかけるので、その影響の遅延も出ますので、上記の合算で17msなどのタイミングずれが生じているのだと思います。

「LabVIEW上でマイクロ秒単位の制御はできないのでしょうか」という質問はこのフォーラム上でもよく見かけますが

LabVIEWの問題というよりもLabVIEWが動作のベースにしているWindows OSの動作に時間制御が依存する関係で、ソフトウェアだけで制御するのは不可能です。

 

ただし、USB-6363を使って正確に10ms間隔で異なるデジタル端子から遅延させた信号を出力させること自体は可能です。

方法はいくつかありますが最もシンプルな方法は、DAQアシスタントから有限のデジタル出力を設定して、サンプルレートを100Hz、サンプル数を2、2ポートをブールの配列で、まず1つ目のサンプルで片方をHIGH、もう一方をLOWとして、2つ目のサンプルで両方HIGHにする、などはいかがでしょうか。

 

一度お試しください。

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

ご回答していただきありがとうございます。ご提案していただいた方法で試してみます。

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