BACnet(Building Automation and Control Networking Protocol)
概要 †
- BACnetは、ASHRAE(American Society of Heating, Refrigerating, and Air conditioning Engineers:米国暖房冷凍空調工学会)が推進するANSI/ISO規格であり、BAのためのオープンな通信プロトコルとして広く利用されている
- 通信方式としては、使用するネットワーク層に対応してBACnet LAN(Ethernet、MS/TPなどを利用する通信)、またはInternet Protocol(IP)を使用したBACnet/IPがある
- BACnetの特長は、ネットワーク上の物理的なデバイス(I/O)、およびデバイスが有するデータを抽象化されたデータ集合「オブジェクト」として定義し、オブジェクトにアクセスするための目的を分類した「サービス(標準手続き)」を規定している点にある
- この特長により、機器メーカー独自のインタフェースが不要になり、異なるメーカーの機器間の相互運用が容易になる
- BACnetでは通信機器をデバイス、オブジェクト、プロパティという概念で抽象化している
- ANSI/ASHRAE Standard 135-2004 (ASHRAE-2004)においては、 Analog Input や Trend Log など25のオブジェクトが定義されている
- ANSI/ASHRAE 135-2016 BACnet (BACnet2016)では、エレベーターやエスカレーターを表すElevator Group、Escalator、Liftといったオブジェクトまで導入されている
- 1つのデバイスの下には複数のオブジェクトがぶら下がっており、同一デバイス内でオブジェクトID(正確にはインスタンス番号)が重複することはない
- プロパティはオブジェクの属性情報で、オブジェクトの名称を意味するObject_Nameや、現在値を意味するPresent_Value などが存在する
ネットワーク †
プロトコルスタックと通信方式 †
- BACnet/IPは、OSI参照モデルの7階層を5階層に縮退した構成となっている
- BACnet/IPでは、OSI参照モデルのネットワーク層やトランスポート層の仕様を規定していないが、データリンク層でUDP/IPを使用することを規定している
UDPポート番号 †
デバイス・オブジェクト・プロパティ †
APDU(Application Protocol Data Unit) †
サービス要求 †
サービス要求には以下の2つがあり、通信の信頼性が異なる
Confirmed(BACnet-Confirmed Request-PD) †
- 確認付きサービス要求
- 送信先のデバイスからの応答が必要なサービス
- 特定のデバイスにユニキャストでメッセージ送信
- 確認付きサービス要求を受信したデバイスでは、データを返す必要のないサービスにおいて、要求されたサービスが正常に終了したときに確認付きサービス応答(BACnet-Simple ACK-PDU)が返される
Unconfirmed(BACnet-Unconfirmed Request-PDU) †
- 確認無しサービス要求
- 送信先のデバイスからの応答が必ずしも必要でないサービス
- ブロードキャストやユニキャストでメッセージ送信
アラームイベントサービス †
警報や状態変化を通告する方法として以下の2つが定義され、それぞれでConfirmed/Unconfirmedがある。
COV Notification Service †
- COV : ChangeOfValue? の略
- オブジェクトの PresentValue? または StatusFlags? が変化したタイミングで、他のBACnetデバイスに対して変化通知する
- B-BCなどのコントローラ間のデータ共有に使用
- 停電復電連動制御や火災連動などのサブシステム間の連動制御
Event Notification Service †
外部モード情報 †
- BACnetシステムインターオペラビリティガイドラインでは、火災情報、受電情報、自家発情報などのビル全体で共通的に認識する必要のある情報については、外部モード情報によって設備間の協調連動制御を行うと規定されている
- 外部モード情報では、COV Notificationサービスを任意のタイミングで送信することができる
- 確認無しサービスではあるが、定期周期で通告を行うことができるため、ネットワーク上のパケットロスやデバイス側の出受信漏れを防ぐことができる
優先制御 †
- 火災制御や停復電制御に関しては、スケジュール制御よりも優先して制御を行う必要がある
- BACnetではオブジェクトの優先制御に関するプロパティを設定することができ、これを Priority Array と呼ぶ
Priority Array †
- BACnet ではコマンド実行時に1から16の優先順位(プライオリティ)をつけることができる
- ただし、16のプライオリティのうち用途が指定されているのは以下のみ
- 1 Manual-Life Safety
- 2 Automatic-Life Safety
- 5 Critical Equipment Control
- 6 Minimum On/Off
- 8 Manual Operator
- 上記以外は将来の拡張のために残されている
- 機器メーカーによって、BACnetのコマンド実行時のプライオリティが指定されていることがあるので、通信失敗時にはプライオリティの設定が正しいかの仕様書の確認が必要
- BACnetシステムの各種機器に必要な機能の妥当性を検証する機関
- 機器群の認証を行っている
- 製品ベンダーは、認証された製品をBTL認証取得として公表でき、BACnetプロトコルの相互接続性が保証されていることを明らかにする手段として定着している
規格 †
BACnet-IP †
BACnet MS/TP †
BACnet/WS †
セキュリティ †
関連製品 †
BACnetゲートウェイ †
クラウド対応 †
関連ライブラリ †
.NET用 †
関連記事 †
開発ツール †
開発会社 †
ソフトウェア †
参考になる図 †
関連ツール †
関連プロジェクト †