BACnet Protocol: A Detailed Explanation of Objects, Services, and Headers

bacnet
building automation
protocol
network
communication

This article explains how the BACnet protocol functions, covering BACnet objects, BACnet services, and headers added by the link layer (BVLCI) and network layer (NPCI) to the Application Protocol Data Unit (APDU) of the application layer. This BACnet protocol analysis is helpful in understanding BACnet protocol analyzers.

The BACnet protocol stack consists of the physical, link, network, and application layers. BACnet stands for Data Communication Protocol for Building Automation and Control Networks.

Previously, proprietary systems couldn’t interoperate, hindering effective commercial building control. BACnet was implemented to enable interoperability between proprietary systems from different vendors. The latest standards also allow BACnet networks to interoperate with technologies like Zigbee and KNX. BACnet supports legacy LAN protocols like Ethernet, ARCNET, MS/TP, and LonTalk.

The American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE) maintains and manages the standard.

BACnet Standards

  • BACnet standardization began in 1987 (during an ASHRAE meeting).
  • BACnet became an ISO standard in 2003 (ISO 16484-5).
  • BACnet International manages BACnet from 2006 to provide conformance testing services and promote the standard’s adoption and development.
  • In the USA, BACnet became a standard in 1995 (ASHRAE/ANSI standard 135). Conformance testing is standardized in BSR/ASHRAE standard 135.1 in 2003.
  • In Europe, it was adopted in 2003 by CEN Technical Committee 247 for automation and management level.

BACnet protocol layer header

The link layer in BACnet defines PTP for RS232 and MS/TP for RS485. The standard defines BACnet Virtual Link Layer (BVLL), which formalizes all services required from the link layer in a BACnet device (e.g., broadcast). In a BACnet device, control information is encapsulated using IP BVLL, which wasn’t available in normal IP layers. This information is added to the BVLCI header. Using this header, BACnet devices can communicate directly without needing a router. The BACnet Broadcast Management Device (BBMD) concept in BACnet handles broadcast features for a specific link layer.

NPCI

Similar BACnet segments are connected by bridges, and dissimilar segments are connected by routers. BACnet addresses are of two types: network identifier and address identifier. NPCI, short for BACnet network header, includes the following information elements:

NPCI = { _ 2-byte source network (SNet), variable length source address (SAddr, SLen). For Ethernet, ARCNet, and MS/TP, the native protocol address format is used. For LonTalk, a concatenation of subnetID and nodeID (2 bytes) OR concatenation of subnetID and Neuron ID (7 bytes) is used. _ 2-byte destination network (DNet), variable length destination address (Daddr, Dlen). For broadcast messages, DNet identifies the network on which a broadcast is required or needed, and Dlen = 0. _ 4-byte network priority indicator _ 1-byte message type: 9 message types are used by BACnet routing mechanisms. For example, “Who-is-router-to-network” to discover a router to a specific networkID. Vendors can define specific extension message types. * 2-byte vendor ID }

BACnet Objects

A device’s basic function is designated as an object. Each device is decomposed into a collection of standardized objects. Object properties include:

  • Physical Input
  • Physical Output
  • Name, type, and configuration parameters

Each object is identified using a unique identifier within the device, designated as Object_Identifier. BACnet supports about 30 object types, for which standard properties and expected behavior have been defined. Standard object types include:

AnalogInputAnalogOutputAnalogValueBinaryInputNotificationClass
ProgramScheduleBinaryOutputBinaryValueCalendar
CommandDeviceAveragingMutistateValueTrendLog
EventEnrolmentFileGroupLoopMultistateInput
MultistateOutputLifeSafetyPointLifeSafetyZoneAccumulatorPulseConverter

All BACnet devices need to implement a device object. Object_identifier should be unique across the entire BACnet network.

BACnet Services

BACnet protocol considers all objects to act as servers providing services in the network. Five classes of services are defined in the standard ANSI/ASHRAE 135 clauses 13 to 17. Each service uses a set of messages based on communication needs. ANSI/ASHRAE 135 clause 21 defines these messages, which are exchanged using remote operation primitives such as REQUEST, INDICATION, RESPONSE, and CONFIRM. The standard lists standard BACnet service primitives. For example, “Who-Is”/“I-AM” primitives are used to discover devices on a BACnet network.

BACnet Over Web Services Interface

The XML group has introduced Addendum-C to BACnet 2004 specifications, which specifies a web services interface to building automation and control systems.

This BACnet protocol analysis will help you understand how the BACnet protocol operates.

CoAP Protocol: Advantages and Disadvantages

CoAP Protocol: Advantages and Disadvantages

Explore the pros and cons of CoAP (Constrained Application Protocol) for IoT and M2M communication, including its benefits in power efficiency and drawbacks related to UDP reliance.

coap
iot
protocol
TELNET: Advantages and Disadvantages

TELNET: Advantages and Disadvantages

Explore the benefits and drawbacks of using TELNET for network connections, including its uses, security risks, and limitations.

telnet
network
protocol

Data Communication: Interview Questions and Answers

Prepare for your software engineering job interview with these frequently asked questions on data communication, covering OSI model, TCP/IP, security, and emerging trends.

data communication
network
protocol