産業用機器で広く使われているModbus/TCP通信を用い、MELSEC iQ-FシリーズのFX5UCとEPC 1502を接続します。今回はEPC 1502をModbusマスタ、FX5UCをModbusスレーブとし、EPCからFX5UCにコマンドを発行する形となります。
使用機材・ソフトウェア
ライブラリの準備
PLCnext Storeより、Modbus/TCPライブラリをダウンロードします。
本ライブラリにはサンプルプロジェクトが同梱されています。今回はこのサンプルプロジェクトを使用して接続およびデータの取得を行います。
FX5UCの設定
FX5UCをModbusスレーブとするための設定を簡単にですが記載します。この作業は「MELSEC iQ-F FX5ユーザーズマニュアル(MODBUS通信編)」を参考にして行っています。
Ethernetポート、相手機器接続構成設定を開きます。
MODBUS/TCP接続機器を追加します。
接続機器へのデバイス割り付けパラメータを設定する場合は、<詳細設定>欄をクリックします。
今回は特に変更を行っていません。
ここまででFX5UC側の設定は終了です。
サンプルプロジェクトの編集
PLCnext Engineerを起動し、サンプルプロジェクトを読み込みます。
サンプルプロジェクトのコントローラはAXC F 2152ですので、これをEPC 1502に変更します。
ファンクションブロック ExampleMachine_1を開き、FX5UCのIPアドレスおよびModbus/TCP用通信ポートの設定を行います。
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のウォッチウィンドウでその値が取得出来ている事が確認出来ます。
以上です。