July 10, 2020
This is the second part of BACnet Protocol Stack Tutorial
The BACnet protocol represents control equipment as a collection of "Devices" containing "Objects". Usually, the building control industry uses the term "Points" - they can be sensor inputs, control outputs or control values, with different characteristics according to the manufacturer. A BACnet Object can be used to represent a Point.
BACnet defines a standard set of "Object Types", each of which has a standard set of "Properties"; that describe an Object and its current status to other devices on a BACnet internetwork. It is through these properties that the Object may be controlled by other BACnet devices. Learn more
The BACnet protocol also defines various services that BACnet devices can be asked to perform. Those services are divided into 5 categories:
A BACnet Device is the network-visible representation of control equipment connected to a BACnet network, which responds to BACnet service requests. A Device represents the control equipment by maintaining a collection of BACnet Objects. The Objects contain Properties that can be accessed and manipulated using BACnet's Read-Property and Write-Property service requests. The Objects within any Device are uniquely identified by an Object type and by an instance number (together these data make up an Object Identifier). Each Device must contain one Device Object to represent the BACnet capabilities of the Device.
Here is an example of such a Device which has objects and properties that you can view with BACnet Explorer
Each Device on a BACnet internetwork must have a unique Device Object instance number and, consequently, a unique Device Object identifier. Devices can be contacted directly if their BACnet Address is known, or they can be discovered using the Who-Is and Who-Has broadcasts.
In applications built using the Cimetrics BACstac, a Device is represented in the BACstac Object Database by a Device handle. The BACstac internally maintains the Device information such as the BACnet Address of the Device and the list of Device’s Objects. The BACstac uses this information when it generates or responds to service requests.
Clause 12 of the BACnet Standard, “MODELING CONTROL DEVICES AS A COLLECTION OF OBJECTS,” contains descriptions of the Properties required to be present in Objects that conform to a standard object type. An Object in a BACnet Device is uniquely identified within the current Device by an Object Identifier, which consists of an Object type and instance number. A Device must contain one Device Object, which has an instance number that is unique within the BACnet internetwork. All other objects in the Device do not have to be unique within the network.
Objects are represented in BACstac applications by an Object handle. The BACstac maintains information internally about an Object, such as the list of Properties that it contains. An Object’s handle can be obtained by searching through the list of Objects contained in a Device. An Object’s handle can also be obtained if its Object Identifier (type and instance number) is known.
While this Standard prescribes the most widely applicable object types and their properties, implementers are free to create additional object types if desired.
There are currently 60 standard BACnet Object Types:
Analog Input Object Type |
Program Object Type |
Time Value Object Type |
Analog Output Object |
Pulse Converter Object Type |
Integer Value Object Type |
Analog Value Object |
Schedule Object Type |
Positive Integer Value Object Type |
Averaging Object Type |
Trend Log Object Type |
Date Value Object Type |
Binary Input Object Type |
Access Door Object Type |
DateTime Pattern Value Object Type |
Binary Output Object Type |
Event Log Object Type |
Time Pattern Value Object Type |
Binary Value Object |
Load Control Object Type |
Date Pattern Value Object Type |
Calendar Object Type |
Structured View Object Type |
Network Security Object Type |
Command Object Type |
Trend Log Multiple Object Type |
Global Group Object Type |
Device Object Type |
Access Point Object Type |
Notification Forwarder Object Type |
Event Enrollment Object Type |
Access Zone Object Type |
Alert Enrollment Object Type |
File Object |
Access User Object Type |
Channel Object Type |
Group Object Type |
Access Rights Object Type |
Lighting Output Object Type |
Life Safety Point Object Type |
Access Credential Object Type |
Binary Lighting Output Object Type |
Life Safety Zone Object |
Credential Data Input Object Type |
Network Port Object Type |
Loop Object Type |
CharacterString Value Object Type |
Timer Object Type |
Multi-state Input Object Type |
DateTime Value Object Type |
Elevator Group Object Type |
Multi-state Output Object |
Large Analog Value Object Type |
Lift Object Type |
Multi-state Value Object |
BitString Value Object Type |
Escalator Object Type |
Notification Class Object Type |
OctetString Value Object Type |
Accumulator Object Type |
Here is an example of an Analog Input Object, as displayed in the Cimetrics BACnet Explorer:
Communication is accomplished by reading and writing the properties of particular objects and by the mutually acceptable execution of other protocol "services."
Within each object there are:
Data Types of each standard Property are defined individually for each BACnet Object Type. The ASN.1 encoding of these data types is described in Clause 21 of the BACnet Standard.
Cimetrics BACstac Software provides you with the ability to create client and server application programs which use the BACnet protocol for communication. Certain versions of the BACstac Software also allow you to create gateway application programs that make a collection of non-BACnet devices appear as a virtual BACnet network containing multiple BACnet devices. Learn More.
Comments will be approved before showing up.
December 18, 2024
2024 in retrospect: Lessons learned and cyber strategies shaping future of critical infrastructure, Office of the National Cyber Director Publishes the Playbook for Strengthening Cybersecurity in Federal Grant Programs for Critical Infrastructure, The best Cybersecurity advice in 2024 and more...
November 26, 2024
October 30, 2024