Sequence Makerで🏯オシロスコープの画面を取得する

## はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerを使えば、いろいろな測定器を制御可能です。そして制御だけでは無く、測定値を取得したり、オシロスコープの画面（スクリーンショット）を取得することも可能です。この記事ではKeysightとRIGOLのオシロを例に、画面を取得する方法を解説していきます。
なお、Sequence Makerについての詳細は以下の記事を参照ください。

https://qiita.com/sequencemaker/items/8e6a370ab0a793a06a3b

:::note warn
***お断り***
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
:::

## 測定器との接続
オシロとの接続方法はUSBやLANなどがあると思いますが、USBで接続し、VISAで通信するのが簡単です。以下の記事を参考にしてください。

https://qiita.com/sequencemaker/items/08d1fb66d1ba284e00a4

なお、VISAを使用するためにはVISAライブラリが必要になりますので「Keysight IOライブラリ・スイート」や「NI-VISA」などもインストールしておきましょう（欲張って両方入れるといろいろと問題があるので、お好みでどちらかにしておきましょう:sweat_smile:）。

### Keysight IOライブラリ・スイート
https://www.keysight.com/jp/ja/lib/software-detail/computer-software/io-libraries-suite-downloads-2175637.html

### NI-VISA
https://www.ni.com/ja/support/downloads/drivers/download.ni-visa.html?srsltid=AfmBOor-gIG3iLEkeZ5eFiakc5EmmsSkX16rppXEWN4gKB80tHUyuzmq#544206

ここまで準備ができたら、Excelを起動してSequence Makerのタブでインターフェイスの種類から「VISA」を選択し、更新ボタンを押せばオシロのVISAアドレスが自動的に認識されると思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/29788822-c090-ab9f-2968-defa171de3b5.png)

## オシロの画面を取得する通信コマンド
オシロの画面を取得する通信コマンドは、KeysightのWebサイトにあるプログラミングガイドなどで調べます。例えばInfiniiVision 1000 Xシリーズの取説には以下の記載があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/2b20d2a8-ac0e-d496-a253-a744bc561938.png)

（InfiniiVision 1000 Xシリーズプログラミングガイドより引用）

つまり、
```
:DISPlay:DATA?
```
コマンドを使えばOKです。たぶんKeysightのオシロなら他のシリーズでも一緒です。応答は「IEEE-488.2 # binary block data format」で返すとの記載があります。IEEE-488.2フォーマットの詳細はここでは省略しますが、バイナリデータを転送する時の標準規格のようなものです。

ちなみに説明文にもありますが、
```
:HARDcopy:INKSaver {ON|OFF}
```
コマンドを使用することで、画面の色の反転が設定できます。

なお、最近のオシロだと

```
:HCOPY:SDUMp:DATA?
```
というコマンドでも大丈夫そうです。

## Sequence Makerの専用コマンド
Sequence Makerで画像データを受信する際には
```
#IMG(コマンド)	
```
を使用します。このコマンドがIEEE-488.2フォーマットに対応しているので、オシロの画面を取得できるというわけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/ce6e0b02-e1f0-2d55-a7cd-8e5601e859ef.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/c1bc4cde-7227-f1b3-46f3-7b501e33c621.png)
（https://sequencemaker.hioki.com/manual/ja/index.html#commandより引用）

具体的に書くと
```
#IMG(:DISPlay:DATA?)
```
といった感じです。

## Excelシートへの記載
画面取得のコマンドとSequence Makerの専用コマンドがわかったので、Excelのシートに記入します。
こんな感じに2行書くだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/c4b67f16-4d4c-dfcf-6848-90724b797d6f.png)

## 実行！
それでは「コマンド送受信」ボタンを押して、実行してみましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/d30b1286-8836-339c-2c98-ee7e2b13eaa7.png)

（※画面ははめ込み合成です。。。今ちょうどオシロが手元になかったので）

こんな感じにオシロの画面が簡単に取得できるので、いろいろな波形をたくさん取得したい、という時には非常に便利です。USBメモリーに保存して、パソコンに移動して…とかやっていた時代には、もう戻れません。

## RIGOLのオシロの場合
RIGOLのオシロにも画面を取得するコマンドがあります（Keysightと一緒だ）。
```
:HCOPy:SDUMp:DATA?
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/eb17d6d0-cbdf-8e46-56f1-3916a85e36e7.png)

（RIGOLのWebサイトより引用）

なので、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3821782/12bcbaf1-4976-4072-aa16-aa17caeccd13.png)
こんな感じに書いて実行すれば、同じようにオシロの画面を取得することができると思います。

## まとめ
今回はSequence Makerでオシロの画面を取得する方法を紹介しました。
オシロは他にも通信コマンドでいろいろな制御ができるので、Sequence Makerから制御しつつ、いい感じのタイミングで波形を取得するような自動システムを組むこともできます。もちろん、他の測定器なども一緒に組み合わせられるので、いろいろな可能性が広がりそうですね！