本案例では実点科技のリモートI/O XB6S Modbus TCPプロトコルバスカプラXB6S-MT2002とシリアル通信ユニットXB6S-C01SPを組み合わせて、Modbus スレーブ局の読み出しと書き込みを行います。

まずブラウザにXB6S-MT2002のIPアドレス(192.168.1.120)を入力してWeb画面を開き、構成情報を開くとXB6S-C01SPが使用しているアドレスが確認できます。それぞれ読み出しデータアドレスと書き込みデータアドレスです。

XB6S-C01SPをクリックしてユニットのコンフィグレーション画面に入り、関連パラメータを設定します。

通信モード選択でModbus RTUマスタモードを選択し、通信パラメータは9600-N-8-1を選択します。
ノードパラメータ設定は以下のとおりです。局番号1のデバイスに対して、開始アドレス0から連続して2つのレジスタを読み出し、書き込みします。

「送信」をクリックしてパラメータを送信します。「√成功」と表示されればパラメータの送信が成功したことになります。

Modbus Pollソフトウェアを使用してXB6S-MT2002の読み出しデータアドレスと書き込みデータアドレスをモニタします。


Modbus Slaveを使用してRTUスレーブ機器をシミュレートします。

データ書き込みアドレスの先頭2つのアドレスにそれぞれ1A、2Bを書き込むと、スレーブ機器に書き込まれ、データ読み出しアドレスの先頭2つのアドレスに読み出されて表示されます。

Modbus TCPはビッグエンディアン伝送、すなわち上位バイトが先で下位バイトが後になりますが、Modbus RTUはリトルエンディアン伝送、すなわち下位バイトが先で上位バイトが後になります。そのため、書き込み時と読み出し時でバイトの順序が逆になっていることが確認できます。XB6S-C01SPは3種類のバイトスワップモードを提供しており、上図の状況では以下のようにパラメータを設定し、2バイトスワップを設定してパラメータを送信します。(注意:パラメータを送信する際はModbus Pollの接続を切断する必要があります)


データの書き込みと読み出しがともに正常であることが確認できます。
以上がXB6S-MT2002とXB6S-C01SPを使用してModbus TCPからModbus RTUへの通信変換を実現する方法です。ご視聴ありがとうございました。