NI製品ディスカッション

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

2つの周波数カウンタの同時制御

LabVIEW初心者で初めての投稿です。何か無礼なことがありましたらご容赦ください。

現在、2つの周波数カウンタを用いて別々のパルスの周波数を測定しつつそれらの値をまとめて1つのファイルに書き込むというVIを作成しております。(添付VI参照)

このVIを用いて2つの周波数カウンタで同じパルスを測定したところ、本来ならば同じ値が2つ出てくるはずなのになぜか微妙に異なる値が出てきてしまうことがわかりました。

周波数カウンタ側の問題かもしれませんがLabVIEWのプログラムの組み方の問題かもしれないのでぜひともLabVIEWに詳しい方に原因を教えていただきたいです。

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

すべてをダウンロード
0 件の賞賛
メッセージ1/15
5,460件の閲覧回数

こんにちは。

気になる点を何点か

 

・「同じ値」と「微妙に異なる」というのは、どのくらいの精度の話でしょうか

計測に誤差はつくものですので、14 と 14.00001 を同じ値として扱うケースも十分あるかとおもいます。

 

・最終的な値の確認はどこでしてますか

ソフトでもハードでも問題の切り分けは必要です。

ファイルに保存されている値がおかしければ、書き込む直前の値を確認してください。

書き込む直前の値がおかしければ、値が作成される部分を確認してください。(今回は周波数カウンタのドライバ VI の部分)

ドライバ VI からの値がおかしければ、周波数カウンタ側の値を確認してください。(ディスプレイなどでデバッグできるかと)

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

ご指摘ありがとうございます。

それぞれについてお答え致します。

 

・同じ値というのは完全に1の位まで数字が一致することを想定しております。微妙に異なるというのは10の位から異なるということです。

具体的には、現在1GHzのものを計測するときに2つの周波数カウンタの出力値の差の標準偏差が約10Hzという状況です。

 

・最終的な値の確認はファイルに保存されている値を用いていました。ご指摘いただいてから確認したところ周波数カウンタのディスプレイに表示される値の時点で差があるようです。この確認のときに分かったのですが、カウントのタイミングが同じではないようです(数値がディスプレイに表示されるタイミングが一緒ではないようです)。

そこで、お聞きしたいのですが自分はミリ秒待機VIで同時測定するようプログラムしたつもりだったのですがこれは間違っているのでしょうか。(同期に関しては他にオカーレンスやランデブーなどのVIがあるようですがよくわかりません)

0 件の賞賛
メッセージ3/15
5,373件の閲覧回数

周波数カウンタのディスプレイで表示されている値が異なっているということですので、LabVIEW よりもまず周波数カウンタ側の同期などが必要になるかと。

LabVIEW のプログラムから二つの周波数カウンタに集録開始のコマンドを同時に送ったというプログラムを書いてもミリ秒単位のズレが発生します。

1Ghz の周波数を扱える周波数カウンタであれば、トリガ信号をもとにカウント開始をする機能があると思いますがいかがでしょう。

そういった機能があれば「カウント開始をトリガ信号をもとに行う」という設定を行う周波数カウンタ用のVI が用意されていると思います。

 

ちなみに二つの周波数カウンタで1 Hz 単位で同じ値が出るはずということですが、

仕様と入力している信号については問題ないと仮定していいのでしょうか。

0 件の賞賛
メッセージ4/15
5,353件の閲覧回数

アドバイスしていただき誠にありがとうございます。

トリガ信号をもとにカウント開始をする機能を用いたところ1Hz単位で同時測定することができるようになりました。

ただ、それはLabVIEWを用いないときはできるのですがLabVIEWを用いるとずれて測定するようになってしまいます。

 

具体的に説明させていただくと、1Hzのトリガ信号を用いて測定した際に片方の周波数カウンタが測定したあとに

残りの周波数カウンタが測定するという状態です。1Hzなので1秒ごとに測定するはずなのですが、順々に測定しているので結果として

2秒ごとにしかもバラバラに測定していることになっています。

「実行のハイライト」を用いてLabVIEW上で確認するとループの中で測定が同時ではなく片方が測定したあとにもう片方が測定するという状態になっていることがわかりました。

これを同時測定にするにはどうすればよろしいでしょうか。

何回も質問してしまい申し訳ありませんがご回答よろしくお願い致します。

0 件の賞賛
メッセージ5/15
5,329件の閲覧回数

plusnine様、

こんにちは、

 

いくつか気になる事があります。

 

>>ただ、それはLabVIEWを用いないときはできるのですがLabVIEWを用いるとずれて測定するようになってしまいます。

これは別のプログラムを利用すると同期測定が可能と言う事ですか?具体的にどういった状態ですか?

 

>>2秒ごとにバラバラに測定していること

もし可能でしたら、この状態のスクリーンショットを見せてもらってもよろしいですか。

 

同期測定動作を確認するためには「実行のハイライト」よりは「プローブ」を利用することをお勧めします。「実行のハイライト」はゆっくりデバッグを行うため、この場合は適切ではないと思います。

0 件の賞賛
メッセージ6/15
5,293件の閲覧回数

コメントありがとうございます。

それぞれお答え致します。

 

>>これは別のプログラムを利用すると同期測定が可能と言う事ですか?具体的にどういった状態ですか?

同期測定可能というのはLabVIEWで制御しないで(パソコンを周波数カウンタにつながずに)ただ周波数カウンタを動かしたときということです。

 

>>もし可能でしたら、この状態のスクリーンショットを見せてもらってもよろしいですか。

添付ファイルご参照ください。個人的にはwhileループの中では同時に周波数カウンタのVIが進行すると思っていたのですがどうも違うような気がしてきました。自分の目的は2つの周波数カウンタで同時測定して得られた2つのデータを1つのファイルに書き込むというプログラムを作ることなのですが、うまくいかないのが現状です。タイミングストラクチャや生産者消費者ループを試したのですがイマイチです。

 

 

0 件の賞賛
メッセージ7/15
5,291件の閲覧回数

私も計測機専門家ではないのではっきりした答えは無いですが気になる点があります。

 

While ループ内では同期するためのコードを使いになっているので問題無いとおもいます。フロントパネルを見ないとわからないですが、「Configure Reference Oscilloscope」関数と「Configure Arming」関数が少し怪しいです。

 

1.「Configure Reference Oscilloscope」関数では外部信号をTimebaseとして測定するとおもいますが、こちらにはどのぐらいの高周波数信号を入力していますか?それに両方同じTimebaseを参照していますか?

 

2.「「Configure Reference Oscilloscope」関数が両方実行された後に両方のConfigure Arming」関数は同じタイミングで実行される必要があります。添付ファイルのとおりにエラーの配線をすると両方のArming関数が両方のReference関数後に同じタイミングで実行します。

 

 

ちなみに、お使いになっている計測器はTektronixのカウンタですか?Picotestのカウンタですか?機械の組み合わせはどのようになっていますか?

 

フロントパネルや信号のズレも見れるともっとはっきり判断出来るとおもいますが。。。

0 件の賞賛
メッセージ8/15
5,242件の閲覧回数

申し訳ございません。

添付ファイルを忘れていました。

0 件の賞賛
メッセージ9/15
5,225件の閲覧回数

>>1.「Configure Reference Oscilloscope」関数では外部信号をTimebaseとして測定するとおもいますが、こちらにはどのぐらいの高周波数信号を入力していますか?それに両方同じTimebaseを参照していますか?
10MHzのRbクロックを両方の周波数カウンタに接続して用いてます。ちなみに、External Armは1HzのTTLを用いてます。

>>2.「「Configure Reference Oscilloscope」関数が両方実行された後に両方のConfigure Arming」関数は同じタイミングで実行される必要があります。添付ファイルのとおりにエラーの配線をすると両方のArming関数が両方のReference関数後に同じタイミングで実行します。
試してみましたがズレがでました。ただ、今回はたまに片方が1秒間隔で測定することがあることがわかりました。具体的には今までは1秒ごとにA→B→A→Bという感じだったのですが今回はA→B→A→Aという時がたまにありました(AとBが逆のときもありました)。

>>ちなみに、お使いになっている計測器はTektronixのカウンタですか?Picotestのカウンタですか?機械の組み合わせはどのようになっていますか?
今はTektronixのカウンタを2台使っています。

>>フロントパネルや信号のズレも見れるともっとはっきり判断出来るとおもいますが。。。
添付画像1をご覧ください。チャートに表示されてるのはシグナルジェネレーターからの1GHzの信号を2台の周波数カウンタで測定した結果です。ゆらいでるのはシグナルジェネレーター自体のノイズがかかわっているからだと思われます。すごくゆらいでるように見えるかもしれませんがこれでも2台の結果の差をとって標準偏差を計算すると0.2Hzくらいです。ちなみに、2台ともフロントパネルでの設定は同じにしております。Rbクロックを外部リファレンスとしてまた1HzのTTLをExternal Armとして立ち上がりで測定開始、立ち下りで測定終了です。
添付動画(gifファイル)はLabVIEWで制御中の周波数カウンタのパネルです。ご覧の通り、交互に測定されてることがお分かりになると思います。個人的には添付画像2に書いたことが起こってる気が致します。

 

 

すべてをダウンロード
0 件の賞賛
メッセージ10/15
5,204件の閲覧回数