13.4 MODBUS TCP/IP 通信プロトコル
• MODBUS TCP/IP プ ロ ト コ ル に よ る 通 信 は ,RS-485 イ ン タ ー フ ェ ー ス に て 使 用 し て い る
MODBUS プロトコル(MODBUS RTU)と同じようにインターフェース上でも使えるようにしたプ
ロトコルです。
*RS-485インターフェースのMODBUSプロトコル(MODBUS RTU)については,第5~7章を参 照してください。
• MODBUS TCP/IP通信は,ポート番号502で通信を行います。
• MODBUS TCP/IPプロトコルで使用するメッセージはMODBUS RTUで使用するメッセージから
エラーチェックコード(CRC-16)の2バイトを削除し,6 バイトのヘッダを追加したメッセージに なります。
MODBUS RTUメッセージをMODBUS TCP/IP用のメッセージに変換する場合は,以下のように
なります。
MODBUS RTUメ ッ セ ー ジ デ ー タ 部 CRC
↓ MODBUS TCP/IPメ ッ セ ー ジ ヘ ッ ダ デ ー タ 部
• MODBUS TCP/IPメッセージのヘッダ部は,転送ID,プロトコルID,データ部の総バイト数で構
成されます。
Byte No. 0 1 2 3 4 5
デ ー タ の 内 容 転 送ID プ ロ ト コ ルID デ ー タ バ イ ト 数
デ ー タ の 意 味 転 送ID :指 令 メ ッ セ ー ジ と 同 じ 数 値 を 応 答 メ ッ セ ー ジ で 返 し ま す 。
プ ロ ト コ ルID :MODBUS TCP/IPの 場 合 は 、0を 設 定 し ま す 。 デ ー タ バ イ ト 数 :デ ー タ 部 の バ イ ト 数 で す 。
• 例えば、6.2章(3)メッセージ伝送(例)をMODBUS TCP/IPメッセージに変換する場合は、以下のよ うになります。
ステーション№1からチャネル2の測定値を読み出す場合
チャネル2の測定値の相対アドレス:0065H(レジスタ番号 30102),データ数:01H 指令メッセージの構成(バイト)
MODBUS RTUメッセージ(バイト) MODBUS TCP/IPメッセージ(バイト)
ヘッダ 転送ID 上位 00H 下位 00H 上位 00H プロトコルID
下位 00H 上位 00H バイト数
下位 06H
データ部 No. 01H データ部 No. 01H
応答メッセージの構成(バイト)
MODBUS RTUメッセージ(バイト) MODBUS TCP/IPメッセージ(バイト)
ヘッダ 転送ID 上位 00H 下位 00H プロトコルID 上位 00H 下位 00H バイト数 上位 00H 下位 05H データ部 ステーションNo. 01H データ部 ステーションNo. 01H
ファンクションコード 04H ファンクションコード 04H
読出しバイト数 02H 読出しバイト数 02H
上位 01H 上位 01H
最初のワードデー
タの内容 下位 4FH
最初のワードデー
タ内容 下位 4FH
CRC CRCデータ 上位 F9H 下位 54H
• 通信異常時、以下のエラーコードが返信されます。
エラーコード 内容 説明
01H ファンクション・コード
不良 実在しないファンクション・コードが指定されました。
ファンクション・コードを確認してください。
02H レジスタに対するアドレ
ス不良 指定したファンクション・コードで使用できない,レジスタ番号 の相対アドレスが指定されています。
03H レジスタの個数不良 個数の指定が大き過ぎる為,レジスタ番号が存在しない領域ま で,指定されています。
04H デバイスエラー スレーブ機器との通信が失敗しました。スレーブ機器の通信仕様 を確認してください。