4 フィールドバス通信
4.2 MODBUS の機能
4.2.1 概要 4
MODBUSはメーカに依存しないオープンなフィールドバス規格であり、製造お
よびプロセスオートメーションにおけるさまざまなアプリケーションに使用さ れます。
MODBUSプロトコルは、プロセスイメージ、フィールドバス変数、カプラに関
する各種設定や情報の転送を目的とし、最新のインターネットドラフトに従っ て実装されます。
フィールド側のデータ転送はTCPやUDPを用いて行われます。
MODBUS/TCPプロトコルはMODBUSプロトコルの一種であり、TCP/IPを用い
た通信に対して最適化されています。
このプロトコルは、フィールドレベルでのデータ交換(プロセスイメージ内の I/Oデータのやりとり)を目的に設計されたものです。
TCPによるパケット転送はすべてポート番号502を用いて行われます。
MODBUS/TCPのセグメント
MODBUS/TCPの一般的なヘッダ構成は次のようになっています。
バイト 0 1 2 3 4 5 6 7 8 - n
識別子
(受信側が 設定)
プロトコルID
(「0」で 固定)
データ長
(上位バイト、
下位バイト)
ユニットID
(スレーブの アドレス)
MODBUS の機能 コード
データ
図 4-12:MODBUS/TCPのヘッダ
詳細情報
データグラムの構造は各機能によって異なります。詳しくはMODBUS機能コー ドの説明をご覧ください。
MODBUSプロトコルでは、TCP上で15本のコネクションが使用できます。
そのためフィールドバスノードに保存されているデジタルとアナログの出力 データの直接読み出しや、MODBUSの簡単な機能コードを使った特殊機能の実 行が、15箇所の端末から同時に行えます。これを実現するため、「Open MODBUS/TCP Specification」に規定されるMODBUS機能が実装されています。
詳細情報
「Open MODBUS/TCP Specification」についてはインターネットのウェブサイト
(www.modbus.org)で見ることができます。
MODBUSプロトコルは次のような基本的なデータタイプに基いています。
• 117
MODBUSの機能
データタイプ 長さ 意味
個別入力 1 Bit デジタル入力
コイル 1 Bit デジタル出力
入力レジスタ 16 Bit アナログ入力データ 出力レジスタ 16 Bit アナログ出力データ
これらの機能を使うことにより、デジタルまたはアナログの入出力データや内 部変数を設定したり、フィールドバスノードから直接読み出すことができます。
機能コード
16進 機能 アクセス
方法解説 リソースへのアクセス
FC1: 0x01 コイルの読み出し 単一入力ビット
の複数読み出し
R:プロセスイメージ、PFC 変数
FC2: 0x02 デジタル入力値の
読み出し
入力ビットの複 数読み出し
R:プロセスイメージ、PFC 変数
FC3: 0x03 複数レジスタの
読み出し
入力レジスタの 複数読み出し
R:プロセスイメージ、PFC 変数、内部変数、NOVRAM
FC4: 0x04 入力レジスタの
読み出し
入力レジスタの 複数読み出し
R:プロセスイメージ、PFC 変数、内部変数、NOVRAM
FC5: 0x05 コイルの書き込み 各出力ビットの
書き込み
W:プロセスイメージ、PFC 変数
FC6: 0x06 1つのレジスタの
書き込み
各出力レジスタ の書き込み
W:プロセスイメージ、PFC 変数、内部変数、NOVRAM FC 11: 0x0B 通信イベント
カウンタの取得
通信イベントカ ウンタ
R:なし
FC 15: 0x0F 複数コイルの設定 出力ビットの複
数書き込み
W:プロセスイメージ、PFC 変数
FC 16: 0x0010 複数レジスタの 書き込み
出力レジスタの 複数書き込み
W:プロセスイメージ、PFC 変数、内部変数、NOVRAM FC 22: 0x0016 書き込みレジスタ
のマスク
W:プロセスイメージ、PFC 変数、NOVRAM
FC 23: 0x0017 レジスタの 読み書き
出力レジスタの 複数読み書き
R/W:プロセスイメージ、
PFC変数、NOVRAM
表 4-3:フィールドバスカプラのMODBUS機能一覧
機能を実行するには、対応する機能コードと選択した入力または出力データの アドレスを指定します。
注 意
記載例の数値は16進(0x0000)で表示しています。アドレスは「0」で始まり ます。
表示形式とアドレスの開始番地はソフトウェアおよび制御系によって異なる場 合があります。アドレスは必要に応じて変換することが必要です。
118 •
MODBUSの機能
4.2.2 MODBUS 機能の使用例
下図の例ではフィールドバスノードを図示し、MODBUS機能を使ってプロセス イメージのデータにアクセスする様子を示しています。
入力モジュール
ワード1 ワード2
MODBUSアドレス FC3(複数レジスタの読み出し)
FC4(入力レジスタの読み出し)
上位バイト
出力モジュール
ワード1 ワード2 ワード1
ワード2 ワード1 ワード2 ワード1 ワード2 ワード1 ワード2
下位バイト ワード1
ワード2 ワード1 ワード2
FC3(複数レジスタの読み出し)
FC4(入力レジスタの読み出し)
FC6(1つのレジスタの書き込み)
FC16(複数レジスタの書き込み)
FC1(コイルの読み出し)
FC2(デジタル入力値の読み出し)
MODBUSアドレス
MODBUSアドレス
MODBUSアドレス
MODBUSアドレス MODBUS
アドレス
FC5(コイルの書き込み)
FC15(複数コイルの設定)
FC1(コイルの読み出し)
FC2(デジタル入力値の読み出し)
上位バイト 下位バイト
上位バイト 下位バイト
図 4-13:MODBUS機能の使用例 G012918e
注 意
アナログデータはレジスタ機能①を、またデジタルデータはコイル機能②を用い てアクセスすることを推奨します。
• 119
MODBUSの機能