本文へスキップ
hdknr blog

BACnet / BACnet MS/TP

ビル管理システムの標準オープンプロトコル。MS/TP は RS-485 上でトークンパッシングを行うデータリンク層で、既設空調から値を読む IoT 案件の接続点になる

概要

BACnet はビル管理システム(BAS)の標準オープンプロトコル。BACnet MS/TP(Master-Slave/Token-Passing)は、BACnet を RS-485 の差動2線の上で走らせるためのデータリンク層である。

オフィスビルの天井裏にある FCU(ファンコイルユニット)1台ごとに専用コントローラが付いており、その多くが MS/TP を喋る。つまり「既設の空調設備から値を読みたい」という IoT 案件は、かなりの確率で RS-485 と BACnet のオブジェクトモデルを相手にすることになる。

3層構成で捉える

FCU コントローラ単体を見ても IoT からどう触るかは見えてこない。効くのは次の3層の関係である。

層中身プロトコル
現場側FCU 本体、温度センサ、居住者が触る設定器、汎用 DI/DOセンサ線・専用シリアル(BACnet ではない)
RS-485 幹線FCU / VAV コントローラがマルチドロップ接続BACnet MS/TP
BACnet/IP 側上位コントローラが MS/TP と IP を橋渡し。中央監視・IoT GW が乗るBACnet/IP

MS/TP の仕組みと設計パラメータ

トークンパッシング

イーサネットのような衝突検出ではなく、トークンを回して送信権を渡す。トークンを持つデバイスだけが送信し、済んだら次の MAC アドレスへ渡す。半二重2線で複数機器がぶつからずに喋るための素直な解決策だが、代償として帯域のかなりの部分がプロトコルのオーバーヘッドに消える。

76.8 kbps という数字から「1秒に何点読めるか」を単純計算しても当たらない。 実効スループットはトークンの周回時間に支配され、それは台数と各機器の応答時間で決まる。

Max_Master

MS/TP の設計で最も効くパラメータ。「ピアを探すときにどの MAC アドレスまで探しにいくか」の上限で、マスタの MAC は 0〜127、既定値は 127 が多い。

各マスタは次のマスタまでの空きアドレスに Poll For Master(PFM)フレームを投げ、応答がなければタイムアウトを待つ。この PFM サイクルはトークンが50回渡るごとに開始される。MAC 1〜10 の10台しかない幹線で Max_Master を127のままにすると、11〜127 の117個ぶんの空振りとタイムアウトを定期的に払い続ける。

ただし逆方向の副作用がある。

物理配線

台数設計

「1本に何台つなげるか」は電気的上限・帯域・機器ごとのオブジェクト数の3つで決まる。アズビルの上位コントローラ側の条件では、自社デバイスのみで 50台/CH、他社デバイスのみ(76.8 kbps・30点/デバイス)で 31台/CH。

この差は台数上限が電気的制約ではなく帯域で決まることを示す。「オブジェクト数30点/1デバイスの場合」という条件が付いているのがその証拠で、1台あたりの点数が増えれば収容台数は減る。マルチベンダー幹線は、カタログの最大台数ではなく総オブジェクト数で見積もる。

IoT の接続点は BACnet/IP 側に置く

RS-485 幹線に直接ぶら下がるか、上位の BACnet/IP に乗るかの2択だが、実務ではほぼ後者になる。

  1. 実装コスト — Python の定番ライブラリ BAC0(基盤は BACpypes)は BACnet/IP を前提にしており、MS/TP を直接喋れない。MS/TP を扱うならシリアルスタックを自前で用意するか、MS/TP ⇔ BACnet/IP ルータを噛ませる
  2. 運用リスク — 稼働中の MS/TP 幹線への機器追加は、MAC 重複・Max_Master 不整合・終端抵抗の位置・トークン周回時間の悪化のどれもが空調を止めうる。すでに BAS が動いている幹線に IoT を割り込ませるのは原則避ける

読み出しはポーリングか COV(Change of Value)購読を選ぶ。繋がらないときの切り分けには mstpcap + Wireshark を使う。

形番が仕様を決める

ビル設備機器では形番の各桁が機能を表す。アズビル形WJ-1202 の場合、バルブ ON/OFF タイプは外部接点なしのみ、還水温度入力コネクタがあるのは特定形番のみ、DI/DO 端子台があるのは特定形番のみ、といった条件が並ぶ。

つまり「この現場の FCU コントローラから DI の状態も取れるか」は製品名ではなく銘板の形番を読まないと分からない。既設設備の調査では、盤を開けて形番を全部控えるのが最初の作業になる。

なお温度入力は 4〜20 mA でも I2C でもなく 測温抵抗体 Pt100 / Pt1000。ビル設備の伝統的な流儀であり、形番ごとに入力の種類が固定されている。

関連ページ

ソース記事