NI製品ディスカッション

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

VISA読み取り関数とVISAシリアルポート構成について

解決済み
解決策を見る

皆様お世話になります。研究でLabviewを使わせていただいている学生です。

現在RIGOL社のオシロスコープの2チャンネルからデータを読み取り、それらの相互相関をとるプログラムを作成しております。

現在、取得するデータ長を増やすためVISA読み取り関数のバイトカウントを増やそうとしていたのですが、1012以上の値を渡すとリターンカウントが1012になってしまい、それぞれのデータ長もうまく増えませんでした。

 

読み取りデータに終端文字が入っていて途中で読み取りが終了しているのかとも考え、VISAopen関数をVISAシリアルポート構成関数に変更して終端文字で終了しないように変更しようともしたのですが、エラーが出てしまいその解決方法もわからないという状態です。

 

これらの解消法、もしくはその他の読み取りデータを増やす手段があれば教えていただきたいです。

 

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

気になるのはオシロスコープから送信されてくるデータポイント数が管理されていないことです。VISA読み取りのバイト数だけいじっても変わりません。

エラーは読み取ったデータの先頭に#文字が含まれていないせいだと思います。前回読み切っていないデータの残りが読み込まれている可能性はないでしょうか?

 

RIGOLの機種は何ですか?

LabVIEWで計測器ドライバを探してもヒットしませんか?

 

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

お答えいただきありがとうございます。

返信が遅くなってしまい申し訳ありません。

 

使用している機種はRIGOL社のMSO5000シリーズのMSO5074という機種です。

計測器ドライバをLabVIEW IDFinderで検索してみたのですが、RIGOL社の他のシリーズのものがヒットするばかりで使用機種のものは見つかりませんでした。

 

読み取りエラーに関してですが、読み切っていないデータに考えが及んでいなかったため改めて確認してみようと思います。

基本的な質問で申し訳ないのですが、データポイント数の管理はどのように行うことができるのでしょうか。

0 件の賞賛
メッセージ3/5
2,290件の閲覧回数
解決策
トピック作成者hiroki_fujitaが受理

波形データのバイト数はオシロスコープの1波形当たりのデータポイント数によって変わるはずですが、それが処理されていません。

 

WAV:DATA?コマンドを送ると、オシロスコープからはバイトカウントと波形データが返ってきます。

  1. 2文字読み取り、#の次の1文字を数値に直す(例:#4ならば4)
  2. 1で得たバイト数を読んで数値に直す(例:4バイトが2048ならばその後に2048バイトのデータが続くという意味)
  3. 数値分の文字数を読み込んで、電圧値に変換する

電圧変換のための係数は垂直軸の感度や分解能で決まるので、その値も読み込んでおく必要があります。

 

メーカーが同じ同世代の機種ならば共通部分のコマンドは同一のことが多いので、試しにDS4000シリーズあたりのドライバをインストールしてみたらいかがでしょうか。

サンプルファインダ(たぶんハードウェア入出力>>計測器ドライバ)で波形転送のサンプルVIが見つかると思います。上記のバイトカウントの処理もやってくれているはずです。

コマンドエラーが起こったらマニュアルと突き合わせて修正してください。

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

ありがとうございます。

 

教えていただいたことをも基にもう一度プログラムを見直してみようと思います。

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