BACnet
BACnet is a communications protocol for building automation and control networks. It is an ASHRAE, ANSI, and ISO standard protocol.
BACnet was designed to allow communication of building automation and control systems for applications such as heating, ventilating, and air-conditioning control, lighting control, access control, and fire detection systems and their associated equipment. The BACnet protocol provides mechanisms for computerized building automation devices to exchange information, regardless of the particular building service they perform.
History
The development of the BACnet protocol began in June, 1987, in Nashville, Tennessee[1], at the inaugural meeting of the Standard Project Committee (SPC). The committee worked at reaching consensus using working groups to divide up the task of creating a standard. The working groups focused on specific areas and provided information and recommendations to the main committee. The first three working groups were the Data Type and Attribute Working Group, Primitive Data Format Working Group, and the Application Services Working Group.
BACnet became ASHRAE/ANSI Standard 135 in 1995, and ISO 16484-5 in 2003. The Method of Test for Conformance to BACnet was published in 2003 as BSR/ASHRAE Standard 135.1. BACnet is under continuous maintenance by the ASHRAE Standing Standard Project Committee 135.
BACnet had an almost immediate impact on the HVAC controls industry. In 1996 Alerton announced a complete BACnet product line for HVAC controls, from the operator's workstation down to small VAV controllers. Automated Logic Corporation and Delta Controls soon followed suit. As of April 9, 2010, 431 vendor identifiers have been issued and are distributed internationally. Those vendor identifiers can be viewed at the BACnet website.
H. Michael (Mike) Newman, Manager of the Computer Section of the Utilities and Energy Management Department at Cornell University, served as the BACnet committee chairman until June, 2000, when he was succeeded by his vice-chair of 13 years, Steven (Steve) Bushby from NIST. During Steve Bushby's four-year term as committee chair the BACnet standard was republished twice, in 2001 and 2004, each time with new capabilities added to the standard. The 2001 version featured, among other things, extensions to support fire / life-safety systems. In June, 2004, 17 years after the first BACnet meeting and back in Nashville, William (Bill) Swan (a.k.a. "BACnet Bill") from Alerton began his four-year stint as committee chair. During his term the number of committee working groups grew to 11, pursuing areas such as support for lighting, access control, energy utility/building integration and wireless communications. In June 2008, in Salt Lake City, Dave Robin from Automated Logic Corporation took over the reins as the new committee chair after serving 4 years as vice chair.
In January 2006 the BACnet Manufacturers Association and the BACnet Interest Group of North America combined their operation in a new organization called BACnet International.
Protocol Overview
The BACnet protocol defines a number of services that are used to communicate between building devices. The protocol services include Who-Is, I-Am, Who-Has, I-Have, which are used for Device and Object discovery. Services such as Read-Property and Write-Property are used for data sharing.
The BACnet protocol defines a number of Objects that are acted upon by the services. The objects include Analog Input, Analog Output, Analog Value, Binary Input, Binary Output, Binary Value, Multi-State Input, Multi-State Output, Calendar, Event-Enrollment, File, Notification-Class, Group, Loop, Program, Schedule, Command, and Device.
The BACnet protocol defines a number of data link / physical layers, including ARCNET, Ethernet, BACnet/IP, Point-To-Point over RS-232, Master-Slave/Token-Passing over RS-485, and LonTalk.
BACnet Objects
The standard specifies 30 types of objects
Access Door | Accumulator | Analog Input | Analog Output | Analog Value |
Averaging | Binary Input | Binary Output | Binary Value | Calendar |
Command | Device | Event Enrollment | Event Log | File |
Group | Life Safety Point | Life Safety Zone | Load Control | Loop |
Multi-state Input | Multi-state Output | Multi-state Value | Notification Class | Program |
Pulse Converter | Schedule | Structured-View | Trend Log | Trend Log Multiple |
- Analog Input - Sensor input
- Analog Output - Control output
- Analog Value - Setpoint or other analog control system parameter
- Binary Input - Switch input
- Binary Output - Relay output
- Binary Value - control system parameter
- Calendar - a list of dates, such as holidays or special events, for scheduling.
- Command - Writes multiple values to multiple objects in multiple devices to accomplish a specific purpose, such as day-mode to night-mode, or emergency mode.
- Device - Properties tell what objects and services the device supports, and other device-specific information such as vendor, firmware revision, etc.
- Event Enrollment - Describes an event that might be an error condition (e.g., "Input out of range") or an alarm that other devices to know about. It can directly tell one device or use a Notification Class object to tell multiple devices.
- File - Allows read and write access to data files supported by the device.
- Group - Provides access to multiple properties of multiple objects in a read single operation.
- Multi-state Input - Represents the status of a multiple-state process, such as a refrigerator's On, Off, and Defrost cycles.
- Multi-state Output - Represents the desired state of a multiple-state process (such as It's Time to Cool, It's Cold Enough and it's Time to Defrost).
- Notification Class - Contains a list of devices to be informed if an Event Enrollment object determines that a warning or alarm message needs to be sent.
- Loop - Provides standardized access to a "PID control loop".
- Program - Allows a program running in the device to be started, stopped, loaded and unloaded, and reports the present status of the program.
- Schedule - Defines a weekly schedule of operations (performed by writing to specified list of objects with exceptions such as holidays. Can use a Calendar object for the exceptions.
BACnet Testing
BACnet Testing Laboratories was established by BACnet International to support compliance testing and interoperability testing activities and consists of BTL Manager and the BTL-WG.
The general activities of the BTL are:
- Publish the BTL Implementation Guidelines document,
- Organize the annual BACnet International sponsored Interoperability Workshop,
- Award worldwide BTL Listings to qualified BACnet devices,
- Support the activities of the BTL-WG,
- Provide support to the BACnet community with the help of the BTL-WG when questions arise on the testing package.
- Publish and Maintain the BTL Test Package with the technical support of the BTL-WG for use by pre-testers and approved BACnet testing laboratories.
- Approves Testing Laboratories for BTL Testing.
The BTL also provides testing services through its managed BACnet laboratory. BACnet International and BTL have reached and agreement with SoftDEL Systems to establish and maintain a test lab for BACnet products[2]. SoftDEL[3] is headquartered in Pune, India from where the test facility will operate for BTL. The BTL Manager and BTL working group of BACnet International will administer the test lab. This BACnet lab is ISO 17025 accredited [4]