Modbus/TCPでMELSEC iQ-FとEPCを接続

産業用機器で広く使われているModbus/TCP通信を用い、MELSEC iQ-FシリーズFX5UCEPC 1502を接続します。今回はEPC 1502をModbusマスタ、FX5UCをModbusスレーブとし、EPCからFX5UCにコマンドを発行する形となります。

使用機材・ソフトウェア

今回使用しているPLCnext Engineerのバージョンは2021.9 (Build 4.12.200.0)、EPC 1502のバージョンはHW: 01 FW: 2021.0.7 LTSです。

MELSEC iQ-F FX5UC-32MTのファームウェアバージョンは1.110、ツールはGX Works3 Version 1.082Lを使用しています。

ライブラリの準備

PLCnext Storeより、Modbus/TCPライブラリをダウンロードします。

本ライブラリにはサンプルプロジェクトが同梱されています。今回はこのサンプルプロジェクトを使用して接続およびデータの取得を行います。

Modbus/TCPライブラリの詳細については、ドキュメント(Modbus_TCP_11.pdf)をご参照下さい。本ドキュメントはライブラリパッケージに同梱されています。PLCnext Storeの当該ページからもダウンロードしていただけます。

FX5UCの設定

FX5UCをModbusスレーブとするための設定を簡単にですが記載します。この作業は「MELSEC iQ-F FX5ユーザーズマニュアル(MODBUS通信編)」を参考にして行っています。

Ethernetポート、相手機器接続構成設定を開きます。

MODBUS/TCP接続機器を追加します。

接続機器へのデバイス割り付けパラメータを設定する場合は、<詳細設定>欄をクリックします。

今回は特に変更を行っていません。

ここまででFX5UC側の設定は終了です。

サンプルプロジェクトの編集

PLCnext Engineerを起動し、サンプルプロジェクトを読み込みます。

MB_TCP_11_EXA_TCP_Client.pcwex

サンプルプロジェクトのコントローラはAXC F 2152ですので、これをEPC 1502に変更します。

ファンクションブロック ExampleMachine_1を開き、FX5UCのIPアドレスおよびModbus/TCP用通信ポートの設定を行います。

FX5UC IPアドレス:192.168.1.11 ポート番号:502

EPC 1502にプロジェクトを書き込み、オンラインモード下でプログラム(Main1)を開きます。

ファンクションブロックExampleMachineのxStartにTRUEをセットします。

FX5UCとのModbus/TCP通信が確立すると、MB_TCP_ClientのxReadyがTRUEとなります。

MB_TCP_FC3ファンクションブロックのxActiveをFALSEにし、入力パラメータに読み出しのための値をセットします。今回はFX5UCの保持レジスタ「D100」を参照するので、wStartRegisterに0x64、uiQuantityOfRegistersに1をセットしています

MB_TCP_FC3ファンクションブロックのxActiveをTRUEにセットすると、指定したパラーメータにしたがって通信を開始します。今回はFX5UC側のプログラムでD100レジスタの値をインクリメントしており、その値が「udtExample.udtMB_TCP_FC3.arrRegisterValue」に取り込まれています。EPC 1502のウォッチウィンドウでその値が取得出来ている事が確認出来ます。

MB_TCP_FC3ファンクションをアクティブ化(xActivate = TRUE)する際にはMB_TCP_ClientのxReadyがTRUEとなっている必要があります。出力側xActiveがTRUEにならない場合にはMB_TCP_ClientのxReadyを確認して下さい

Modbus_TCP_11.pdf

以上です。

  • URL Copied!