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ポート番号 †
デバイス・オブジェクト・プロパティ †
デバイス †
- BACnetデバイスとは通信プロトコルBACnetのネットワーク上で通信するデバイスのことをいう
B-AWS(BACnet Advanced Operator Workstation) †
B-OWS(BACnet Operator Workstation) †
- 監視制御対象の下位システムはBACnetネットワーク
- 専用システムが対象で「BACnetに対応可」という場合は、内部設定情報はユーザに開放されない
- データサーバと制御用サーバとのインタフェースがユーザに開放されていなければならない
B-BC(BACnet Building Controller) †
- エリア制御
- プログラム可能な制御機能に加えてスケジュール制御や傾向記録の機能を持つコントローラ
- ネットワーク配置上の考慮からBACnetルータ機能を内蔵する場合もある
- 上位または下位の構成機器がBACnet機器であり、ベンダに依存しないこと
- Webサーバ機能を内蔵し、市販PC、タブレット端末、スマートフォンから設定や制御プログラム変更が行えること
- 制御プログラムのツールは、国際規格または業界標準のIEC61131-3やMATLAB/Simulinkとする
B-AAC(BACnet Advanced Controller) †
- 高機能コントローラ
- プログラム可能な制御機能に加えてスケジュール制御や傾向記録の機能を持つコントローラ
B-ASC(BACnet Application Specific Controller) †
- 専用コントローラ
- プログラム可能な制御機能を持つコントローラ
B-SA(BACnet Smart Actuators) †
B-SS(BACnet Smart Sensors) †
BBMD(BACnet/IP Broadcast Management Device) †
ICONT (Intelligent Controller), HIM (Human Interface Module) †
- ICONT や HIM は主に電気設備学会で使用されていた機能分類語
- ICONT は Intelligent Controller の略で BACnet の下位システムと対応
- HIM は Human Interface Module の略で BACnet の上位システムと対応
- 大まかにはHIM は B-OWSに、ICONT は B-BC や B-AAC、B-ASC に対応
RIO †
DDC †
- Digital Direct Controllerの略
BIBBs (BACnet INTEROPERABILITY BUILDING BLOCKS) †
- 「BIBBs」(BACnet INTEROPERABILITY BUILDING BLOCKS)とは2つのデバイス間で実行される、1つ以上のサービスによる処理の集合
- BIBBsには、デバイスの生存確認処理において、他のデバイスに「Who-Is Service」を送信し送信先からの「I-Am Serverce」の受信を行う「Device Management-Dynamic Device Binding-A (DM-DDB-A)」、他のデバイスから「Who-Is Service 」を受信し送信元に「I-Am Serverce」を送信する「Device Management-Dynamic Device Binding-B (DM-DDB-B)」などがある
オブジェクト †
- BACnetでオブジェクトは、アナログ信号やスケジュール管理など、信号や機能そのものを表す
- デバイス内に存在する複数の同種オブジェクトは、インスタンス番号という重複しない番号により識別する
- インスタンス番号はオブジェクト種類ごとに 0 ~ 4,194,303 の数値範囲で重複しない値を任意に設定できる
- インスタンス番号 4,194,303 は、初期化されていないオブジェクトを表す
- インスタンス番号 0 を上記と同じ意味で使用するデバイスもあるので注意
- 個々のオブジェクトは、オブジェクトタイプとインスタンス番号により構成されるオブジェクト識別子で識別する
- オブジェクト識別子はオブジェクトIDとも呼ばれる
- Deviceオブジェクトは、BACnetデバイスが必ず持つように定義されている特殊なオブジェクトであり、BACnetデバイス自身を表す
- Deviceオブジェクトには、BACnet上でデバイスを識別するデバイスインスタンス番号を設定する
- デバイスインスタンス番号は、他のオブジェクトと同様に、デバイスのオブジェクトタイプとデバイスインスタンス番号から算出されるデバイス識別子により、BACnet上で識別される
- デバイスインスタンス番号をデバイスIDと呼称して使用することもある
オブジェクトタイプ †
AC (Accumulator) †
電力量など積算値を監視する場合に使用
AI (Analog Input) †
室内温度や設定温度など、アナログ値の情報を監視する場合に使用
AO (Analog Output) †
設定温度の変更など、アナログ値を制御する場合に使用
AV (Analog Value) †
BI (Binary Input) †
発停(ON/OFF)や設備の異常状態(正常/異常)など2状態の情報を監視する場合に使用
BO (Binary Output) †
発停(ON/OFF)の変更など、2状態の動作を制御する場合に使用
BV (Binary Value) †
CA (Calendar) †
休日や祝日などの日付を蓄えるために使用
DV (Device) †
どのBACnet装置にも必ず1つだけ存在し、その装置全体の状態や特徴を示す
MI (Multi-State Input) †
動作モード(冷房/暖房/送風/除湿)や風量(弱/中/強)など複数状態の動作を監視する場合に使用
MO (Multi-State Output) †
動作指令(冷房/暖房/送風/除湿)や風量指令(弱/中/強)の変更など複数状態の動作を制御する場合に使用
MV (Multi-State Value) †
NC (Notification Class) †
EventState?プロパティが変化した時に送信するEventの宛先を指定するために使用
SC (Schedule) †
休指定した時間に空調を自動的にON/OFFしたい場合などスケジューリングによる自動制御を行う場合に使用
TL (Trend Log) †
指定したオブジェクトの値を定期的にロギングするために使用
プロパティ †
プロトコルサービス †
Who-Is †
- BACnetネットワーク上に存在する機器を確認するためにブロードキャストで送信される
I-Am †
- BACnetネットワークに対して、デバイスの存在を知らせるために送信される
Who-Has †
I-Have †
Read-Property †
Write-Property †
Time-Syncronization †
- BACnetデバイスの参入時などに、ネットワーク側と機器側で時刻を同期する
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用 †
関連記事 †
開発ツール †
開発会社 †
ソフトウェア †
参考になる図 †
関連ツール †
関連プロジェクト †