ModbusModicon1979 (PLC) Modbus







Modbus湿使ModbusSCADA (RTU) 使

プロトコルのバージョン

編集

Modbus

ModbusEIA-485[1]

2Modbus RTU Modbus ASCII RTU (CRC) ASCII (LRC) RTU使ASCII使

TCP/IP Modbus/TCP 使

3

 Modbus Plus (Modbus+ or MB+) Modicon HDLC1Mbit/sModbus Plus ISAPCIPCMCIA使

通信と機器

編集

Modbusを使って通信する各機器には一意なアドレスが与えられる。シリアルおよびMB+のネットワークでは、マスターとされたノードだけがコマンドを発行できる。イーサネットでは任意のノードがコマンドを発行できるが、一般に唯一のマスターノードがコマンドを発行する。Modbusコマンドには、それを実行させたい機器のModbusアドレスが含まれている。指定された機器だけがそのコマンドを実行し、他の機器はたとえ受信しても何もしない(ただし、ブロードキャスト型のコマンドもある)。Modbusコマンドにはチェック情報が含まれ、受信したコマンドが壊れていないことを確認できる。基本Modbusコマンドは、RTUに対してそのレジスタの1つの値を変更させたり、I/Oポートの読み書きをさせたりできる。さらに機器に対してそのレジスタ内の値を送り返させることができる。

Modbusは非常に単純なプロトコルでコピー規格もあるため、これをサポートするモデムやゲートウェイは多数存在する。また、Modbusプロトコル専用の機器も存在する。有線だけでなく無線通信による実装や、SMSGPRSによる実装もある。そのような設計では、高レイテンシとタイミングを考慮する必要がある。

実装

編集


  • データ型
    • 浮動小数点(IEEE)
    • 32ビット整数
    • 8ビットデータ
    • 混合データ型
    • 整数内のビットフィールド
    • データと整数を変換する乗数 10, 100, 1000, 256 ...
  • プロトコル拡張
    • 16ビットスレーブアドレス
    • 32ビットデータサイズ(1アドレス = 32ビットの返却データ)
    • ワードを入れ替えたデータ

制限

編集

Modbus 1970PLC

30175

Modbus TCP/IP  open-mbus 

Modbus12471 TCP/IP 

Modbus

脚注

編集

外部リンク

編集

オープンソース

編集

libmodbus GNU/Linux CGitHubVisual Studio 2008

QModBus LinuxWindowsModbus

Free Modbus ASCII/RTU and TCP for microcontrollersC http://www.freemodbus.org

NModbus C#

()blueSCADA WindowsModbus

Protocol::Modbus in Perl

Modbus::Client in Perl

Modbus master for Ruby. 

RModBus. RubyModbus

jamod. JavaModbus