NI製品ディスカッション

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

オシロスコープ複数チャンネルの読み込み

オシロスコープから複数のチャンネルの信号を読み込み波形表示とデータ保存をするプログラムを作っている中で疑問が出てきたので質問させていただきます。

 

 

環境は以下の通りです。

LabVIEW 2013

Tektronix DPO2024B

Plug and Play Driver, USB接続

 

 

Read.viをMulti Waveformsにして複数のチャンネルを読み込んでいますが、

中にあるFetch Waveform.viを見るとひとつのチャンネルしか指定されておらず、

それをRead.viのForループでチャンネルを切り替えて複数回実行しているように見受けられました。

しかし、グラフや保存したデータを見ると時間軸にズレがない状態で取り込まれています。

 

おそらくオシロでは複数チャンネルが並列処理されていると思われますがLabVIEWで上記のように切り替えて読み込むことに問題はないのでしょうか?

また、LabVIEW上でも並列処理をすることは可能なのでしょうか?

LabVIEWがオシロからどのようなデータを受け取っているのかが分からないので疑問を感じました。

よろしくお願いします。

 

ブロックの接続は以下のようになっています。

[Initialize.vi] - [Read.vi] -------------- [Close.vi] - [エラー表示]

                             |__ [波形グラフ]

                             |__ [計測ファイルへ書き込む]

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

welckx様

 

>それをRead.viのForループでチャンネルを切り替えて複数回実行しているように見受けられました。

LabVIEWライブラリといってもオシロにコマンドを送って設定したり、データを所得したりとしているだけで
Chを指定して波形データを取り込むのはオシロの仕様だからです。

 

>LabVIEWで上記のように切り替えて読み込むことに問題はないのでしょうか?
測定が終わってれば(次に測定を開始していると、どうなるか・・・)問題無いです。

 

>また、LabVIEW上でも並列処理をすることは可能なのでしょうか?
無理です。(やりたいならオシロを複数台)

 

もしかしてオシロをRun状態のまま、適当なタイミングでパソコンから波形データを取ろうとしているとかでしょうか???

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

su-sann5073様

 

返信ありがとうございます。

勉強になります。

 

>もしかしてオシロをRun状態のまま、適当なタイミングでパソコンから波形データを取ろうとしているとかでしょうか???

はい、その通りです。

このやり方は良くないのでしょうか?

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

welckx様

 

良く見たら、Read (Multiple Waveforms).viって測定もしてましたね。
失礼しました。

 

Read (Multiple Waveforms).viを実行後は、オシロが停止状態になっているはずなのでRun状態にならないです。

ちなみに、Run状態とは測定を繰り返す状態という意味です。

Read (Multiple Waveforms).viの動きは下記の流れで

①Initiate.vi ←オシロに測定(一回)を実行
②Wait for Operation Complete.vi ←オシロが測定を終了するまで待つ
③Fetch Waveform (Waveform Data Type).vi ←Ch毎に波形データ取得

 

>LabVIEWで上記のように切り替えて読み込むことに問題はないのでしょうか?

上記に関しては、③は測定後の処理なのでChを切り替えて読み込んでも問題ありません。

 

メッセージ4/7
4,625件の閲覧回数

su-sann5073様

返信ありがとうございます。

 

 

>上記に関しては、③は測定後の処理なのでChを切り替えて読み込んでも問題ありません。

てっきりチャンネルごとに計測と保存を繰り返しているのかと思い混乱していましたが解決しました。

ありがとうございます。

 

 

>Read (Multiple Waveforms).viを実行後は、オシロが停止状態になっているはずなのでRun状態にならないです

Run状態のままプログラムを動かして確認してみたところ、Read (Multiple Waveform).vi実行後もRun状態を維持したままでした。

また、オシロ側も終始Run状態のままで動作していました(OpenChoice DesktopのようにRun → Stop → Runにはなりませんでした)。

Stop状態から動かしてみても、Stop → Run → (プログラム終了後も)Runとなります。

 

この場合、Initiate.viが実行されてオシロの測定が完了した時点のデータを表示, 読み込んでいると考えていいのでしょうか?

 

 

>②Wait for Operation Complete.vi ←オシロが測定を終了するまで待つ

他のvi(例: Configure Channel)では送った設定が反映されたかどうかを確認せずに動作していますが問題ないのでしょうか?

反映される前にclose.viが実行してしまっても大丈夫なのでしょうか?

 

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

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

welckx様

 

>Stop状態から動かしてみても、Stop → Run → (プログラム終了後も)Runとなります。
Initiate.viでACQ:STATEコマンドで(パラメータをON)は測定開始=1回だと(パラメータがRUNだと測定を繰り返し)思ってましたが、違ってたようです(ぺこ)
他に継続する設定があると考えられます。
Configure Continuous Acquisition.viというVIがあったのでFalseを設定してみるとか?(コマンドで言うとACQ:STOPA SEQ)如何でしょう?

 

>この場合、Initiate.viが実行されてオシロの測定が完了した時点のデータを表示, 読み込んでいると考えていいのでしょうか?
次の測定が始まっているとなると、Initiate.vi時の測定かどうかは保証できないと考えます(やったことないです)。
上記も含め、メーカ(Tektronix)に要確認です。


>反映される前にclose.viが実行してしまっても大丈夫なのでしょうか?
今の計測器って、コマンドをつぎからつぎへと送信して設定しても問題無いはずで(リセット系はよくわかりません)
エラーが発生しなければコマンドは送信されている=設定されている=closeしても問題無いです。

 

ただ思惑どおり設定されているかは確認が必要かと思います。

 

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

su-sann5073様

 

返信ありがとうございます。

 

 

>Initiate.viでACQいらだったスマイリーTATEコマンドで(パラメータをON)は測定開始=1回だと(パラメータがRUNだと測定を繰り返し)思ってましたが、違ってたようです(ぺこ)

[Run状態中に]

本体のRun/Stopボタンを押してStop状態にした後にプログラムを実行すると前回書いた通りの動作ですが、

Singleボタンを押してStop状態にした後にプログラムを実行するとsu-sann5073様がおっしゃる通りStop → Run → Stopとなりました。

 

 

>Configure Continuous Acquisition.viというVIがあったのでFalseを設定してみるとか?(コマンドで言うとACQいらだったスマイリーTOPA SEQ)如何でしょう?

早速使ってみたところStopさせることができました。

Run/Stopボタンを押した場合と同じ挙動かと思います。

 

 

>上記も含め、メーカ(Tektronix)に要確認です。

了解しました。

 

 

 

分からなくて悩んでいた部分をスッキリさせることができました。

ありがとうございます。

 

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