Avance.Lab

技術紹介

第2回 オシロスコープの使い方~リモートコマンド編

公開日:2023.06.09 更新日:2023.06.09

tag: 組み込み

こんにちは、KOUです。
よろしくお願いします。

今回はリモートコマンドについて説明していこうと思います。
リモートコマンドを使用することで、オシロの設定が自動化できるので、
設定ミスなどがなくなり、手戻り防止になりとても便利です。
では、リモートコマンドを使用して、第1回で実施したラズパイを使用した
波形の取得を行ってみようと思います。

第1回 オシロスコープの使い方

リモートコマンドの説明

リモートコマンドとは、外部のコントローラ(今回はラズパイ)でオシロの
ボタンやツマミを手で操作したことと同等の操作を行うことができるコマンドです。
一部ですが今回使用するコマンドの説明を記載します。

コマンド説明
TRMDトリガモードを設定することができます。
今回はトリガを設定して波形を取得するため、SINGLEモードに設定します。
他にもAUTOやNORMALなども設定することができます。
TTYPトリガタイプを設定することができます。
今回はシリアル通信にて値を送信するため、UARTに設定します。
他にもEDGEやEDGEOR、SPIなども設定することができます。
TUDAT このコマンドでは、UARTトリガのbit数とデータを設定することができます。
UARTをトリガにする場合、16進で取得したいデータを設定する必要があります。
コマンド構文としては、”TUDAT <bits>, <data>”です。
今回の場合は、”1″を送信するため”TUDAT 8,31″と設定します。
※ASCIIコードで送信する必要があるため”1″を送信する場合は、
0x31の8bitで設定する必要があります。
TUARTUARTトリガのデータ以外の条件を設定することができます。
UARTをトリガにする場合、データ以外にも監視するCHの設定やレートの設定をする必要があります。
コマンド構文としては、”UART <trig>, <source>, <rate>, <stop>, <parity>, <idle>, <order>”です。
今回の場合は、”TUART DATA,CH1,115200,1,NONE,LOW,LSB”になります。
<trig>は送信する値にて判断するようにDATAを設定し、
<source>に監視するCHを設定します。
<rate>には今回使用するシリアルの設定値を入れます。
<order>にはLSBを設定していますが、MSBに変更する場合はTUDATの<data>も
変更する必要があります。
TDIVTime/div(水平軸レンジの値) を設定することができます。
今回の場合は、波形サイズに合わせて20μsで設定しています。
CURMカーソル形式を設定して表示することができます。
コマンドとしては、”OFF, DV, DH, DHDV, VATH”が設定できます。
“DV”は水平方向のカーソルを表示し,”DH”は垂直方向のカーソルを表示します。
“DHDV”は水平・垂直方向のカーソルを表示します。
“VATH”は垂直方向のカーソルを表示し、その時間における波形との交点の値を
表示します。
今回は、垂直方向のカーソルを表示させたいため”DH”を設定しています。
HCURカーソルの表示位置を設定することができます。
自動でカーソルの位置を設定するコマンドがないため、直値で設定しています。
INV波形の反転設定を設定することができます。
今回は、波形を見やすくするために波形の反転をONに設定しています。
STOP波形を停止させることができます。
COPY接続したUSBメモリに現在表示されている波形を保存することができます。
IDN製品情報を表示することができます。
他のコマンドと違い、出力のみのコマンドとなります。
複数のオシロを接続した場合を加味して、どのオシロに接続されているかを確認用に
コマンドを入れています。

pyvisaについて

今回は、リモートコマンドを使用するにあたりオシロとラズパイを接続する必要があります。
それを可能にするモジュールが“pyvisa”となります。
使用方法としましては、インスタンス生成を行い接続先デバイスの設定を行います。
接続先デバイスの設定は、rm.open_resource(‘TCPIP::固定IPアドレス::port番号::SOCKET’)と入力します。
操作終了後は接続先デバイスのクローズ処理を実施します。
(再度実施に前回インスタンスが開いたままになっていると、エラーとなる恐れがあります)

# インスタンス生成
rm = pyvisa.ResourceManager()
# 接続先デバイスの設定
inst = rm.open_resource('TCPIP0::192.168.0.153::5198::SOCKET')
# 接続先デバイスのクローズ
rm.close()

事前準備

機材数量備考
Raspberry Pi 3 Model B+1
IWATSU DS-5624A1
プローブ1
RS232ケーブル1波形データ送信用
LANケーブル1オシロとラズパイのリモート接続用
USBメモリ1波形データ保存用

接続方法は第1回とほぼ同じですので、第1回を参考に接続してみてください。
LANケーブルとUSBメモリは以下の通りに接続します。

オシロの設定

オシロとラズパイを接続するために、オシロのリモート設定を行う必要があります。
設定手順は以下の通りです。
①オシロの”UTILITIES”ボタンを押下します。
 オシロモニタの右端にユーティリティメニューが表示されます。
②オシロモニタの”リモート”を選択します。
③オシロモニタの”インタフェース”を選択し、”インターネット・プロトコル”を選択します。
④オシロモニタの”IPアドレス”を選択し、IPアドレスなどを設定します。
※今回は192.168.0.153で設定しています。

pythonスクリプトの準備

今回は以下のようなPythonスクリプトを作成し、ラズパイでPythonスクリプトを実行します。
なお、スクリプトでは”pyvisa”を使用しています。
インストールしていない場合は、以下コマンド全てを実行してパッケージを
インストールする必要があります。

pip install pyvisa
pip install pyvisa-py
pip install zeroconf
pip install psutil

pyvisaを使用し、TCPIPでオシロとラズパイの接続を行います。
接続先のオシロにリモートコマンドを書き込み、オシロを操作します。
波形取得後はオシロにセットしたUSBメモリに自動で波形が保存されます。
文字データ送信コードは第1回で使用したものを代用しています。

import serial

def serial_data():
    # シリアルの設定
    ser = serial.Serial('/dev/ttyUSB0', 115200)

    # 1を送信
    ser.write(b'1')
    ser.close()
import pyvisa
import data_send

# インスタンス生成
rm = pyvisa.ResourceManager()
# 接続先デバイスの設定
inst = rm.open_resource('TCPIP0::192.168.0.153::5198::SOCKET')

# トリガーモードをSINGLEに設定
inst.write("TRMD SINGLE")
# トリガータイプをUARTに設定
inst.write("TTYP UART")
# 取得するデータの設定
inst.write("TUDAT 8,31")
# UART設定
inst.write("TUART DATA,CH1,115200,1,NONE,LOW,LSB")
# Time/divの設定
inst.write("TDIV 20.000000E-06")
# 垂直方向の2つのカーソルを表示
inst.write("CURM DH")
# カーソルの位置設定
inst.write("HCUR -3.24,0.22")

# 波形を反転
inst.write("C1:INV ON")

# データ送信
data_send.serial_data()

# 波形停止
inst.write("STOP")

# 現在の画面データをUSBメモリにコピー
inst.write("COPY")

# 製品情報
inst.write("*IDN?")

# 取得した製品情報表示
a=""
b=""
c=""
while a != "\n":
	b=inst.read_bytes(1)
	a=b.decode()
	c=c+a
print(c)

# 接続先デバイスのクローズ
rm.close()

波形取得

実際に波形を取得してみましょう。
実施することとしては、オシロにUSBを接続しラズパイでpythonスクリプトを実行するだけです。
実際に取得した波形が以下です。

製品情報の方は以下のように表示されます。
“会社名,モデル名,シリアル番号,リリースレベル,マイナーリリースレベル”の順に表示されます。

リモート操作時は、パネルロックが自動でかかりますので再度オシロを操作したい場合は、
オシロの画面上のパネルロックの左側をタッチすることで解除することができます。
波形の説明などは、第1回に詳しく書いてありますので第1回をご確認ください。

まとめ

今回はオシロのリモートコマンドについて、記載させていただきました。
いろいろ組み合わせることでもっと複雑な動作も自動ですることも可能ですので、
興味のある方は挑戦してみてください。

KOU

旅行とお酒が好きです。
最近はウイスキーがおいしく感じます。

関連記事