5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MATLABでR&S RTC1002の波形取り込み

Posted at

はじめに

MATLABでオシロの波形を取り込みたかったため、手持ちのRTC1002(Rohde&Schwarz)をPCに接続し、MATLABで波形をプロットするまでを実施した。
MATLABはIVIやVXIplug&play、汎用のSCPIコマンドに対応しているとのことだが、計測器のリモートコントロールの常識?について知らなかったため、環境構築として何をしたら良いか悩んだ。

MATLAB環境

・MATLAB R2021b 64bit
・MATLABツールボックス:Instrument Control Toolbox

実施環境

・ノートPC(windows10 64bit)
・オシロスコープ(RTC1002)
・ルータ(DHCPサーバ)
・LANケーブル

参考

Rohde & Schwarz Instruments and MATLAB
How to use Rohde & Schwarz Instruments in MATLAB - Application Note

手順1:RTC1002をwebブラウザ経由で操作

RTC1002はwebブラウザが搭載されており、正常にLANに接続できると、webブラウザでRTC1002のIPを入力することでRTC1002の操作ができる。詳細はRTC1002のユーザーズマニュアルの12章"Network Connections and Remote Operation"を参照。
RTC1000はデフォルトでDHCPクライアントとなっているので、DHCPサーバが立っている環境であれば、何も考えずにLANに接続し、SETUPボタンからRTC1002に振られたIPを確認するだけでよい。
image.png

手順2:ノートPCにR&Sの提供するVXI driverをインストール

RTC1000はSCPIコマンドによる制御、もしくはR&Sのwebページで配布されているVXIドライバーによる制御に対応している。IVIドライバーに対応していれば、Quick-Control Oscilloscopeによる制御が可能であるようだが、IVIドライバーの配布はない。VXIドライバーを使う方がSCPIコマンドを直接使うのにに比べてエラー処理等を実施しているというような記載がMATLABにあったため、VXIドライバーを使用することとした。
VXIplug&play x64 driver hmoをダウンロードしインストールする。

手順3:ノートPCにR&Sの提供するVISAをインストール

VISAは計測器とのインターフェースを提供するライブラリのようで、物理層の違いも吸収してくれる。RS VISA 5.12.3 Setup for Windowsをダウンロードしインストールする。

手順4:VISAに同梱されたアプリで動作確認

VISAをインストールすると、"R&S VISA⇒Tester 64bit"がインストールされるので、これを実行する。
左上の"Find Resource"タブをクリックし、"LXI(mDNS)"と"VXI-11"のチェックボックスをONにして、更新マーク?をクリックする。そうすると、LANで接続したRTC1002がResoucesとして"TCPIP0::192.168.0.6::inst0::INSTR"(環境によって中身は変わる)が発見されるので、これを選択して"OK"を押す(後に再度実施した際に何も発見されなかったが、"TCPIP0::192.168.0.6::inst0::INSTR"への接続はできた)。元の画面で"Connect"を押し、それっぽいログが表示されていればオシロがVISA経由で接続されている。
VISA経由の動作確認として、"Tests"タブのPreformance Testを実施する。
image.png

手順5:VXIドライバーのラッパーを作成

MATLAB上でVXIドライバーを使ってVISA経由でRTC1000に接続するが、VXIドライバーはインストールしたままでは使えず、MATLABとしてのラッパーを作成する必要がある。ラッパーの作成は、MATLAB上で

midedit

と入力し、上記でインストールしたVXIドライバーをインポートし、これを保存する(hmo.mddとした)ことでラッパーが作成される。詳細な手順はこちらのImporting with the MATLAB Instrument Driver Editor (midedit)を参照。

手順6:RTC1002の接続・波形プロット

以上で準備は終わりで、あとはMATLAB上で適宜関数を呼び出してRTC1002の波形を取り込み、データをプロットする。

%instrhwinfo('vxipnp')
%instrhwinfo('vxipnp','hmo')
deviceObj=icdevice('hmo.mdd','TCPIP0::192.168.0.6::inst0::INSTR')
connect(deviceObj)
%disp(deviceObj)
%get(deviceObj)

waveformArray = zeros(100000,1);
groupObj = get(deviceObj, 'Waveformacquisition');
[waveformArray, actualPoints, initialX, xIncrement] = invoke (groupObj, 'readwaveform', 1, length(waveformArray), 5000, waveformArray);
plot(waveformArray)

disconnect(deviceObj)
%delete(deviceObj)

RTC1000の外部出力機能で10kHz, 115mVppのsin波を出力し、これをch1に入力して上記コマンドでプロットされた波形は次の通り。配列の長さを100,000としたが、データ点数はそこまでないため途中で切れている。
image.png

関数の定義の確認方法

MATLABの"アプリ"タブをクリックし"Instrument Control"をクリックすると、"Test & Measurement Tool"が開く。前述のコマンドによりdeviceObjが生成されていると、"Instrument Object"⇒"Device Objects"⇒"VXIPnPInstrument-hmo"というのが生成される。これを選択すると関数やプロパティが選択でき、GUIで関数の実行やプロパティのSet/Getができる。また、実行した内容は"Session Log"のタブでコードと記載されるので、これを参考にコーディングできる。
image.png

VXIドライバーのHelpはVXIドライバーをインストールしたフォルダに"hmo_vxi.chm"と"hmo_attr.chm"が入っているので、これを参照する。ただし、このHelpはVXIドライバーのHelpであり、MATLABでVXIドライバーをラップした関数のHelpではないことに注意が必要。例えば、HelpにはdeviceObjを渡すように書いているが、MATLABのラッパーではdeviceObjの要素を適宜選択して渡すことになっている様子。

MATLABのVXIドライバーをラップした関数の説明はこちらを参照

以上、参考になれば幸いです。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?