09-29-2023 01:21 AM
BNC-2110,PXle-6124を使用して2チャンネルの電圧同時測定をしています。
測定概要:
不定期に発生するパルス信号が閾値を超えたタイミングをトリガーとして、データを任意の時間分だけ保存する。
トリガーはそれぞれのチャンネルで掛けられ、一方のチャンネルでトリガーが掛ったら、同じタイミングでもう片方のチャンネルもトリガーを掛ける。
この方式をとる理由は、
パルスがチャンネル間で数十マイクロ秒の時間差を持って発生し、その時間差を正確に測定したいからです。
理想的には以下のグラフのように2つの信号のarrival timeにずれがあって欲しいです。
しかし、私のプログラムではarrival time が完全に一致しています。
本来は上記の場合
青でトリガー検出して、そのタイミングでオレンジもデータを切り取るといった方法をとっているので、時間差が見えるはずなのですが見えないのはもしかしてチャンネル間で時間が同期されていないという理由があるからでしょうか?
09-29-2023 02:41 AM
不定期に発生するパルス信号が閾値を超えたタイミングをトリガーとして、データを任意の時間分だけ保存する。トリガーはそれぞれのチャンネルで掛けられ、一方のチャンネルでトリガーが掛ったら、同じタイミングでもう片方のチャンネルもトリガーを掛ける。
「それぞれのチャンネルでトリガー」が不可解です。
どのようなプログラムですか?
09-29-2023 10:17 PM
説明不足で申し訳ありません
閾値を超えたかどうかの判断をそれぞれのチャンネルが行い、いずれかのチャンネルで電圧値が閾値を超えた場合、全てのチャンネルのデータを保存するというものです。
上記の図で言うと、青のパルスが閾値を超えたので、そのタイミングで青とオレンジのデータ両方をキャプチャしています。
プログラムが今手元にないのでまた今度お渡ししてご確認して頂きたいです。
QMHを使いそれなりに大きなプロジェクトになってしまっているのですが、プロジェクトごとお渡ししてもよろしいでしょうか?
LabVIEW2016を使っています。
09-30-2023 08:46 AM
ソフトウェアでアナログトリガを実装しているということですね。
VIを拝見する前の予想ですが、QMHでDAQ読み取りループからトリガ検索ループにデータを転送していて、チャンネル0と1を別々のループで処理しているとしたら、2つのループの同時性は怪しくなります。
> プロジェクトごとお渡ししてもよろしいでしょうか?
サイズが大きいのは構いませんが、プロジェクト全体が公開されてしまいます。よろしいのでしょうか?
10-01-2023 11:29 PM
>チャンネル0と1を別々のループで処理しているとしたら、2つのループの同時性は怪しくなります。
設計上、すべてのチャンネルを1つの配列でまとめているので、ループの同時性による誤差はないと考えています。
>プロジェクト全体が公開されてしまいます。よろしいのでしょうか?
構わないです。
10-02-2023 01:16 AM
確かにすべてのチャンネルを一緒に転送しているので、チャンネル間の同時性は問題ないと思います。
波形グラフはノーティフィケーションで更新され続けているので、この表示は必ずしもトリガ時の波形ではなさそうです。
・ 時間差の無い波形はどこ(グラフ、ファイル)のデータですか?
・ 時間差の無い波形は実際の信号中にも表れることがありますか?
・ setting.xmlが無いので実行できません。お送りいただくかSample.RateとSample/Channelだけでも教えてください。
10-02-2023 03:51 AM
>時間差の無い波形はどこ(グラフ、ファイル)のデータですか?
ファイルのデータです。
>時間差の無い波形は実際の信号中にも表れることがありますか?
波形によっては時間差のないものもあります。
>setting.xmlが無いので実行できません。お送りいただくかSample.RateとSample/Channelだけでも教えてください。
Sample.Rateは 1,000,000、Sample/Channelは 100,000 です。
10-02-2023 05:26 AM
setting.xmlはファイル中にありました(見落としごめん)。グローバル1.viが無かったのでI32だけで作ったら動きました。
PXIe-6124のシミュレーションデバイスで試したところ、時間ずれなく保存できていました。
確認方法は以下の通り:
1) 2チャンネルとも同一のデータにして(Ch1をCh0のデータで入れ替えReverse.viもスキップ)ノーティフィケーションで送る
2) トリガレベルをいくつか変えてログ
3) Ch0とCh1の同一N番目のファイルを読み込んで比較し完全に重なることを確認
PXIe-6124はA/Dを4個搭載していて同時サンプリングでき、チャンネル間スキューはスペック上5ns以下に収まるはずです。
たまたま時間ずれの無い波形だった、とか?(そんなことないかもしれませんが)
10-02-2023 10:58 AM
プログラムを確認するのがしんどいので少し別視点から質問させてください。
このプログラムを実行して、フロントパネルに表示される測定波形はずれを持っているのでしょうか。それとも表示の時点ですでにずれがなくなってしまっているのでしょうか。
その信号をオシロスコープなどで測定すると時間のずれは測定されるのでしょうか。また、作られたプログラムではなく、LabVIEW付属のサンプルプログラム(ヘルプ→サンプルを検索→ハードウェア入力と出力→DAQmx→アナログ入力→電圧 ‐ 有限、など)でアナログトリガで測定した際に意図した波形が測定されるのでしょうか。
良ければ教えていただけると幸いです。
10-03-2023 02:03 AM
ご確認ありがとうございます。
>PXIe-6124のシミュレーションデバイスで試したところ、時間ずれなく保存できていました。
例えばデータをわざとずらして、保存したデータがその分ずれているかどうかの確認はできないでしょうか?
もしかしたら波形整形(トリガー点を固定して、任意のサンプル数で切り出す)プログラムが良くないかもしれません。
>たまたま時間ずれの無い波形だった、とか?(そんなことないかもしれませんが)
理論的には時間差が出て欲しいですが、パルスを発生する検出器の問題で見れない可能性がないとは言い切れないです。
それと、別の話になりますが、タイムスタンプの有無がこのプログラムの同期性に影響するといったことはありますでしょうか?