読者です 読者をやめる 読者になる 読者になる

C Sharpens you up

http://qiita.com/yuba に移しつつあります

半二重のRS-485上に複数機器をつなげるModbus

BEMS

BEMS機器の接続規格として最も古いModbusは1970年代からあります。その物理層は二線式のRS-485。半二重のシリアル通信を二線間の電圧差分で伝達するものです。

RS-485は単純なシリアル通信であり、ルーティング機能や衝突検知機能は持ちません。しかも半二重。半二重とはホスト2つを一対一でつないだとき、同時には片方からしかデータ送信ができないことを意味します。

そんなRS-485上で、Modbusは一対の二線式ケーブルにいくつもの(247台までの)機器をぶらさげるネットワークを実現しています。いったいどんな魔法を使っているのか?

魔法のからくりは、マスタースレーブ通信にあります。マスター機器が一台だけ存在し、

  • 通信を開始できるのはマスターだけ
  • 通信に応答してよいのはマスターに指名されたスレーブだけ
  • マスターから全員への通信(ブロードキャスト)には誰も応答してはいけない

というルールで衝突を防いでいるのです。

この仕組み上、機器はリアルタイム情報を中枢へアップロードするという仕組みは構成できません。あくまで、中枢が各機器へひとつずつ状態を聞いて回るという手順になります。

そのため参加機器が増えると(といっても247台が上限ですが)、最大19200bpsしか出ない通信帯域の中では状態取得頻度が上げられなくなるという性質があります。

あわせてどうぞ【BEMS技術】