こちらは新しい記事シリーズで、EXOR社のXPLCを使用し様々な検証を行い発信します。
第2話ではModbus TCP Masterの構築方法を紹介し、Modbus TCP SlaveはWAGO社の通信モジュール2789-9052になります。
さ、FAを楽しもう。

Reference Link
http://soup01.com/ja/category/exor-ja/xplc/
2789−9052?
2789シリーズModbus TCP通信モジュールは、Modbus TCPフィールドバス環境との通信に使用されます。2つの外部RJ45ポートを備えた統合スイッチにより、スイッチやハブなどのインフラ要素を追加することなく、トポロジーを設定することができます。例えば、WAGO Power Supply Pro 2、ファームウェアバージョン01.04.xx以上ならば使用可能です(今回の記事の使用例)。
また、以下のプロトコルに対応しています:
- Modbus TCP
- Modbus UDP, firmware version 02.00.00 and higher
- BootP, firmware version 02.00.00 and higher
- DHCP
- SNTP
- HTTP
- HTTPS with TLS 1.3
Installation
こちらは2789-9052のインストール方法になります。
HTTP/HTTPS
Modbus TCP通信モジュールに実装されたHTTP/HTTPSサーバーは、通信モジュールと下位デバイスからHTMLページを読み込みます。
- HTTPサーバーはポート番号80を使用します。
- HTTPSサーバーはポート番号443を使用します。
Addressing
Modbusアドレスの範囲は1~247で、アドレス “0 “はブロードキャスト(全スレーブへのメッセージ)用に予約されています。
Function Codes
Modbus仕様は様々なファンクションコード(FC)を定義しています。以下の3つのファンクションコードはWAGO Power Supply Pro 2シリーズのすべての製品でサポートされています:
- FC3 保持レジスタ読み出しで、製品からパラメータを読み出す
- FC4 入力レジスタの読み出し、製品から測定値を読み出す
- FC16 複数レジスタ書き込みで、パラメータを製品に書き込む
ウェブサーバーアクセスの再有効化
注意するのはウェブサーバーを無効にすると、ポート 80 と 443 が閉じられ、モジュールはウェブブラウザーからアクセスできなくなります。ウェブ・サーバー経由のアクセスを再び有効にするには、モジュールのリセット・ボタンを10秒以上押し続ける必要があります。これはモジュールを工場出荷時の設定にリセットするか、Modbus TCP 経由で HTTP 用のレジスタ 0xFD76 または HTTPS 用のレジスタ 0xFD77 を 1 に設定する必要があります。
Implementation
Wago Side
最初はWAGO側を構築します。
Factory Reset
最初にWAGOの2789-9052をFactoryリセットします。
- リセットボタンを8秒長押し、DHCP機能無効とIPを192.168.1.17に設定する
- もしくはリセットボタンを10秒長押し、2789-9052のすべての設定を出荷設定に戻します。
Web Server
2789-9052のDefault IPアドレス192.168.1.17にアクセスし、内蔵のWeb Serverから設定や状態を確認します。
Module Settings
最初にModule Settingsをクリックします。
こちらは2789-9052のIPアドレスなどのネットワーク設定が可能です。
必要な設定を入力し、Submitボタンで設定を適用しましょう。
そしてNetwork TabにあるReboot Module機能を使用し、2789-9052を再起動します。
Module Information
こちらのModule Informationでは2789-9052のFirmwareや製品名などの情報を確認できます。
Device Settings
こちらのDevice Settingsは2789-9052経由で電源2787-2144のパラメータを設置できます。
Output Settingsは電源2787-2144の出力電圧を調整できます。
Signailzation Tabで電源2787-2144の入出力端子の設定ができます。今回の記事ではModbus経由で出力をON/OFFしたいので、”Digital output via process data/communication”を有効にしましょう。
Systemでは電源2787-2144の起動状態を設定できます。注意するのはDC output to be switched on を選択すると、毎回電源を立ち上げると自動的に24vを出力できるようになります。
Switch delayは24vDCを出力するまでの遅延になります。
Device Information
Device Information画面では電源2787-2144の情報を確認できます。
xplc Side
次はxplc側を構築します。
Configure Modbus TCP Master
xplc RuntimeにModbus TCPを使用するには、Ethernet>Modbus TCP Masterを有効にする必要があります。
Done!
Add Modbus Slave
Modbus TCP Masterが追加されましたので、次はxplc Runtimeと接続するModus TCP Slaveを構築します。Ethernet>右クリック>Addします。
Device Catalogが表示され、Generic Modbusを追加しましょう。
Done!
Configure Connection
先ほど追加したModbus TCP Slaveをクリックします。
IPアドレスは該当するModus TCP Slaveを設定します。今回は2789-9052のIPアドレスになります。
Add Function Code
次はxplcから2789-9052にアクセスするModbus TCP レジスタを設定したいので、Generic Modbusを右クリック>Addします。
Modbus Function Code設定画面が表示され、最初にFC-03を追加してみましょう。
Done!
Rename
Modbus 経由でアクセスする項目を適切な名前に変更しましょう。
Start Address
次はStart addressでFC03を使用しアクセスしたいModbus レジスタを設定します。
注意するのは2789-9052は0ベースですが、xplc Runtimeは1ベースなので、Start Addressを+1にする必要があります。
先ほど64781を設定したので、実際xplc Runtimeが2789-9052をアクセスするレジスタは64780(メインFirmware)になります。
Holding Reg.
次はHolding Reg.のTabを開き、該当するFCを使用しアクセスするレジスタを設定します。
+Addで新しいレジスタを追加します。
下図のように、連続のModbus レジスタを追加できます。こちらの設定では2789-9052のFirmware バージョンをアクセスします。
次はGlobal_vars Tabを開きます。
こちらはxplcのグローバル変数の定義画面になります。
下図のように、今回記事で使用するグローバル変数を宣言しましょう。
グローバル変数を宣言したと、Modbus 経由でアクセスするレジスタとMappingするために、Assignボタンをクリックします。
さきほど追加したグローバル変数とMappingしてください。
Add Function Code16
この記事ではすべてのレジスタのアクセス設定画面を紹介しませんが、例としてFunction Code FC16の追加方法を紹介します。
Generic Modbusに右クリック>Addします。
Modbus FC-16を選んでいただき、先程と同じ操作をすればOKです。
Result
こちらは今回のModbusの構築結果で、下図は最初に紹介した例と同じ設定になります。
こちらは2789-9052のEthernet情報にアクセスするための設定です。
レジスタ64874から64881は2789-9052のMACアドレス・IPアドレスとSubnet Maskになります。
こちらは現在電源供給2787-2144の出力電圧値を取得しています。
こちらは現在電源供給2787-2144の出力電圧・電流・Statusを取得するための設定です。
(詳しくは取説を参考してください)
こちらは電源供給2787-2144にある出力をON/OFFするための設定です。
2789-9052にあるレジスタ176のBit5をON/OFFすれば、リモートで出力をON/OFF制御することが可能です。
こちらは電源供給2787-2144の出力電圧を変更するための設定です。
Donwload
最後はプロジェクトをxplc RuntimeにDownloadするため、On-lin>Download codeをクリックします。
Yesで進みます。
xplc Runtimeをリスタートします。
YesでPLCを再起動します。
Done!これでDownload完了です。
Result
今回はScope機能を使用し通信確認したいので、Debug>Live debug modeでDebug Modeを有効にします。
次はTools>Open with XScopeをクリックします。
こちらはxplcのScope機能です。
今回は電源供給2787-2144の出力電圧を監視したいので、そのグローバル変数を選んで>Watch windowsにDropします。それによってWatch Windowsから変数の現在値を確認できます。
次は該当する変数をScope画面にもDropしていきましょう。
Done!
最後は右側にあるAcquisition Controlパネルにある赤い丸ボタンをクリックすれば、データが集計されはじめます。
次はスタートボタンをクリックします。
最後は画面のXYを自動調整します。
Done!それで出力電圧の変換を監視できます。
もちろん、xplcツールのWatch Tableからもすべての変数の現在値を確認できます。
こちらの動画で実際の動作を確認できます。