BACnet, short for Building Automation and Control Networks, is a widely adopted communication protocol that enables seamless integration and interoperability between various building automation devices and systems.

In this comprehensive guide, we'll explore the different components that make up the BACnet message structure, object model, services supported, how vendors specify their device capabilities and BACnet conformance process.

It is recommended to have a look at our previous article introducing the BACnet protocol and its physical layers.

BACnet/IP Message Structure

This section provides a high-level overview of BACnet/IP Message Structure.

BACnet/IP Message Structure​

BACnet/IP Message Structure​

The Ethernet layer encapsulates the network layer (Internet Protocol (IP)) and the transport layer (User Datagram Protocol (UDP)) protocols. From the BACnet perspective, the packet is transferred over a BACnet Virtual Link Layer (BVLL). The BVLL is responsible for creating virtual links between BACnet devices. The next layer in a typical BACnet/IP message is the Network layer Protocol Data Unit (NPDU). The NPDU holds the information about the destination and source BACnet device addresses. BACnet protocol utilizes the NPDU to facilitate the routing and delivery of messages between BACnet devices. The NPDU is responsible for handling the addressing, segmentation, and reassembly of BACnet messages, ensuring that data is transmitted efficiently and reliably. BACnet supports different types of NPDU messages, such as Unicast, Broadcast, and Multicast, etc.

The Application Layer Protocol Data Unit (APDU) is the core component of the BACnet message structure, as it carries the actual data and control information exchanged between BACnet devices. The APDU is responsible for encapsulating the application-level data, ensuring its integrity and proper interpretation by the receiving device. It has many control fields such as segmented packet information, service request, service acknowledgement etc.

While this is a general structure of a BACnet/IP message, the presence of NPDU, APDU etc varies as per the actual data being transferred.

BACnet Object Model

At the core of the BACnet protocol is the BACnet Object Model, which provides a standardized way of representing and interacting with various building automation system components. The BACnet Object Model defines a set of predefined object types, each with its own unique set of properties and behaviors. Some of the commonly used BACnet object types include:

  1. Analog Input/Output/Value: Representing analog signals, such as temperature, humidity, or pressure.

  2. Binary Input/Output/Value: Representing binary (on/off) signals, such as alarms or status indicators.

  3. Multi-state Input/Output/Value: Representing multi-state signals, such as fan speed or operating mode.

  4. Schedule: Representing time-based schedules for equipment or system operation.

  5. Trend Log: Representing historical data logs for monitoring and analysis.

By using these standardized object types, BACnet-enabled devices can communicate and exchange information in a consistent and interoperable manner, regardless of the manufacturer or the specific implementation details.

BACnet Services

BACnet defines a set of services that facilitate communication and data exchange between devices in a building automation system. These services provide a common language and set of rules for how devices can interact with one another, ensuring seamless integration and coordination.

Some of the key BACnet services include:

  1. Read/Write Property: Allows devices to read and write the properties of BACnet objects, enabling the exchange of data and control parameters.

  2. Subscribe/Unsubscribe: Enables devices to subscribe to and receive notifications about changes in object properties, facilitating real-time monitoring and event-driven control.

  3. Alarm and Event Notification: Provides a standardized way for devices to report alarms, warnings, and other important events to interested parties.

  4. File Transfer: Supports the exchange of files, such as configuration data, firmware updates, or historical logs, between BACnet devices.

  5. Device and Object Discovery: Enables devices to discover and identify other BACnet-enabled devices and objects on the network, facilitating system integration and configuration.

By leveraging these services, BACnet-based building automation systems can achieve a high degree of interoperability, allowing for seamless communication, coordinated control, and efficient data exchange across a wide range of devices and systems.

BACnet Devices

BACnet devices come in a wide variety of forms, each with its own unique capabilities and requirements. In this section, we'll delve into the different types of BACnet devices, including:

  1. BACnet Routers: Responsible for interconnecting BACnet networks and facilitating the routing of messages between them.

  2. BACnet Servers: Centralized devices that manage and coordinate the overall BACnet system, often serving as the primary interface for monitoring and control.

  3. BACnet Clients: Devices that initiate communication and request services from other BACnet devices.

BACnet PIC Statement

BACnet Protocol Implementation Conformance Statement, or BACnet PICS for short, is a document that acts like a report card for a device claiming BACnet compatibility. Manufacturer of any BACnet device is expected to provide a PIC statement for the same to enable third parties to consume their device capabilities. As per the BACnet website, (Conformance (PICS) – BACnet Committee)The PICS typically contains the following information

  • Basic information identifying the vendor and describing the BACnet device
  • The BACnet Interoperability Building Blocks supported by the device
  • The standardized BACnet device profile to which the device conforms, if any
  • All non-standard application services that are supported along with an indication for each service of whether the device can initiate the service request, respond to a service request, or both
  • A list of all standard and proprietary object types that are supported
  • For each object type supported:
    • any optional properties that are supported
    • which properties can be written-to using BACnet services
    • if the objects can be dynamically created or deleted using BACnet services
    • any restrictions on the range of data values for properties
  • The data link layer option options, both real and virtual, supported
  • Whether segmented requests are supported
  • Whether segmented responses are supported

BACnet Conformance Process

To ensure the interoperability and compatibility of BACnet-enabled devices, the BACnet standard defines a conformance testing process. This process involves the evaluation of a device's implementation of the BACnet protocol, ensuring that it adheres to the specified requirements and can effectively communicate with other BACnet-compliant devices.

The BACnet Conformance Testing process typically includes the following steps:

  1. Device Registration: Manufacturers submit their BACnet-enabled devices to a recognized testing laboratory for evaluation.

  2. Conformance Testing: The testing laboratory conducts a series of tests to verify the device's implementation of the BACnet protocol, including its support for specific object types, services, and communication mechanisms.

  3. Conformance Certification: Upon successful completion of the testing process, the device is awarded a BACnet Conformance Certificate, which serves as a testament to its interoperability and compliance with the BACnet standard.

The BACnet Conformance Testing process ensures that building owners, system integrators, and end-users can trust that BACnet-certified devices will seamlessly integrate and communicate within a BACnet-based building automation system, regardless of the manufacturer or the specific implementation details.

Conclusion

In this comprehensive guide, we've explored the intricate components that make up the BACnet message structure, from the foundational BVLL to the application-level APDU. The BACnet object model and services were introduced with some of the defined objects and services. The PIC statement can be used to specify the BACnet device capabilities while the conformance testing can help ensure device compatibility with the BACnet standards.

With an in-depth understanding of the BACnet internals, it will help to unlock the full potential of this powerful protocol, ensuring seamless integration, efficient data exchange, and optimized building performance.

Related Insights

A Guide to Profibus Application Profiles
insight image

Profibus is a fieldbus communication standard that allows devices to exchange data in real-time, enabling seamless communication between various components in an automated system.

Read More


Subscribe to our Insights


15th Year Anniversary