BACnet Protocol Revisions Create New BACnet Objects
BACnet Protocol Revisions
BACnet is a Building Automation and Control (BAC) communications protocol that is widely used for applications such as HVAC, lighting control, access control, and fire detection systems. Since its inception in 1987, BACnet protocol continues to grow and innovate. New features are being added to allow for greater control and ease of use.
The original BACnet standard has undergone several changes and improvements over the last 30+ years. With the publication of Addenda 135-2016, there have been 19 new revisions to BACnet which have provided new options for users. The creation of new BACnet objects have allowed implementers greater control over BACnet devices.
Our CAS BACnet Stack supports the latest protocol revision 19, making it a global market leader and one of the only stacks that support this revision.
BACnet Objects Added in Protocol Revision 10
In protocol revision 10, several new BACnet primitive object types were added in. The new suite of Value objects now allow for more than just the binary, analog and multistate values to be represented in a network visible manner to other BACnet devices. Here is a brief description of these new value objects (also supported by the CAS BACnet Stack):
- Character String Value: This value object allows a device manufacturer to represent a character string such as a HIGH DRIVE TEMPERATURE ALARM!!! in a variable speed drive as the present value of an object, instead of as a Multistate Value of say, 27, that needs to be converted into human understandable text for the user.
- Large Analog Value: A BACnet device can use a Large Analog Value object to make any kind of double precision data value accessible to other BACnet devices. One excellent use for this object is to represent kWh from an electricity meter. Note: A Large Analog Value and Analog Value objects are not interchangeable. None of these objects are interchangeable. eg LAV(1) is never the same object as AV(1).
- Integer Value: This object allows one to represent a negative integer such as –1238 or a positive integer such as +8321. This object type can be used to represent positive values for clockwise rpm and negative values for counterclockwise rpm.
- Positive Integer Value: This object allows one to represent only a positive integer such as +1238. This object type could represent count of the number of office rooms in a building calling for heating.
- Time Value: This object allows one to represent a single specific time value like 12:34:56.77.
- Date Value: This object allows one to represent a single specific date like 07-August-2013.
- Date Time Pattern Value: By combining the concepts of the Date and Time Value objects together, the present value of this object could look like 07-*-2013, 12.*.*.*. Besides representing any value, the asterisk can represent even or odd days or months.
All BACnet objects supported
The BACnet Protocol is now on revision 19 and our CAS BACnet Stack fully supports most commonly used BACnet objects, and partially supports some of the rarely used, advanced BACnet objects. Here is a list that contains the supported BACnet Objects:
CAS BACnet Stack
Chipkin’s BACnet Stack (CAS BACnet Stack) is a software library that allows you to add a native BACnet interface to your embedded devices or applications. The BACnet stack supports both BACnet server (Field device, power meter, gas detector, etc.) and BACnet client (HMI, Utilities, data loggers, etc.) services giving you the flexibility you need to succeed.
The BACnet Stack is a transport layer independent library, making it easy to use with any transport layer such as MSTP, IP, Ethernet and even PTP and ARCnet. By giving you control of the transport layer you can optimize bandwidth and performance by exploiting the resources at your disposal such as multi-threading and multiple simultaneous connections.
The stack allows applicable devices to communicate using several of the BACnet flavors and can function both as a server (Field Device, etc…) or as a client (HMI, etc…). Furthermore, the CAS BACnet Stack is particularly well-suited to most contemporary programming styles as the API uses XML to transfer requests for packet building as well as for handling back-parsed packets. See the diagram below of the BACnet Stack Layers which shows what portions are provided by the stack and what by the client:
*Area in the border is provided by the BACnet Stack. The area outside is provided by the client.