NI製品ディスカッション

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

複数チャンネルDAQ時のチャンネル間の時間同期

BNC-2110,PXle-6124を使用して2チャンネルの電圧同時測定をしています。

 

測定概要:

不定期に発生するパルス信号が閾値を超えたタイミングをトリガーとして、データを任意の時間分だけ保存する。

トリガーはそれぞれのチャンネルで掛けられ、一方のチャンネルでトリガーが掛ったら、同じタイミングでもう片方のチャンネルもトリガーを掛ける。

 

この方式をとる理由は、

パルスがチャンネル間で数十マイクロ秒の時間差を持って発生し、その時間差を正確に測定したいらです。

理想的には以下のグラフのように2つの信号のarrival timeにずれがあって欲しいです。

Bi_arrival.png

 

しかし、私のプログラムではarrival time が完全に一致しています。 

Pb_arrival.png

 

本来は上記の場合

青でトリガー検出して、そのタイミングでオレンジもデータを切り取るといった方法をとっているので、時間差が見えるはずなのですが見えないのはもしかしてチャンネル間で時間が同期されていないという理由があるからでしょうか?

 

 

 

 

 

  

 

 

 

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

不定期に発生するパルス信号が閾値を超えたタイミングをトリガーとして、データを任意の時間分だけ保存する。

トリガーはそれぞれのチャンネルで掛けられ、一方のチャンネルでトリガーが掛ったら、同じタイミングでもう片方のチャンネルもトリガーを掛ける。

「それぞれのチャンネルでトリガー」が不可解です。

どのようなプログラムですか?

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

説明不足で申し訳ありません

 

閾値を超えたかどうかの判断をそれぞれのチャンネルが行い、いずれかのチャンネルで電圧値が閾値を超えた場合、全てのチャンネルのデータを保存するというものです。

上記の図で言うと、青のパルスが閾値を超えたので、そのタイミングで青とオレンジのデータ両方をキャプチャしています。

 

プログラムが今手元にないのでまた今度お渡ししてご確認して頂きたいです。

QMHを使いそれなりに大きなプロジェクトになってしまっているのですが、プロジェクトごとお渡ししてもよろしいでしょうか?

 

LabVIEW2016を使っています。

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

ソフトウェアでアナログトリガを実装しているということですね。

VIを拝見する前の予想ですが、QMHでDAQ読み取りループからトリガ検索ループにデータを転送していて、チャンネル0と1を別々のループで処理しているとしたら、2つのループの同時性は怪しくなります。

 

> プロジェクトごとお渡ししてもよろしいでしょうか?

サイズが大きいのは構いませんが、プロジェクト全体が公開されてしまいます。よろしいのでしょうか?

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

>チャンネル0と1を別々のループで処理しているとしたら、2つのループの同時性は怪しくなります。

 

設計上、すべてのチャンネルを1つの配列でまとめているので、ループの同時性による誤差はないと考えています。

 

>プロジェクト全体が公開されてしまいます。よろしいのでしょうか?

構わないです。

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

確かにすべてのチャンネルを一緒に転送しているので、チャンネル間の同時性は問題ないと思います。

波形グラフはノーティフィケーションで更新され続けているので、この表示は必ずしもトリガ時の波形ではなさそうです。

 

・ 時間差の無い波形はどこ(グラフ、ファイル)のデータですか?

・ 時間差の無い波形は実際の信号中にも表れることがありますか?

・ setting.xmlが無いので実行できません。お送りいただくかSample.RateとSample/Channelだけでも教えてください。

 

0 件の賞賛
メッセージ6/13
2,693件の閲覧回数

>時間差の無い波形はどこ(グラフ、ファイル)のデータですか?

ファイルのデータです。

 

>時間差の無い波形は実際の信号中にも表れることがありますか?

波形によっては時間差のないものもあります。

 

>setting.xmlが無いので実行できません。お送りいただくかSample.RateとSample/Channelだけでも教えてください。

Sample.Rateは 1,000,000、Sample/Channelは 100,000 です。

 

 

0 件の賞賛
メッセージ7/13
2,687件の閲覧回数

setting.xmlはファイル中にありました(見落としごめん)。グローバル1.viが無かったのでI32だけで作ったら動きました。
PXIe-6124のシミュレーションデバイスで試したところ、時間ずれなく保存できていました。


確認方法は以下の通り:
1) 2チャンネルとも同一のデータにして(Ch1をCh0のデータで入れ替えReverse.viもスキップ)ノーティフィケーションで送る
2) トリガレベルをいくつか変えてログ
3) Ch0とCh1の同一N番目のファイルを読み込んで比較し完全に重なることを確認

 

PXIe-6124はA/Dを4個搭載していて同時サンプリングでき、チャンネル間スキューはスペック上5ns以下に収まるはずです。

 

たまたま時間ずれの無い波形だった、とか?(そんなことないかもしれませんが)

0 件の賞賛
メッセージ8/13
2,682件の閲覧回数

プログラムを確認するのがしんどいので少し別視点から質問させてください。

 

このプログラムを実行して、フロントパネルに表示される測定波形はずれを持っているのでしょうか。それとも表示の時点ですでにずれがなくなってしまっているのでしょうか。

 

その信号をオシロスコープなどで測定すると時間のずれは測定されるのでしょうか。また、作られたプログラムではなく、LabVIEW付属のサンプルプログラム(ヘルプ→サンプルを検索→ハードウェア入力と出力→DAQmx→アナログ入力→電圧 ‐ 有限、など)でアナログトリガで測定した際に意図した波形が測定されるのでしょうか。

 

良ければ教えていただけると幸いです。

0 件の賞賛
メッセージ9/13
2,673件の閲覧回数

ご確認ありがとうございます。

 

>PXIe-6124のシミュレーションデバイスで試したところ、時間ずれなく保存できていました。

 

例えばデータをわざとずらして、保存したデータがその分ずれているかどうかの確認はできないでしょうか?

もしかしたら波形整形(トリガー点を固定して、任意のサンプル数で切り出す)プログラムが良くないかもしれません。

 

たまたま時間ずれの無い波形だった、とか?(そんなことないかもしれませんが)

理論的には時間差が出て欲しいですが、パルスを発生する検出器の問題で見れない可能性がないとは言い切れないです。

 

それと、別の話になりますが、タイムスタンプの有無がこのプログラムの同期性に影響するといったことはありますでしょうか?

0 件の賞賛
メッセージ10/13
2,659件の閲覧回数