LoginSignup
3
2

Modbus/TCPでFactory IOとMELSECを接続しよう(自動応答機能)

Last updated at Posted at 2021-11-27

Factory IOとは

最近FA界隈で噂のFactory IOです。
これは何かというと自分で機械を組み合わせて工場の設備を作る海外のゲームです。

メーカが用意してるサンプル設備の動画もあるのでこれがわかりやすいです。

Factory IOは3threesさんがブログで丁寧に解説されてるので使い方はこちらが勉強になります。

Factory IO使用可能な通信方法

以下がVer2.5.1で選べる選択肢です。
image.png

やはり海外製のソフトなのでMCプロトコルやSLMPには非対応です。
ということでMELSECで通信をするには以下の3択となってしまいます。

OPC Client DA/UA

  • たけびし DeviceXPlorer OPC Server
  • MELSOFT MX OPC Server UA (SW3DND-OPCUAS-E)
  • OPC UAサーバユニット(RD81OPC96,FX5-OPC)

OPCは別途サーバのアプリが必要です。
たけびし DeviceXPlorer OPC Serverの32bit版(64bit版はEZSocket非対応)を使うとEZSocket接続でGX Works2/3のSimulatorと通信が可能です。実機が不要です。
Youtubeで[MELSEC FactoryIO]で検索するとMELSOFT MX OPC Server UAの接続例が見れますがこのソフトは日本語版がない(たぶん)ので国内で入手可能か謎です。

Modbus TCP server

Factory IOを[Modbus TCP/IP Server]に設定した場合
Function CodeはPLCから送ります。(ServerはSlaveと同じ役目)

  • MODBUS自動交信機能
  • 通信プロトコル支援機能
  • シンプルCPU通信[MODBUS/TCP]

Modbus TCP client

Factory IOを[Modbus TCP/IP Client]に設定した場合
Function CodeはFactory IOから送ります。(ClientはMasterと同じ役目)

  • MODBUS自動応答機能
  • シンプルCPU通信[MODBUS/TCP]

自動応答機能での設定例(MELSEC iQ-F FX5U)

今回は自動応答機能での説明をします。設定が一番楽な方法です。
通信プロトコル支援機能が一番対応機種が多いのでサンプルプログラムを作ってたのですが半日かかってもうまく通信ができなかったので今回はあきらめました。
(もしかしたらファイアウォールの設定も必要なのかも)
MODBUS自動応答機能を使うには以下のユニットを装着またはCPUを使用している必要があります。

シリーズ 型式
MELSEC iQ-Rシリーズ RJ71EN71
MELSEC iQ-Rシリーズ RnENCPU
MELSEC iQ-Fシリーズ FX5U,FX5UC,FX5UJ
MELSEC Qシリーズ QJ71MT91

こう考えるとiQ-Fシリーズは低価格だけど標準装備の通信機能が充実してるのでIoTとかに向いてるように思います。
デバイス点数は少ないですが。

MELSEC iQ-F FX5Uでの設定例となります。家にあるのがコレので。

参考マニュアル JY997D55001 MELSEC iQ-F FX5ユーザーズマニュアル(MODBUS通信編)

image.png

1.PLCのIP設定です。Factory IOを実行するPCと同一セグメント内で重複しないIPを割り当ててください。
2.相手機器接続構成設定でMODBUS/TCP接続機器を下の画面のようにドラッグ&ドロップしてください。ポート番号は502。設定を反映をして閉じる。

image.png

3.2の操作にて[使用]が勝手に選択されます。
4.デバイス割り付けの設定です。

デフォルトは状態では勝手に割り付けがされます。
使用しない箇所は消してください。
image.png

割付1は以下にします。

コイル 入力 入力レジスタ 保持レジスタ
M0 M32 D0 D32
0 0 0 0
32 32 32 32

割付2以降はデバイスは空欄,先頭MODBUSデバイス番号は0,割付点数も0にしてください。
image.png

これで完了です。PLCに書き込んでください。

Factory IO設定

今回の設定例ではOpen-Scenes で Assembler を選びます。
下のICみたいなアイコンを押します。
image.png

Modbus TCP/IP Clientを選択します。
この時点でデフォルトで勝手に割り付けがされます。

image.png

PLCのアドレスを設定します。
←で閉じます

image.png

CONNECTを押すと通信開始をします。
通信開始でDISCONNECTに表記が変わりチェックマークのアイコンが点灯します。

image.png

通信開始するとM12とM13が点灯します。
M12はCoil 12とリンクしています。
M13はCoil 13とリンクしています。
Factory IOの状態と一致しますね。

image.png
image.png

つまり以下のようにリンクします。
入力と出力の表記は入れ替わるのはFactory IO側から見た入出力だからです。

DI:Factory I/OのDI(ボタン等)はColi(コイル)に出力されます。

PLCアドレス MODBUSアドレス
M0 Coil 0
M1 Coil 1
M2 Coil 2
省略 省略
M29 Coil 29
M30 Coil 30
M31 Coil 31

DO:Factory I/OのDO(ランプ等)はInput(入力)から読み出します。

PLCアドレス MODBUSアドレス
M32 Input 0
M33 Input 1
M34 Input 2
省略 省略
M61 Input 29
M62 Input 30
M63 Input 31

AO:Factory I/OのAO(7セグの数値表示等)はInput Reg(入力レジスタ)から読み出します。

PLCアドレス MODBUSアドレス
D0 Input Reg 0
D1 Input Reg 1
D2 Input Reg 2
省略 省略
D29 Input Reg 29
D30 Input Reg 30
D31 Input Reg 31

AI:Factory I/OのAI(流量計等)はHolding Reg(保持レジスタ)に出力されます。

PLCアドレス MODBUSアドレス
D32 Holding Reg 0
D33 Holding Reg 1
D34 Holding Reg 2
省略 省略
D61 Holding Reg 29
D62 Holding Reg 30
D63 Holding Reg 31

三角ボタン(再生マーク)を押してStartボタンを押すとM10(Coil 10)がONします。
image.png
image.png
image.png

これでなんか動きそうですね。
次回は動かしてみます。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2