11-18-2020 12:28 AM - 編集済み 11-18-2020 12:55 AM
LabVIEW初心者です。
波長計で読み取った値を表示するプログラムの改良をしたいです。
プログラムに表示されるグラフの縦軸が周波数(THz)、横軸がcount(0,1…)となっています。
縦軸を波長(nm)横軸を時間(s)で読み取れるようしたいです。
このようにすることは可能でしょうか。
01-04-2021 12:36 AM
だいぶ前に投稿されていらっしゃるので、見ていらっしゃらない可能性が高いかもしれませんが・・・。
使用しているのは波形チャートかと思います。波形グラフでも同じですが、LabVIEWで何か値をプロットさせる際にはその通りのデータを表示器に配線する必要があります。
今回では、現状周波数としてデータが「ライブラリ関数呼び出しノード」から得られているのであれば、これを波長単位に直して(計算して)波形チャートに配線する必要があるかなと思います。
また、波形チャートの横軸は、「プロットデータの番号」になります。例えば、波形チャートにデータが渡されるのが1秒ごとであれば、横軸は「1秒ごとのプロット」になりますが、それ以外のタイミングで毎回データが渡されるのであれば横軸は単なるデータの順番にすぎません。
データを1秒ごとに取得したい、ということであれば、Whileループに待機関数をおいて「1000」を配線すれば実現できそうです(待機関数にはミリ秒単位で待機する時間を指定します)。今のプログラムで使用されているのは「次のミリ秒倍数まで待機」の関数ですね。これに「2」を配線しているので、Whileループは(一番最初を除いて)2ミリ秒周期で回ろうとするはずです(ライブラリ関数呼び出しノードの処理時間によっては指定した時間通りには回らない可能性もありますが)。
もしライブラリ関数呼び出しノードで指定しているdllから時間のデータも取り出せて、「ある時間のあるデータ」という、X、Yのペアが取り出せるのであれば、波形チャートではなくXYグラフを使用する方法も考えられるかと思います。
01-11-2021 09:53 PM
ご回答いただき、ありがとうございました。
1つ分からないことがありましたので、質問します。
この部分のやり方が分からないです。↓
「使用しているのは波形チャートかと思います。波形グラフでも同じですが、LabVIEWで何か値をプロットさせる際にはその通りのデータを表示器に配線する必要があります。
今回では、現状周波数としてデータが「ライブラリ関数呼び出しノード」から得られているのであれば、これを波長単位に直して(計算して)波形チャートに配線する必要があるかなと思います。」
LabVIEWにあまり詳しくないので教えていただけると嬉しいです。
加えて質問があります。
下の写真のプログラムのようにデータ保存をできる、また、横軸の時間スケールをこのプログラムと同様に合わせたいと思っています。どのようにすればよろしいでしょうか。
01-13-2021 01:52 AM
計算が正しいかどうかはともかくとして、私が伝えたかった意図をそのままプログラムに反映させたものを添付しますね。
周波数データ(添付プログラムでは乱数で代用)を、波長に変換(光速度÷周波数)しています。
二番目のご質問については、「データ保存」はブロックダイアグラムを見れば何をやっているのか把握できたのですが、「横軸の時間スケールをこのプログラムと同様に合わせたい」の部分がちょっと理解できていないです。
最終的にどのような結果、見た目としたいのか、ポンチ絵などで示していただくことはできますか?
01-14-2021 12:51 AM
ありがとうございます。
送っていただいたプログラムを参考にします。
2番目の質問ですが、添付した電流生成プログラムのようにテータ保存ができて、横軸の測定時間を添付ファイルと同様のものにしたいです。
電流生成プログラムと波長測定プログラムを1つのプログラムにして動かすイメージです。
LabVIEW初心者のため、分からないことが多くて申し訳ないです。
また、こちらの言うことが分からない場合は、再度質問お願いします。
何度もお手数おかけしてしまい、申し訳ないです。
01-15-2021 01:47 AM
そんなに申し訳なく思う必要ないですよ。。分からないものはずっと分からないわけですし。他の方は知りませんが私も慣れるのに苦労しましたし。
ただ、おそらくまだご質問の意図を正確に把握できていないかもしれないですが、測定時間と仰っている部分については、DAQアシスタントで設定している「サンプルレート」と「サンプル数」を変えることで変えられると思います。
波長測定は1秒間で何点のデータを得られますか?仮に1000点だとしたら、その測定のレートは1000 Hzということになりますね。
であれば、電流生成プログラムも、1秒間ごとにグラフが更新されるような状態にすればいいのではないかなと思いました。
Express VIの中身を見る限り、レートが1 kHzで読み取るサンプル数が100となっているので、0.1秒ごとにグラフが更新されるイメージになるかなと思います。サンプル数を1000にしたら1秒ごとにグラフが更新されると思いますがいかがでしょうか?
01-24-2021 09:34 PM
メッセージへの返信が遅くなり申し訳ありません。
丁寧で分かりやすいご回答ありがとうございます。
参考にして、修正したいと思います。
この度はありがとうございました。
また、質問をしてしまう場合があるかもしれませんが、
その際はよろしくお願いいたします。