GX Works2でSLMP通信を試すための内蔵Ethernet設定

三菱電機のPLC MELSEC-Qシリーズで、ホストPCと、Ethernet接続にて[SLMP](https://www.cc-link.org/ja/cclink/slmp/index.html)で簡単な通信をするためのPLC側の設定方法についてのメモです。GX Works2を使用しました。

## PLCの準備
PLCのCPUユニットは、初期設定の状態で、ホストPCに直接接続されているものとします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/05ff9a82-6d23-0add-8705-923524940156.png)

## GX Works2による設定

PLCの設定は専用のツールから行います。今回はGX Works2 (version 1.567R)を使用しました。

### USB接続

まずUSBで接続して、EthernetのIPアドレスを設定する必要があります。
GX Works2を起動したら、メニューから「オンライン」 → 「PC読出し」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/87c5b20d-1ca3-911f-d2f9-7ead95461596.png)

下記のダイアログが出ます。
Qシリーズなので「QCPU(Qモード)」を選択しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/3b1abfe4-87c6-bddf-9155-c06804f30bcd.png)

下記の画面が出ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/6e6d2c67-8077-ee42-c512-3873b42a8245.png)

デフォルトのままでシリアル通信になっていると思いますが、次のように設定します。

- パソコン側I/F　→　`シリアルUSB`
- シーケンサ側I/F　→　`CPUユニット`
- 他局指定　→　`他局指定なし`

「通信テスト」をクリックして正常に接続できているか確認します。
問題なければ「～との接続に成功しました」というダイアログが出ます。

「OK」をクリックします。
オンラインデータ操作というダイアログが出ますが、これは何もせず閉じます。

下記のように左側にプロジェクトツリーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/dda07bc9-8ad0-3fb3-0cf1-abdf9b352d81.png)

### プロジェクト設定

左のプロジェクトツリーから、「パラメータ」→「PCパラメータ」をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/f374348a-ba97-42ca-f23d-d16895143057.png)

開いたダイアログ画面で、「内蔵Ethernetポート設定」タブを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/44acfe87-03cb-00a6-2df0-68975dafb951.png)

PLCのIPアドレスを設定します。
また、次の設定をチェックします。

- バイナリコード交信：　今回はバイナリモードで交信します
- RUN中書込を許可する：　PLCレジスタへ書き込みをする場合はチェックが必要です

次に、同じダイアログで「オープン設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/1f5349bb-db23-f6cd-6a0e-a733138a1657.png)

以下の設定を追加します。

| プロトコル | オープン方式 | 自局ポート番号|
|---        |---          |---           |
|UDP        |MCプロトコル  |1025          |
|TCP        |MCプロトコル  |1026          |

- オープン方式はSLMPがないのでMCプロトコルを選択します。SLMPの拡張機能を使わなければほぼ同じです。
- ポート番号は何でもよいです。（設定範囲：1025～4999，5010～65534）

終わったら「設定終了」をクリックして、Qパラメータ設定を閉じます。

### PLCへの設定書き込み

メニューから「オンライン」→「PC書込」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/5d834987-35a9-1c37-8d61-0e1a0be2a364.png)

「対象」の項目で「パラメータ」をチェックします。
「実行」をクリックすると、PLCに設定が書き込まれます。

この後、**PLCを再起動**（電源OFF→ON）してください。
プロジェクトを保存しておきます。

### Ethernet接続の確認

LANケーブルを接続します。
USBケーブルも接続したままにしておきます。

念のため、GX Works2を再起動します。
先ほどのプロジェクトを開きます。

メニューから「診断」→「Ethernet診断」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/7fd2d6fa-6c46-3713-4433-8d285ee9de9b.png)

このような画面が表示されて、先ほど設定したIPアドレスが表示されていたらPLCのEthernet設定は成功です。
SLMP通信が可能になりました。

### Ethernet接続

USB接続をせず、Ethernet接続だけでGX Works2からPLCのCPUユニットを制御できるようにします。
※この操作は、SLMP通信の設定とは関係ありません
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/21059ccc-89e9-175d-2a20-9527669d46f8.png)

USBケーブルを抜き、LANケーブルだけが接続された状態にします。
GX Works2を再起動し、メニューから「オンライン」 → 「PC読出し」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/f9e306df-bed8-f7c9-744c-32b3738710b7.png)

次のように設定します。

- パソコン側I/F　→　`Ethernetボード`
- シーケンサ側I/F　→　`CPUユニット`
- 他局指定　→　`他局指定なし`

次に、`CPUユニット`のアイコンをダブルクリックします。
表示されたダイアログで、「ハブ経由接続」を選択し、PLCのIPアドレスを設定して「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/af8df35f-575f-d00d-e7e1-8be2d6a92151.png)

「通信テスト」をクリックして正常に接続できているか確認します。
問題なければ「～との接続に成功しました」というダイアログが出ます。
「OK」をクリックします。

オンラインデータ操作というダイアログが出ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493279/d35d187a-34c0-66f2-12e8-18876f950e7e.png)

「パラメータ」をチェックし、「実行」をクリックすると、先ほどPLCに書き込んだパラメータをプロジェクトに読み出します。
プロジェクトを保存して設定は完了です。