こんにちは、KOUです。
よろしくお願いします。
今回はリモートコマンドについて説明していこうと思います。
リモートコマンドを使用することで、オシロの設定が自動化できるので、
設定ミスなどがなくなり、手戻り防止になりとても便利です。
では、リモートコマンドを使用して、第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で設定する必要があります。 |
TUART | UARTトリガのデータ以外の条件を設定することができます。 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>も 変更する必要があります。 |
TDIV | Time/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-5624A | 1 | |
プローブ | 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回をご確認ください。
まとめ
今回はオシロのリモートコマンドについて、記載させていただきました。
いろいろ組み合わせることでもっと複雑な動作も自動ですることも可能ですので、
興味のある方は挑戦してみてください。
関連記事
-
第1回 Visual C++で作成したDLL内のクラスをC#で利用する方法
こんにちは、ILCです。 Visual C++ (以下 VC++)で作成されたDynamic...
公開日:2024.01.19 更新日:2024.01.19
tag : Windows
-
-
第1回 ラズパイを使用したBLE通信 ~ ディスプレイ、キーボード、マウスを接続しないで設定 前編 ~
こんにちは、GTです。よろしくお願いします。 最近業務でラズパイのBluetooth機能を使...
公開日:2021.12.24 更新日:2021.12.24
tag : Bluetooth Raspberry Pi
-
-
【新機能探訪】Android 13から導入された『アプリごとの言語設定』
こんにちは、KNSKです。よろしくお願いします。 今回は Android13の新機能である『...
公開日:2022.12.09 更新日:2022.12.09
tag : スマートデバイス
-
第3回 ラズパイを使用したBLE通信 ~ A/D変換・D/A変換を用いた入出力編 ~
こんにちは、GTです。よろしくお願いします。 第3回の今回は、ラズパイの入出力についてご紹介...
公開日:2023.02.24 更新日:2023.02.24
tag : Bluetooth BLE Raspberry Pi