Modbus
ModbusはModicon
仕様 が公開 されていて利用 が無料 である実装 が比較的 容易 である- データをそのまま
転送 でき、ベンダーに多 くの制約 を設 けていない
Modbusは
プロトコルのバージョン
Modbusプロトコルには、シリアルポート
Modbus
シリアルコネクションは2
TCP/IP(
データモデルとファンクションコールはこれら3
通信 と機器
Modbusを
Modbusは
実装
ほとんど
- データ
型 浮動 小数点 (IEEE)- 32ビット
整数 - 8ビットデータ
混合 データ型 整数 内 のビットフィールド- データと
整数 を変換 する乗数 10, 100, 1000, 256 ...
- プロトコル
拡張 - 16ビットスレーブアドレス
- 32ビットデータサイズ(1アドレス = 32ビットの
返却 データ) - ワードを
入 れ替 えたデータ
制限
- Modbus は1970
年代 末 にプログラマブルロジックコントローラと通信 するために設計 された。そのため、その当時 のPLCが解釈 できるデータ型 しかなく、大 規模 ライブラリのオブジェクトはサポートされていない。 - データオブジェクトを
説明 する標準 的 手段 が存在 しない。例 えば、レジスタ値 が30度 から175度 の温度 を表 しているといった情報 である。 - Modbusはマスタースレーブ
型 プロトコルであるため、機器 が例外 事象 を報告 する手段 がない(ただし、イーサネット TCP/IP上 では open-mbus という例外 を扱 えるものもある)。したがって、マスターノードが定期 的 に各 機器 の状態 を問 い合 わせる必要 がある(状態 を問 い合 わせると言 っても、そのようなコマンドがあるわけではなく、単 にデータを読 み取 って異常 がないかチェックするだけである)。これは低速 な無線 リンクなどバンド幅 が貴重 なネットワークでは、バンド幅 の無駄遣 いになる。 - Modbusは1つのデータリンク
内 で最大 247個 のアドレスまでしか扱 えない。このため、1つのマスターステーションに接続 できる機器 の台数 が制限 される(ただし、イーサネット TCP/IP ではその限 りではない)。 - Modbusの
転送 は連続 的 でなければならない。そのため、遠隔 通信 機器 はデータをバッファリングし転送 にギャップが生 じないようにする必要 がある。
脚注
- ^ Technote 27 - Modbus/RS485 Questions Obvius Holdings LLC
外部 リンク
- プロトコルの
詳細 - Modbus-IDA サイト
- MBX Driver サイト -
標準 Modbus, Modbus Plus, Modbus/TCP のドライバソフトウェア、Cyberlogic と Schneider Electric - Java
開発 者 のためのプロトコル解説 - Answers to the 14 Most Frequently Asked Modbus Questions
- Modbusについての
基本 的 解説 - CommServer OPC Server for Modbus
- Modbusプロトコル
概説 書 (日本語 )(株) エムジー(旧 社名 :エム・システム技研 )
オープンソース
- libmodbus GNU/Linux
上 のC言語 向 けオープンソースライブラリ。GitHubにはVisual Studio 2008のプロジェクトファイルもある。 - QModBus LinuxおよびWindows
用 のグラフィカルなModbusマスターアプリケーション - Free Modbus ASCII/RTU and TCP for microcontrollers C
言語 。新 しいサイトは http://www.freemodbus.org。 - NModbus C#
実装 - (リンク
切 れ)blueSCADA Windows用 のグラフィカルなModbusマスターアプリケーション - Protocol::Modbus in Perl
- Modbus::Client in Perl
- Modbus master for Ruby. パブリックドメインのサンプルコード。
他 のスクリプト言語 に容易 に移植 可能 。 - RModBus. RubyによるModbusプロトコルのフリーな
実装 - jamod. JavaによるModbusプロトコルの
実装