NI製品ディスカッション

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

波長計を読み取る値のプログラムの改良

LabVIEW初心者です。

波長計で読み取った値を表示するプログラムの改良をしたいです。

プログラムに表示されるグラフの縦軸が周波数(THz)、横軸がcount(0,1…)となっています。

縦軸を波長(nm)横軸を時間(s)で読み取れるようしたいです。

このようにすることは可能でしょうか。

 

1.png

 

2.png

 

 

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

だいぶ前に投稿されていらっしゃるので、見ていらっしゃらない可能性が高いかもしれませんが・・・。

 

使用しているのは波形チャートかと思います。波形グラフでも同じですが、LabVIEWで何か値をプロットさせる際にはその通りのデータを表示器に配線する必要があります。

今回では、現状周波数としてデータが「ライブラリ関数呼び出しノード」から得られているのであれば、これを波長単位に直して(計算して)波形チャートに配線する必要があるかなと思います。

また、波形チャートの横軸は、「プロットデータの番号」になります。例えば、波形チャートにデータが渡されるのが1秒ごとであれば、横軸は「1秒ごとのプロット」になりますが、それ以外のタイミングで毎回データが渡されるのであれば横軸は単なるデータの順番にすぎません。

 

データを1秒ごとに取得したい、ということであれば、Whileループに待機関数をおいて「1000」を配線すれば実現できそうです(待機関数にはミリ秒単位で待機する時間を指定します)。今のプログラムで使用されているのは「次のミリ秒倍数まで待機」の関数ですね。これに「2」を配線しているので、Whileループは(一番最初を除いて)2ミリ秒周期で回ろうとするはずです(ライブラリ関数呼び出しノードの処理時間によっては指定した時間通りには回らない可能性もありますが)。

 

もしライブラリ関数呼び出しノードで指定しているdllから時間のデータも取り出せて、「ある時間のあるデータ」という、X、Yのペアが取り出せるのであれば、波形チャートではなくXYグラフを使用する方法も考えられるかと思います。

 

 

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

ご回答いただき、ありがとうございました。

1つ分からないことがありましたので、質問します。

 

この部分のやり方が分からないです。↓

「使用しているのは波形チャートかと思います。波形グラフでも同じですが、LabVIEWで何か値をプロットさせる際にはその通りのデータを表示器に配線する必要があります。

今回では、現状周波数としてデータが「ライブラリ関数呼び出しノード」から得られているのであれば、これを波長単位に直して(計算して)波形チャートに配線する必要があるかなと思います。」

LabVIEWにあまり詳しくないので教えていただけると嬉しいです。

 

加えて質問があります。

下の写真のプログラムのようにデータ保存をできる、また、横軸の時間スケールをこのプログラムと同様に合わせたいと思っています。どのようにすればよろしいでしょうか。

 

2.png

 

1.png

 

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

計算が正しいかどうかはともかくとして、私が伝えたかった意図をそのままプログラムに反映させたものを添付しますね。

周波数データ(添付プログラムでは乱数で代用)を、波長に変換(光速度÷周波数)しています。

 

二番目のご質問については、「データ保存」はブロックダイアグラムを見れば何をやっているのか把握できたのですが、「横軸の時間スケールをこのプログラムと同様に合わせたい」の部分がちょっと理解できていないです。

最終的にどのような結果、見た目としたいのか、ポンチ絵などで示していただくことはできますか?

0 件の賞賛
メッセージ4/7
1,148件の閲覧回数

ありがとうございます。

送っていただいたプログラムを参考にします。

 

2番目の質問ですが、添付した電流生成プログラムのようにテータ保存ができて、横軸の測定時間を添付ファイルと同様のものにしたいです。

電流生成プログラムと波長測定プログラムを1つのプログラムにして動かすイメージです。

LabVIEW初心者のため、分からないことが多くて申し訳ないです。

また、こちらの言うことが分からない場合は、再度質問お願いします。

何度もお手数おかけしてしまい、申し訳ないです。

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

そんなに申し訳なく思う必要ないですよ。。分からないものはずっと分からないわけですし。他の方は知りませんが私も慣れるのに苦労しましたし。

 

ただ、おそらくまだご質問の意図を正確に把握できていないかもしれないですが、測定時間と仰っている部分については、DAQアシスタントで設定している「サンプルレート」と「サンプル数」を変えることで変えられると思います。

 

波長測定は1秒間で何点のデータを得られますか?仮に1000点だとしたら、その測定のレートは1000 Hzということになりますね。

であれば、電流生成プログラムも、1秒間ごとにグラフが更新されるような状態にすればいいのではないかなと思いました。

Express VIの中身を見る限り、レートが1 kHzで読み取るサンプル数が100となっているので、0.1秒ごとにグラフが更新されるイメージになるかなと思います。サンプル数を1000にしたら1秒ごとにグラフが更新されると思いますがいかがでしょうか?

0 件の賞賛
メッセージ6/7
1,126件の閲覧回数

メッセージへの返信が遅くなり申し訳ありません。

 

丁寧で分かりやすいご回答ありがとうございます。

参考にして、修正したいと思います。

この度はありがとうございました。

また、質問をしてしまう場合があるかもしれませんが、

その際はよろしくお願いいたします。

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