BACnet Protocol
The purpose of this document is to provide an overview of BACnet history, terminology and philosophy for building owners, managers and others involved with BACnet projects. The document provides an introduction to the topic of BACnet but it is not a comprehensive description of BACnet and it is not a product or system implementation guide.
Briefly, What is BACnet?
BACnet®, short for “Building Automation Control Network”, is a data communication protocol for building automation and control networks. BACnet is both an international (ISO) and ANSI standard for interoperability between cooperating building automation devices.
BACnet History
Originally developed in 1987 under the auspices of the American Society of Heating Refrigerating and Air-conditioning Engineers (ASHRAE), BACnet has been an ANSI standard since 1995 and an ISO standard since 2003. BACnet is a registered trademark of ASHRAE.
BACnet was developed, and is under continuous maintenance, using an open consensus process where any and all interested parties are welcome and may participate without fees.
ASHRAE (an ANSI-certified standards-body) oversees the standards activities and assures a balanced roster of voting members representing manufacturers, owners, consulting engineers, academia, government and general interest. This long history and open process has resulted in an extremely strong standard with wide support and adoption worldwide by a constantly growing number of manufacturers whose products serve the building automation and related markets.
Purpose of BACnet
BACnet is a standard data communication protocol that enables interoperability between different building systems and devices in building automation and control applications. The term “interoperability” has a variety of meanings from simple information exchange, to deeper integration, to complete and complex interoperation between component devices and systems. While BACnet does not enable “plug and play” device interchangeability, BACnet provides the means for many kinds of basic and complex interoperations to take place using standardized techniques that have proven to be flexible and robust in over 15 years of practice in tens of millions of devices. BACnet does not replace the need for DDC or control logic and does not attempt to standardize how devices are programmed.
BACnet offers a flexible range of networking options including the use of Ethernet or IP-centric infrastructure and a simple, low cost twisted pair communication called MS/TP that is based on EIA485. A sophisticated routing capability allows scaling of BACnet internetworks into large and efficient systems, all within the same unified standard.
BACnet uses an object-oriented model for abstracting and representing information. BACnet includes 54 standard objects that cover many common and generally useful applications. In addition, there is a mechanism for implementers to create and use their own non-standard objects that can be easily interoperable with other devices that choose to use them. This extensibility is free and guaranteed to be safe against unintended interference from other devices’ proprietary extensions. The object-based model has been proven to be both robust and reliable while providing a high degree of backward and forward compatibility.
BACnet also has an extensive application services model that provides many types of useful services that implementers may elect to support in their devices. These services are grouped into the following logical areas: object access, alarm and event management, scheduling, trending, files, device and network management.
In the increasingly important area of enterprise integration, BACnet has made a specific effort to define and standardize a suite of Web Services that provide enterprise applications with well-defined access to building automation information. In addition, initiatives have been undertaken to define XML schema for BACnet-oriented information.
Strong network security is of particular interest for applications in security and access control, some specific types of physical venues, and applications that use the public Internet. BACnet includes provisions for a very strong network security layer that address the needs of these kinds of applications.
BACnet currently employs a rigorous classification methodology for defining device capabilities. This allows vendors to publish the specific capabilities of their BACnet devices using standard terms and format, and for building owners and project specifiers to define their requirements for BACnet devices.
A global, independent third party testing and listing program for BACnet devices has been established. The BACnet Testing Laboratories (BTL) is managed under auspices of BACnet International. BTL awards the “BTL Mark” to devices that are shown to be tested according to ASHRAE Standard 135.1, the companion test standard to BACnet.
BTL requires the use of a single testing methodology regardless of the specific organization performing the tests. Various third party companies also offer testrelated tools, services and consultation independent of device manufacturers.
BACnet Overview
The BACnet data communication protocol defines standard methods that manufacturers can implement to make components and systems that can be interoperable with other BACnet components and systems.
Building owners and system specifiers can also use BACnet as a tool for the specification of interoperable systems.
BACnet does not replace the need for specifying what a user wants or needs. It simply provides some standardized tools to help enable the creation and specification of systems that can interoperate.
BACnet includes but is not limited to HVAC applications. It is intended to apply to all types of automated building systems. There are interoperable products available in each of these categories: fire, security, lighting, HVAC, elevators, etc.
BACnet addresses the goal of interoperability by defining a generalized model of how automation devices work, a method for describing the information that they contain, and a method for describing protocols that one device can use to ask another device to perform some desired action.
Devices
A BACnet device is often comprised of a microprocessor-based controller and software combination that is designed to understand and use the BACnet protocol. A BACnet device is typically a controller, gateway, or user interface. Every BACnet device contains a device object that defines certain device information, including the device object identifier or instance number. A BACnet device object instance number must be field-configurable to be unique across the entire BACnet network where the device in installed. For brevity this number is often called the device instance. In addition to the device instance, each BACnet device contains a collection of information about the device and any input and output points that it monitors and controls. The collection of information frequently includes control programs and logic as well as data values.
Device Interoperability
BACnet divides the task of device interoperability into three distinct areas: Objects (information), Services (action requests), and Transport systems (internetworking, electronic messages). BACnet defines methods and requirements for implementation of each of these areas.
Objects
All information within an interoperable BACnet device is modeled in terms of one or more information objects. Each object represents some important component of the device, or some collection of information that may be of interest to other BACnet devices. Objects may represent single pieces of information, or a collection of multiple pieces of information such as a logical grouping. Objects represent either physical or virtual information, such as analog and binary inputs and outputs, control algorithms, specific applications, and calculations.
The BACnet standard defines 54 different standard object types. The implementation of a given device may make use of arbitrary combinations of these standard object types to represent information and control logic that are relevant to the device’s specific application. Standard object types are useful because their meaning and application are well defined and their components consistently implemented from one device to another. The BACnet standard also allows for the creation of non-standard or proprietary objects for which interoperability with other vendors may not be as consistent.
Each object is identified with an object identifier. An object identifier is a 32-bit binary number containing a code for the object type and the object instance number. In addition, every object, no matter its purpose or function, has a collection of properties that define the object. Each property includes at least a name and a value.
Properties
A BACnet property conveys information about a BACnet object. Objects have a collection of properties, based on the function and purpose of the object. Each property contains two pieces of information: a property identifier and the property’s value. Property Identifiers are numbers that uniquely identify a given property in the context of the Object type. Properties may be defined as read-only or read/write. A property’s purpose is to allow other BACnet devices to read information about the object containing the property, and potentially write (change) a different value to the property. Depending on the type of object that the property belongs to, particular object properties may be optional or required for implementation per the BACnet standard. For each standard BACnet object type, the BACnet standard defines which properties are required and which are optional. Objects may also contain properties that are non-standard or proprietary.
Services
BACnet services are formal requests that one BACnet device sends to another BACnet device to ask it to do something. Services are grouped into five categories of functionality – object access (read, write, create, delete); device management (discover, time synchronization, initialize, backup and restore database); alarm and event (alarms and changes of state); file transfer (trend data, program transfer); and virtual terminal (human machine interface via prompts and menus). The service defines each request, and any parameters that need to be conveyed in the request and its reply.
The model of objects and services is realized by encoding messages into a stream of numeric codes that represent the desired functions or services to be performed. The “language” of this encoding is common to all BACnet devices. BACnet devices exchange information and do things by sending and receiving electronic messages containing this coded language.
BACnet provides flexibility by allowing multiple types of transport systems to be used to convey these coded
messages between devices.
Transport Systems
The transport system uses different types of electronic messaging standards and methods to convey coded messages. Even though different transport methods are used, the coded message content remains the same. This philosophy allows the designer or specifier to choose the most cost-effective transport method for a given application.
Network Types
The 2012 BACnet standard defines seven network types, which serve as the transport for BACnet messages. The seven supported network types are:
- BACnet/IP
- BACnet MS/TP (Master-Slave/Token Passing)
- BACnet ISO 8802-3 (Ethernet)
- BACnet over ARCNET
- BACnet Point-to-Point (EIA-232 and Telephone)
- BACnet over LonTalk Foreign Frames
- BACnet over ZigBee
The network types encompass the physical and datalink layers of the protocol. This combination of physical and datalink layers is often called the MAC (Medium Access Control) layer.
A BACnet message itself is independent of the MAC layer used to transport the message.
Therefore, in BACnet, messages to command or monitor information are the same, no matter which MAC layer used for transport.
A BACnet router is used to join multiple network types.
A BACnet router is a device that links dissimilar network types (e.g., BACnet/IP to MS/TP, BACnet 8802-3 to ARCNET) and passes BACnet messages among the network types without changing or disturbing the message content.