(Translated by https://www.hiragana.jp/)
Modbus - Wikipedia

ModbusModiconしゃが1979ねん同社どうしゃプログラマブルロジックコントローラ (PLC) けに策定さくていしたシリアル通信つうしんプロトコルである。産業さんぎょうさかいにおけるデ・ファクト標準ひょうじゅん通信つうしんプロトコルとなり、現在げんざいでは産業さんぎょうよう電子でんし機器きき接続せつぞくするもっと一般いっぱんてき手段しゅだんとなっている。Modbusが通信つうしんプロトコルより普及ふきゅうした理由りゆう以下いかとおりである。

  • 仕様しよう公開こうかいされていて利用りよう無料むりょうである
  • 実装じっそう比較的ひかくてき容易よういである
  • データをそのまま転送てんそうでき、ベンダーにおおくの制約せいやくもうけていない

Modbusはおなじネットワークに多数たすう機器きき接続せつぞくして通信つうしん可能かのうである。たとえば、温度おんど湿度しつど測定そくていするシステムがその測定そくてい結果けっかコンピュータ通信つうしんするといった使つかかたがある。ModbusはSCADAシステムにおける監視かんしコンピュータと遠隔えんかく端末たんまつ装置そうち (RTU) の接続せつぞく使つかわれることがおおい。

プロトコルのバージョン

編集へんしゅう

Modbusプロトコルには、シリアルポートけバージョン、イーサネットそのインターネット・プロトコル・スイートをサポートしたネットワークけバージョンがある。

Modbus機器ききおおくはシリアルのEIA-485物理ぶつりそうじょう通信つうしんする[1]

シリアルコネクションは2種類しゅるいあり、数値すうちデータの表現ひょうげんことなり、プロトコルの詳細しょうさい若干じゃっかんことなる。Modbus RTU はデータのコンパクトなバイナリ表現ひょうげんである。Modbus ASCII は人間にんげんめる表現ひょうげんで、より冗長じょうちょうである。これらはいずれもシリアル通信つうしんもちいる。RTUフォーマットではコマンドやデータに巡回じゅんかい冗長じょうちょう検査けんさ (CRC) チェックサムがき、ASCIIフォーマットは水平すいへい冗長じょうちょう検査けんさ (LRC) チェックサムをもちいる。かくノードはRTUを使つかうかASCIIを使つかうかが設定せっていされており、ことなるフォーマット同士どうしでは通信つうしんできない。

TCP/IPたとえばイーサネットじょうのコネクションでは、よりあたらしい Modbus/TCP を使つかう。こちらではチェックサムは下位かいそうまかせている。

データモデルとファンクションコールはこれら3種類しゅるいのプロトコルで同一どういつである。カプセル方式ほうしきだけがことなる。

拡張かくちょうバージョンである Modbus Plus (Modbus+ or MB+) もあるが、Modicon しゃ独自どくじ仕様しようである。高速こうそくHDLCふうトークンローテーションをあつかうために専用せんようのコプロセッサを必要ひつようとする。ひねせんたいで1Mbit/sの通信つうしんおこない、レベルトリガではなくエッジトリガで通信つうしんする。Modbus Plus をコンピュータに接続せつぞくするには特殊とくしゅなインタフェースが必要ひつようであり、一般いっぱんにISAやPCIやPCMCIAの専用せんようカードを使つかう。

通信つうしん機器きき

編集へんしゅう

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 は1970年代ねんだいまつプログラマブルロジックコントローラ通信つうしんするために設計せっけいされた。そのため、その当時とうじのPLCが解釈かいしゃくできるデータがたしかなく、だい規模きぼライブラリのオブジェクトはサポートされていない。
  • データオブジェクトを説明せつめいする標準ひょうじゅんてき手段しゅだん存在そんざいしない。たとえば、レジスタが30から175温度おんどあらわしているといった情報じょうほうである。
  • Modbusはマスタースレーブかたプロトコルであるため、機器きき例外れいがい事象じしょう報告ほうこくする手段しゅだんがない(ただし、イーサネット TCP/IP じょうでは open-mbus という例外れいがいあつかえるものもある)。したがって、マスターノードが定期ていきてきかく機器きき状態じょうたいわせる必要ひつようがある(状態じょうたいわせるとっても、そのようなコマンドがあるわけではなく、たんにデータをって異常いじょうがないかチェックするだけである)。これは低速ていそく無線むせんリンクなどバンドはば貴重きちょうなネットワークでは、バンドはば無駄遣むだづかいになる。
  • Modbusは1つのデータリンクない最大さいだい247のアドレスまでしかあつかえない。このため、1つのマスターステーションに接続せつぞくできる機器きき台数だいすう制限せいげんされる(ただし、イーサネット TCP/IP ではそのかぎりではない)。
  • Modbusの転送てんそう連続れんぞくてきでなければならない。そのため、遠隔えんかく通信つうしん機器ききはデータをバッファリングし転送てんそうにギャップがしょうじないようにする必要ひつようがある。

脚注きゃくちゅう

編集へんしゅう

外部がいぶリンク

編集へんしゅう

オープンソース

編集へんしゅう