MELSEC iQ-FのシンプルCPU通信

# シンプルCPU通信
MELSEC iQ-R,MELSEC iQ-F,MELSEC-Q(QnUDV)にはシンプルCPU通信機能があり設定するだけでPLC間でイーサネット通信を使い指定のデバイスの送受信を行うことができます。
MELSECNET/HやCC-Link IE Fieldネットワークユニットを使わなくても内蔵のイーサネットポートだけで通信ができるので便利です。

ただし使用するCPUにより通信可能な相手の条件が変わるので表にしました。(2022/8/10)
三菱だけではなく他社PLCとも通信できるので便利です。

| |FX5U|FX5UJ|RnCPU|RJ71EN71[^1]|QnUDV[^2]|
|:---|:---:|:---:|:---:|:---:|:---:|
|三菱iQ-R(内蔵Ethernet)|〇|〇|〇|〇|〇|
|三菱iQ-F(内蔵Ethernet)|〇|〇|〇|〇|〇|
|三菱iQ-L(内蔵Ethernet)|〇|〇|〇|〇| |
|三菱Q(内蔵Ethernet)|〇|〇|〇|〇|〇|
|三菱L(内蔵Ethernet)|〇|〇|〇|〇|〇|
|三菱iQ-R(Ethernetユニット)| | | |〇| |
|三菱iQ-F(Ethernetユニット)|〇| | | | |
|三菱Q(Ethernetユニット)| | |〇|〇|〇|
|三菱L(Ethernetユニット)| | |〇|〇|〇|
|三菱A(Ethernetユニット)| | | | |〇|
|三菱QnA(Ethernetユニット)| | | | |〇|
|三菱A/AnS(Ethernetユニット)| | |〇|〇| |
|三菱FX3(Ethernetブロック・アダプタ)|〇|〇|〇|〇|〇|
|SLMP対応機器(QnA互換3Eフレーム)|〇|〇|〇|〇|〇|
|MODBUS/TCP対応機器|〇|〇| |〇| |
|SIEMENS S7シリーズ|〇|〇| |〇| |
|SIEMENS S7シリーズ(拡張)| | | |〇| |
|オムロン(CJ/CPシリーズ)|〇|〇| | | |
|オムロン(CS/CJシリーズ)| | | |〇| |
|キーエンス(KVシリーズ)|〇|〇| |〇| |
|ジェイテクトTOYOPUCシリーズ| | | |〇| |
|パナソニック(FP0Hシリーズ)|〇|〇| | | |
|パナソニック(FP2SHシリーズ)| | | |〇| |
|パナソニック(FP7シリーズ)|〇|〇| |〇| |
|安川MP2000シリーズ| | | |〇| |
|安川MP3000シリーズ| | | |〇| |
|横河FA-M3シリーズ| | | |〇| |
|富士電機MICREX-SXシリーズ| | | |〇| |

[^1]: RJ71EN71は単体のRJ71EN71ユニットおよびRnENCPUのスロット0のイーサネットポート部を意味します
[^2]: シリアルNo. の上 5 桁“20042” 以降で対応。未対応のPLCにパラメータを転送するとCPUエラーで動作しません。

GX Works2 Ver.1.611M , GX Works3 Ver.1.095Z にて確認
また本体のシリアルやファームウエアバージョンでも対応機種が結構変わるので使用するときは最新のマニュアルを必ず確認すること。

参考マニュアル
JY997D55101 MELSEC iQ-F FX5ユーザーズマニュアル(Ethernet通信編)
SH-081253 MELSEC iQ-R Ethernetユーザーズマニュアル(応用編)  
SH-080806 QnUCPUユーザーズマニュアル（内蔵Ethernetポート通信編）

https://www.youtube.com/watch?v=kQH1FgXWaLY&list=PLz5P-EyPEYH0NEynLVfAqZoi_gsaP2Rsb

https://www.youtube.com/watch?v=YEQWGd19K1c

# 注意点
内蔵のイーサネットポートで通信ができるのでMELSECNET/HやCC-Link IE Fieldネットワークはいらないと思う人もいるかもしれませんが用途によってはたしかにそうかもしれません。
シンプルCPU通信は最大8192ワードの制約があるので、それ以上使用したい場合はMELSEC/NETやCC-Link IE Fieldネットワークを使ってください。
またCPU間での通信断を検出するのに数秒時間がかかるため、通信断時に設備を即時停止したいような制御をしてる場合には向きません。
MELSECNET/HやCC-Link IE Fieldネットワークであれば通信断時はSB/SWレジスタを使うことで1秒未満で検出が可能です。
帳票やトレンドに使うようなデータを定周期で読み出したい用途には便利です。

# 三菱iQ-F FX5UとKEYENCE KV-5000での設定例

## FX5U側の設定

* IPアドレスの設定 例では192.168.1.30としています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/84ca9e5a-393d-3d02-1a7c-960f9947a3ba.png)

* シンプルCPU設定の有効化 [使用する]を選択し<詳細設定>を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/59b804d4-f105-08d1-253b-267d43b3e948.png)

* <詳細設定>
下記の例ではKV-5000のZF0～ZF4095をFX5U(自局)のR0～R4095に転送,FX5U(自局)のR4096～R8191をKV-5000のZF4096～ZF8191に転送する設定例です。
実行周期は最小10msから指定できますが、早すぎると勝手に遅くなります。デフォルトの100ms以上が無難です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/b524c1b9-ae31-afdd-7408-763ce4d0a184.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/3bcbe453-ea15-e603-36e8-5794e39677ce.png)

交信相手設定に通信対象の機種とIPアドレスを設定します。
自局ポート番号は設定Noごとに変える必要があります。
FX5Uでは1024～5548，5570～61439が使用可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/46cf1945-9329-934f-ec54-5d6cc2c357d9.png)

```
キーエンス(KVシリーズ) のデバイスは以下の範囲としてください。
[設定範囲]
<ビットデバイス>
 ・R(0～199915)
 ・B(0000H～7FFFH)
 ・MR(0～399915)
 ・LR(0～99915)
 ・CR(0～8915)
 ・T(0～3999)
 ・C(0～3999)
<ワードデバイス>
 ・CM(0～8999)
 ・DM(0～65534)
 ・EM(0～65534)
 ・FM(0～32767)
 ・ZF(0～524287)
 ・W(0～7FFFh)
 ・T(0～3999)
 ・C(0～3999)
```
チェックを押すことで設定に問題がないか確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/6a96917c-135d-10c6-8e44-c8211214520e.png)

## KV-5000側の設定
* IPアドレスの設定 例では192.168.1.40としています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/edeb64e8-aaaf-9f0d-be61-7add3ddcb661.png)

# 試してみる
FX5UのR4096を常時インクリメントしてKV-5000のZF4096に書き込んでいます。
KV-5000側はわざとCPU STOPにしていますが変化した値が書き込まれています。
ZF4095はFX5Uから書き込まれないデバイスなので値が変化しません。
![ezgif.com-gif-maker (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/a0560b4e-a693-3c67-e802-f9026e62a170.gif)

FX5Uのスキャンタイム
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/2ede7ede-264c-303c-0851-29347376f484.png)

KV-5000のスキャンタイム
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/8361e254-7fdc-3301-b4bb-1bfc7a8d6246.png)

診断→シンプルCPU通信診断でエラーや実行間隔がモニタできます。やはり10msは守れていないので、100msが無難です
ここで表示されてる情報はSD10356～SD10507の特殊レジスタでも取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/37780e0f-1697-b7b8-cf2d-53f10e0860ab.png)

# その他小ネタ
シンプルCPU通信やタッチパネルを大量に接続した場合に通信負荷が重いとタッチパネルのレスポンスが低下します。
もしPLCのスキャンタイムが50msや100msでも制御上問題ない場合はコンスタントスキャンにするとレスポンスが改善されたりします。
コンスタントスキャンはスキャンタイムを指定する機能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2146151/70aea954-73eb-a7f4-8795-4014b6958dce.png)

例えば現在のプログラムのスキャンタイムが18msでコンスタントスキャンを50msにします。
何が良いかというと本来18msで実行可能なプログラムを50msで動かすため、残り32msの余裕ができます。
余裕があると何が良いかというとその空き時間で通信処理をさばいてくれるのでタッチパネル等の通信もたくさんできます。
過去にPLC 3台とGOT 4台で大量の通信をさせましたが、コンスタントスキャンにすることでレスポンスが改善されました。