Modbus TCPの使用例

PLCnextStoreからダウンロードできるModbus_TCP Libraryを使用し、PLCnextとリモートI/OをModbus TCPで通信させる例をご紹介します。

このライブラリをPCにインストールすると、下記のフォルダにサンプルプロジェクトが保存されます。

ここでは、このうち、MB_TCP_9_EXA_TCP_Client.pcwexを一部修正して通信させる方法について記載します。このサンプルを使うと、PLCnextコントローラをModbusクライアントに設定し、FC3(Read holding registers)により、任意のModbusサーバからデータを読み込むことができます。 ライブラリの入手方法、使用方法についてはこちらの資料をご参照ください。

使用する製品

PLCnextコントローラ : AXC F 2152  ×1台

リモートI/Oバスカプラ: AXL F BK ETH ×1台

IO バックプレーン :AXL F BP SE4 ×1台

デジタル入力 : AXL SE DI16/1 ×1台

デジタル出力 : AXL SE DO16/1 ×1台

アナログ入力 : AXL SE AI4 I 4-20 ×1台

バックプレーンスロットカバー : AXL SE SC-A ×1台

構成 

参考:Modbus I/Oテーブルは、AXL F BK ETHのWEB設定画面で確認できます。

手順

  1. MB_TCP_9_EXA_TCP_Client.pcwexをダブルクリックして開きます。開いたプロジェクトは、名前を変更して保存しておきます。
  1. PLCnextコントローラのIPアドレスを修正します。
  1. オンラインコントローラを認識させます。
  1. Modbusサーバ(リモートI/O)のIPアドレスを設定します。
  1. 8000から8004までのレジスタを読み込むように設定します。
  1. プロジェクトをダウンロードし、実行します。
  1. ExampleMachine_1のxStartをTRUEにします。
  1. MB_TCP_FC3_3のarrRegisterValue[1]~[5]の値をウォッチウィンドウで確認します。

arrRegisterValue[1]~[4]にはAXL SE AI4のアナログ入力1~4、arrRegisterValue[5]にはAXL SE DI16の値が入力されることが確認できます。

この例では、データの読み込みについて紹介しましたが、Modbus_TCP LibraryにはFC6(Write single registers)やFC16(Write multiple registers)など、書き込みに使用するFunction Codeも含まれています。これらを使用すれば、デジタル出力やアナログ出力への書き込みも可能です。

  • URLをコピーしました!