What is BACnet?
Building Automation and Controls Network (or BACnet) introduced in 1995 as a standard by the American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE). The standard was designed to consolidate building automation, HVAC, fire, life safety, security, and a variety of other related functionality and communications into a single building-oriented or environmental-oriented protocol. The BACnet-1995 standard was within the Committee for European Standardization (CEN) in 2003 as CEN TC 247. It defines various levels or layers within building controls and automation as the Management Level, the Automation Level, and the Field Level. CEN TC 247 was finally used in the standard ISO 16484-5.
The result of this standard was that CEN declared through this standard that the various protocols used by the many building automation vendors who create systems controls, could no longer be rigidly associated with any of the particular layers. Protocols can now be used to carry out the functional requirements of any layer as required. The protocol rules apply to Addressing, Electrical Signaling, Error Checking, Network Access (Master/Slave, Peer/Peer), Message Sequencing, Flow Control, Presentation Format (Compression and Encryption), Segmentation and Checkpointing, and Message Format. BACnet is unique among communications protocols because the message format is designed specifically to facilitate information as it is related to building automation and control.
BACnet was developed into a standard network model or view so that vendors using the ISO 16484-5 or CEN TC 247 standard can have a logical way to “map” their devices. BACnet also has standard messages or services that use the model and carry out other common functions. Besides messages and services, BACnet also defines the physical and data links, and the networking standards, (e.g., LANs that the equipment vendors can support.
How Does BACnet Work?
BACnet models objects within building and environmental automation systems. Groups of objects known as logical devices are collections of information belonging to a particular function or physical device that is uniquely identified and accessed over the BACnet network in a standardized manner. Any logical device may represent a single physical “point”, or logical groupings of points performing a specific function. Each BACnet logical device is characterized by a set of properties that define its behavior or govern its operation.
For example, a temperature sensor in a thermostat, which can be represented as a BACnet Analog Input (AI) object, is shown in Figure 1:
In the example, the BACnet logical device provides properties that are used to get information from the real device, providing information about it. The AI object has a Name property (“SPACE TEMP”) and an object_type (ANALOG INPUT). The present_value property describes what the temperature sensor is reading at this moment (72.3 degrees). Other properties provide information about the real sensor object, such as whether the device is functioning normally; or the setpoints of the High and Low Limits for alarming purposes.
BACnet Object Types and Registers Supported by the BACNE and BACSL Drivers
The BACnet CEN TC 247 standard defines more than 25 Standard Object Types. BACnet standard object types are called “Registers” within the context of the InduSoft BACNE driver and in the BACNE User Manual (Tech Ref). The behavior of a register is determined by which properties it provides and what each of the properties do. The various BACnet Object Types are shown in Table 1.
This set of standard object types or registers represents most, if not all of the functionality found in typical building automation and control systems. The current InduSoft BACNE driver (v 3.5) supports a subset (20) of the registers, as shown in Table 2.
The current InduSoft BACSL driver (v 3.2) supports a subset (7) of the BACnet standard object types as shown in Table 3. This driver is intended for serial communications with slave devices only.
A BACnet Logical Device Example
A BACnet Logical Device is simply a collection of objects representing the functionality actually present in a real device (Figure 2).
While the Logical Device Example is simplified for this discussion, a more typical BACnet logical device could have 16 BI and BO objects, several AI and AO objects, a calendar object, 2 or 3 Schedule objects, etc. or any other combination needed to describe it.
BACnet protocol is based on the Client-Server Model. “Services” as defined in the BACnet Standard are messages that are carried out on behalf of the BACnet client by the server. Application Services are defined in the BACnet Standard as “Classes”. Application Service Classes define the kind of message sent to the devices. Some are shown in Table 4. The BACNE and BACSL drivers ignore the Application Service Classes and process supported messages directly.
The BACNE and BACSL Drivers support the Application Services shown in Table 5.
In addition to the Application Services, there are many InduSoft supported Object Access Services. These are called Properties within the BACNE driver documentation. These Object Access Services access the properties of the registers listed in Table 2. A partial list of the BACNE supported configurations are shown in Table 6. Refer to the BACNE Technical Reference (user guide) for all the supported registers along with their supported Object Access Services and specific details regarding their configuration.
The BACnet protocol uses several data types to transport values from devices. Primitive data types, such as strings, floating-point numbers, and integers are easily used and understood by the drivers. However, some properties employ enumerations, dates, and times to represent data.
Note that in the “Type” column of Table 6, there are many BACnet enumerated values. These are listed in Table 7. It is important to remember that these data types will only be able to return numeric, string or date values in a specific format to an InduSoft tag.
The BACnetEngineeringUnits enumeration is also used with the UNITS property. However, due to space limitations, the possible values are not shown here. Using values outside of the ranges discussed here will produce unspecified behavior. Refer to the BACNE Technical Reference (user guide) for more information.
BACnet is designed to run on several types of networks including serial, ARCNET and TCP/IP. The Indusoft BACNE driver only supports devices communicating with BACnet/IP over UDP/IP. The BACSL is a serial driver that supports devices using BACnet /IP or BACnet MS/TP Protocol.
More Information and Resources