本文概要
1.デモ製品
2.コンフィグレーションツール
IOConfigTool
3.通信モード
XB6S-C01SPをModbusRTUマスタ局にコンフィグレーション
4.デモスレーブ局
Modbus Slaveシリアルデバッグソフト(03/06ファンクションコード読み書き)
5.主要操作
シリアル通信パラメータの設定→ノードごとにModbusコマンドコードをコンフィグレーション→コンフィグレーションの送信→上り/下りアドレスによる読み書きとステータス判定
6.重要な注意事項
マスタ局とスレーブ局のシリアルパラメータは完全に一致させる必要があります。応答が遅いスレーブ機器では、応答タイムアウトとポーリング遅延を適宜延長してください。
XB6S-EI2002は実点科技のEtherNet/IPプロトコル対応スライス型バスカプラで、XB6S-C01SPはシリアル通信ユニットです。両者を組み合わせて使用する場合、XB6S-EI2002がPLCとのEtherNet/IP通信を担当し、XB6S-C01SPがシリアル側のModbusRTUマスタ局機能を担当します。すなわち、IOConfigToolでコンフィグレーションを完了した後、XB6S-C01SPがマスタ局として、サードパーティのModbusRTUスレーブ機器に対して能動的に読み書きを行います。それでは、具体的にシリアル通信パラメータをどのように設定し、ノードごとにModbusコマンドをコンフィグレーションし、上位機器の下り・上りアドレスを通じて読み書き制御と通信ステータス判定を完了すればよいのでしょうか。
全体のコンフィグレーションは四つの工程に分かれます:スレーブ局の読み書き要件を明確にする→上位機器でシリアル通信パラメータを設定する→ノードごとにModbusコマンドコードを入力して送信する→下りアドレスと上りアドレスにより読み書き操作とステータスモニタを実現する、という流れです。本文では、ModbusRTUプロトコルに対応したシリアルデバッグソフトModbus Slaveをデモスレーブ局とし、03ファンクションコードによるレジスタ2個の読み出しと06ファンクションコードによるレジスタ2個の書き込みを例に、コンフィグレーションの全工程をデモします。
一、デモスレーブ局の説明
本例では、ModbusRTUプロトコルに対応したシリアルデバッグソフトModbus Slaveをスレーブ局として、コンフィグレーション例を示します。
・03ファンクションコード:レジスタ2個を読み出し
・10ファンクションコード:レジスタ2個を書き込み
二、上位機器でシリアル通信パラメータをコンフィグレーション
1、通信モードをModbusRTUマスタ局に設定
上位ソフトでユニットをスキャンした後、「設定」→「デバッグ」をクリックしてデバッグモードに入り、続いてXB6S-C01SPユニットを選択し、「パラメータ設定」→「通信モード」をクリックして、通信モードを「ModbusRTUマスタ局」に設定します。


2、シリアルポートパラメータの一致
ボーレート、ストップビット、キャラクタフォーマット、検証方式はスレーブ局のシリアルポートパラメータに合わせて入力し、マスタ局とスレーブ局のコンフィグレーションが完全に一致するようにしてください。

3、制御ワードパラメータ設定
制御ワードを有効にする場合、制御モードは「高レベルトリガ」を選択することをお勧めします。同時に応答タイムアウトを200msに、ポーリング遅延を100msに設定すると、通信の安定性がより高くなります。

ヒント:デフォルトパラメータのポーリング速度は比較的速いため、応答が遅い一部のスレーブ機器では応答が間に合わずエラーになる場合があります。応答タイムアウトとポーリング遅延を適切に延長すると、通信の安定性を効果的に向上できます。
4、フレーム間隔
フレーム間隔パラメータは通常デフォルトの1.5Tのままで問題ありません。シリアルポートデバッグツールとユニット間の通信は正常、シリアルポートデバッグツールとスレーブ機器間の通信も正常だが、ユニットとスレーブ機器間で通信できない場合は、フレーム間隔の値を徐々に大きくしてテストしてみてください。
三、ノードパラメータ設定
通信モードがModbusRTUマスタ局で、かつ制御ワードが有効になっていることを前提に、以下のルールに従ってノードごとにパラメータを入力します。設定完了後、「送信」をクリックしてパラメータをバスカプラに送信します。本例では2つのコマンド(03/06の2種類のファンクションコード)を設定し、ノード1~3を使用します。


ヒント:ノード1のパラメータ1には、今回実際に使用するノード数を入力します(本例ではノード2~3の計2ノード)。ノード2以降は各ノードが1つのModbusコマンドに対応し、パラメータ1は16進数形式です。
四、アドレスの読み書きと通信状態の判断
1、読み書き操作
03ファンクションコードで01番スレーブ局のアドレス0000から2つの保持型レジスタデータを読み出す例として、Modbus Slaveでスレーブ局をシミュレートし、設定結果は以下のとおりです。

コンフィグレーション完了後、上位機器の下りアドレスから制御命令を送信し、上りアドレスから状態を読み出します。本例ではアドレスはすべて0から始まります。

下りデータでノード2とノード3のイネーブルをそれぞれオンにし、ノード3で送信するデータを書き込んでから「送信」をクリックします。

上位機器の上りデータでは、対応する設定ノードのステータスワードとアラームコードを確認でき、同時にModbus Slaveのアドレス0000から2つのレジスタの値を読み出し、アドレス0008に2つのレジスタの値を書き込んでいます。


2、通信状態の判断
通信が正常な場合、ステータスワードは絶えず変化し(一般的に2と5が切り替わるのが見られます)、アラームコードは常に0です。通信に異常がある場合は、アラームコードを確認して問題を特定できます。
