RS485通信をモニタリングする

# はじめに
[前回の記事](https://qiita.com/tbkMoriguchi/items/e7b4fbfbbfcbd7d52b86)では、Unit-Roller485をRS485を使用してコマンドを送信し、動作させた。

# 目的
本記事では、**MSB-RS485+ Filedbus Protocol Analyzer**(下図)を用いて、実際のRS485送受信コマンドの波形をモニタリングする。

<img width=30%><img width=40% src="https://www.iftools.com/analyzer/msb-rs485/images/header-analyzer.png">

# 準備物

#### ○前回と同じもの
* PC(Windows10)
* Python実行環境(バージョン：3.8.8)
* Unit-Roller485(以降、Roller485)
* 駆動用電源(5[V])
* USB-RS485変換器(DTECH製)
* 接続用ケーブル(電源、通信用)

#### ○追加で準備したもの
* **MSB-RS485+ Filedbus Protocol Analyzer**(IFTools製)
* **MSB-RS485-PLUS Analyzer Software**(以降、Analyzer Software)
→モニター用ソフト。ダウンロードについては後述する。

#### 本記事の確認環境
・概略図
<img width=30%><img width=40% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/1496452f-6b0b-42dd-9247-18c1d976bc56.png">

・実環境
<img width=30%><img width=40% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/e4fb794a-534a-4ff7-aef0-001140c0d291.jpeg">
※Roller485からの信号線は、MSB-RS485+ Filedbus Protocol AnalyzerのCH1に接続している。

# インストール～起動確認
* [**IFTools ダウンロードリンク用ページ**](https://www.iftools.com/download/index.en.php)より、**Analyzer Software Packages**に移動する。

<img width=30%><img width=40% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/314347f1-833a-434e-a49d-025710565ce1.png">

* 実行プラットフォームに応じたインストーラをダウンロードする。

<img width=30%><img width=40% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/55c53e73-0a13-4b80-b217-92defa54cef7.png">
</br>

* インストーラを起動し、インストーラに従ってインストールを完了する。
</br>

* スタート or ショートカット等より**Analyzer Software**を起動する。

<img width=30%><img width=40% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/a14ce6d7-a070-49fe-b5c7-5e5f85d09584.png">

※起動するウィンドウ(Analyzer Software)

<img width=20%><img width=60% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/44093610-9e2f-4126-a741-1d4b71f3c393.png">

# PC実際の動作の確認
(使用するスクリプトに関しては、[前回の記事](https://qiita.com/tbkMoriguchi/items/e7b4fbfbbfcbd7d52b86)と同じものを使用するため、そちらを参照。)

前回の処理内容内について、コマンド送信は、

1. モータをONにする。
1. 目標値として、
モータ回転速度: 2400[rpm]
最大電流値　　: 1200[mA]
を設定する。
1. 2[sec]待機する。
1. モータ状態を取得する。
1. モータをOFFにする。

の処理1・2・4・5にて、それぞれ実施している。

上記のコマンド送信について、PCとRoller485間で通信中の信号波形を、
MSB-RS485+ Filedbus Protocol AnalyzerとAnalyzer Softwareによって測定する。
→今回はAnalyzer Softwareの**Signal Monitor**にて、信号波形を測定した。
※測定設定は上記の「起動するウィンドウ」内より、
　「Settings」→「Configure Control Program...」から環境・対象に応じて変更する。
　⇒本記事環境では、ボーレートを「115200」に設定した。

**～Analyzer Software 通信中の動作画面～**

<img width=10%>
<img width=80% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/6f33a220-8c94-49ae-833e-12848169994e.gif">

実際の波形にて、波形が4箇所存在していることが確認できる。
(また、動画から2[sec]の待機時間も確認できる。)

動画内 各CHのウィンドウ内に存在する「A」のチェックボックスにチェックを入れると、実際のデータ内容を読み取り、結果が表示される。
(下記画像内、黄色の楕円が1byte分のデータを示している。)

前述を実施し、CH1 先頭(**2.2[sec]付近～**)の波形(処理1. の送信データ)を拡大すると、波形下部に「**00 0A 01 00 00 00 00 00 00 00 00 00 00 00 7A**」の文字が表示されていた。

**～送信データ 波形～**
<img width=100% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/d4235a56-886b-48dc-9232-341322d771e6.png">

また、送信データの直後に存在する波形(処理1. の受信データ)を確認すると、同様に波形下部に「**aa 55 10 0a 01 00 00 00 00 00 00 00 00 00 00 00 88**」の文字が表示されていた。

**～受信データ 波形～**
<img width=100% src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4040526/1478bf07-075f-4c5e-a0f5-98e639114a5b.png">

また、実際の送受信コマンドについては、

```console: コンソール
## 前回記事より処理内容 1.の送受信コマンドだけ抜粋 ##

send data  : 000a0100000000000000000000007a
return data: aa55100a01000000000000000000000088
```

であったため、上記より送受信データのどちらについても、一致していることが分かる。
よって、**MSB-RS485+ Filedbus Protocol Analyzer**により、RS485にて通信中の送受信データを確認することができた。

# まとめ
**MSB-RS485+ Filedbus Protocol Analyzer**を用いて、RS485にて通信中の送受信データをモニタリングすることができた。