前編では、Excel VBAからMSO4054Bに*IDN?コマンドを送信し、測定器のIDが返信される所まで確認しました。後編ではMSO4054Bから波形を取得しグラフ描画してみます。前編を読まれていない方は、下記コンテンツも併せてご参照下さい。
IVI、VXI、VISA、SCPI、Excel VBAからTektronix MSO4054Bオシロスコープを自動制御してみよう (前編)
MSO4054Bから波形取得
MSO4054Bで波形観測し、その波形データをExcelに取り込んでグラフ描画してみます。MSO4054Bは、Probe校正用にProbe comp端子があり出力されている2.5V、1KHz矩形波をCh1で観測した結果を図1に示します。黄色の波形を参照すると、High/Lowが4回繰り返し表示されていることが分かります。
図1 MSO4054B Probe comp端子波形 (2.5V、1KHz矩形波)
オシロスコープから取得できる波形データは、デジタイザ値 (Positive integer 8bitの場合、0~255)なので、Preambleと呼ばれるX, Y軸の設定情報も取得して実際の電圧値に変換します。まず、波形データ転送を要求するCURV?コマンドをExcel VBAからMSO4054Bに送ります。その様子をKI-VISA COM SPYでモニターした結果を図2に示します。CURV?コマンドは、図2の反転表示されているItem#39でExcel VBAからMSO4054Bに送信されており、43 55 52 56 3F 0A (Hex)が下半分のWindowに表示されています。ASCII code表示なので文字に変換すると43=C、55=U、52=R、56=V、3F=?、0A=LFつまり、43 55 52 56 3F 0A=CURV?<LF>であることがわかります。
図2 Excel VBA→MSO4054B、CURV?コマンド
次に、Binaryモードで波形データを読み込むReadIEEEBlockコマンドをExcel VBAからMSO4054Bに送ります。その様子をKI-VISA COM SPYでモニターした結果を図3に示します。波形データは、図3の反転表示されているItem#51でMSO4054BからExcel VBAに送信されており、波形データ数1000ポイントを示すLen Requested=1000とLen Transferred=1000が表示されその後、波形生データBF BF BF BF BE BF BE-C0 BE BF BF BF BF BE BF…が下半分のWindowに表示されています。
図3 MSO4054B→Excel VBA、波形データRead
Excel VBAに読み込んだBinary波形データをファイルにセーブした所、ファイル容量は2KBでした。Binaryファイルはそのまま表示しても中身が分からないので、Windows cmd prompt上でBinary→16進変換しました。
Windows cmd prompt> certutil -f -encodehex ch1wave.bin ch1bin2txt.txt
2022/06/15 15:48 2,000 ch1wave.bin
2022/06/15 16:53 9,250 ch1bin2txt.txt
Binary波形データ→16進変換後のファイルをメモ帳に読み込んだ結果を図4に示します。
図4 Binary波形データ→16進変換後
オシロスコープから波形データを取り込むと、電圧軸のデータはデジタイザ値 (Positive integer 8bitの場合、0~255)を返信してくることが分かります。0000行と0080行を16進数→10進数に変換してみると、High/Low電圧はそれぞれ190~192/128を示しています。デジタイザ値は、このままでは使用できませんのでPreamble情報を取得して電圧データに変換します。計算式はy = yzero[0.00V] + ymulti[0.04V] * (digitizer – yoff[128])で、High/Low電圧はそれぞれ2.48~2.56V/0.00Vを示しており、MSO4054BのProbe comp端子は0V~2.52Vの矩形波を出力し、オシロスコープY軸分解能は40mVであることが分かります。
0000: bf bf bf bf bf be bf be – c0 be bf bf bf bf be bf
0080: 80 80 80 80 80 80 80 80 – 80 80 80 80 80 80 80 80
↓ (16進数→10進数)
0000: 191 191 191 191 191 190 191 190 – 192 190 191 191 191 191 190 191
0080: 128 128 128 128 128 128 128 128 – 128 128 128 128 128 128 128 128
↓ (10進数→電圧値)
0000: 2.52 2.52 2.52 2.52 2.52 2.48 2.52 2.48 – 2.56 2.48 2.52 2.52 2.52 2.52 2.48 2.52
0080: 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 – 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Excelで波形を描画した結果を図5に示します。今回、波形観測と波形データ取得を実験してみましたが、Excelがデータ処理と親和性が高いのでVISAと組み合わせると、評価業務に使い易いことがお分かり頂けたと思います。
図5 MSO4054B Probe comp端子波形 (2.5V、1KHz矩形波)
各種測定器を使用した認証試験
アリオン株式会社では、通信機器、AV機器、IT機器のさまざまな有線、無線インターフェースのロゴ認証試験、接続互換性試験、リバースエンジニアリング、フィールドクレーム解析等、長年にわたり実績を積み重ねノウハウを蓄積しています。また、お客様のご要望に応じて市場流通機器の性能調査、分析調査も承っています。通信機器、AV機器、IT機器に関するご相談、お困りごとがありましたらお問い合わせ頂ければと思います。
最後に
今回は、前編と後編に分けてExcel VBAから測定器を自動制御するVISAについて調べてみました。VISAは、測定器の共通インターフェースとして動作し、VISAパッケージ配布メーカーとは異なるメーカーの測定器を複数接続して制御できます。異なるメーカーの測定器を同一VISAで制御できることに違和感を感じる方もいると思いますがVISAは、単なるインターフェースで中を流れるコマンドは、各測定器の文法に沿って記述してやれば期待通りに動作します。通常、測定器メーカーは自社機材のみで測定ソリューションを組み上げますが、異なる測定器メーカーの機材を組み合わせたい場合は、エンジニアが独自に測定ソリューションを開発するしかありません。VISAに対応している機材であればExcel VBAから制御可能なので、電源、マルチメーター、オシロスコープ、データロガー、信号発生器等を組み合わせた自動測定ソリューションを検討してみては如何でしょうか。