HomeResourcesWhat is BACnet?
Device Protocols

What is BACnet?

BACnet is the open ASHRAE/ISO/IEC standard for communication in building automation and control systems. It defines a common language that HVAC controllers, lighting systems, fire alarms, access control systems, and energy meters from different manufacturers can all use to share data — without requiring custom integrations between each pair of products.

Last reviewed: 2026Reading time: ~9 minTopics: BACnet/IP, BACnet MS/TP, objects, properties, COV, APDU, PICS, BIBB, OPC, TOP Server

What is BACnet?

BACnet stands for Building Automation and Control Networks. It is a data communication protocol developed by ASHRAE (the American Society of Heating, Refrigerating and Air-Conditioning Engineers) and published as ASHRAE Standard 135, as well as ISO 16484-5 and IEC 62386-1 at the international level. First published in 1995, BACnet was specifically designed to address the interoperability problem in building automation: before BACnet, every building automation vendor used proprietary protocols, making multi-vendor systems expensive to integrate and creating long-term lock-in for building owners.

BACnet solves this by defining a vendor-neutral application layer that any manufacturer can implement. A thermostat from Siemens, a VAV controller from Johnson Controls, an energy meter from Schneider Electric, and a central building management system from Honeywell can all communicate using BACnet without any vendor-specific gateways between them — provided each device correctly implements the relevant parts of the standard.

BACnet is not just for HVAC. While BACnet is most heavily deployed in HVAC (heating, ventilation, and air conditioning) systems, the standard covers a broad range of building systems: lighting control, life safety (fire alarm and smoke detection), access control, security, energy metering, elevator control, and any other building system where equipment monitoring and control data needs to be shared across a network.

Why BACnet being an open standard matters

The practical significance of BACnet being an ASHRAE standard rather than a proprietary protocol is vendor neutrality across the full lifecycle of a building. Specifications can require BACnet compliance from all vendors without naming specific products. Replacements and upgrades can be sourced from any BACnet-compliant vendor rather than being locked to the original equipment manufacturer. Third-party monitoring, analytics, and building management systems can connect to any BACnet device without negotiating proprietary access.

This is what makes BACnet relevant to the kind of IT/OT convergence work that Software Toolbox does. Buildings — particularly large commercial and institutional facilities — are increasingly expected to expose their operational data to the same enterprise analytics, energy management, and fault detection platforms that process plant operational technology data flows into. BACnet is the protocol side of that access; OPC is typically the enterprise-side interface; and a BACnet-to-OPC bridge like TOP Server is what connects them.

BACnet network transports

BACnet defines a common application layer that runs over several different physical and network transports. The application layer — the objects, properties, and services described below — is the same regardless of the transport. The transport choice depends on the physical infrastructure available and the performance requirements of the application.

BACnet/IPBACnet/IP (Annex J)

BACnet over UDP/IP on standard Ethernet infrastructure. This is the dominant transport in modern building automation deployments and the transport supported by TOP Server's BACnet driver. BACnet/IP uses UDP port 47808 (0xBAC0). A BACnet/IP Broadcast Management Device (BBMD) handles broadcast routing across subnets when BACnet devices are on different IP network segments.

MS/TPBACnet MS/TP

BACnet over EIA-485 serial (RS-485) using a Master-Slave/Token-Passing (MS/TP) MAC protocol. MS/TP is the dominant transport for field-level devices — VAV controllers, thermostats, zone controllers — because it is inexpensive, uses simple twisted-pair wiring, and is well-suited to daisy-chain topologies in buildings. TOP Server connects to MS/TP devices through BACnet/IP gateways that bridge the serial network to Ethernet.

BACnet EthernetBACnet Ethernet (ISO 8802-3)

BACnet directly over Ethernet frames (ISO 8802-3), without IP. This was an early BACnet transport used before BACnet/IP became dominant. It operates at the Ethernet frame level (Ethertype 0x82DC) and does not route across IP routers. Very rarely deployed in new installations; mostly seen in older building automation infrastructure from the late 1990s and early 2000s.

OtherARCNET, LonTalk, PTP

BACnet also defines mappings for ARCNET (a legacy token-bus network), LonTalk (the LON protocol used by LonWorks devices, common in lighting and facilities automation), and Point-to-Point (PTP, for modem or direct serial connections). These are rarely encountered in new deployments but appear in older building infrastructure. They are typically accessed from BACnet/IP through a protocol gateway or BACnet router.

The BACnet object model: how BACnet represents data

The most distinctive feature of BACnet — what makes it fundamentally different from protocols like Modbus — is its object model. Rather than exposing data as raw registers or memory addresses, every piece of data in a BACnet device is represented as a named object with a standardized set of properties.

What is a BACnet object?

A BACnet object is a software representation of a data point or functional element within a BACnet device. Every object has a type (which defines what kind of data element it represents), an instance number (which uniquely identifies it within that object type on the device), and a set of properties (which carry the actual values and metadata). The combination of device instance, object type, and object instance uniquely identifies any data point on the entire BACnet network.

For example, a temperature sensor in a VAV controller might be represented as an Analog Input object with instance number 1. Its Present_Value property holds the current temperature reading; its Units property specifies degrees Celsius; its Description property carries the engineer-assigned description "Return Air Temp Zone 3A"; and its Out_Of_Service property indicates whether the physical input is active.

Standard BACnet object types

ASHRAE 135 defines a set of standard object types that all compliant devices are expected to use for representing their data. TOP Server's BACnet driver supports the following standard object types:

Analog Input (AI)
Physical analog input — temperature, pressure, flow, humidity sensors
Analog Output (AO)
Physical analog output — valve position, damper control, setpoint
Analog Value (AV)
Internal analog value — setpoints, calculated values, parameters
Binary Input (BI)
Physical digital input — switch state, fault status, occupancy
Binary Output (BO)
Physical digital output — relay, valve open/close, fan on/off
Binary Value (BV)
Internal boolean value — mode flags, enable/disable states
Multi-State Input (MSI)
Physical multi-position input — mode selector, status enumeration
Multi-State Output (MSO)
Physical multi-position output — mode command, fan speed
Multi-State Value (MSV)
Internal multi-state — operating mode, sequence state
Loop
PID control loop — setpoint, process value, output, tuning parameters
Trend Log
Historical data log — time-stamped record of property value changes
Schedule
Time-based schedule — weekly schedules and exception schedules
Calendar
Date list — defines special days referenced by schedules
Accumulator
Pulse counter — energy, water, gas metering pulses
Device
Device object — one per device; holds device identity, capabilities, location
Life Safety Point
Fire/life safety input — smoke detector, sprinkler, egress state
Life Safety Zone
Fire/life safety zone — aggregated zone state for a set of LS points
Event Enrollment
Alarm/event definition — configures when and how events are reported
Notification Class
Alarm routing — defines where event notifications are sent

Key BACnet object properties

Every object type has a defined set of required and optional properties. The most important properties that TOP Server's driver exposes for the core data objects are:

PropertyDescriptionTypical data type
Present_ValueThe current measured or commanded value of the object. The primary read/write point for most data objects.REAL, BOOLEAN, UNSIGNED
Object_IdentifierUnique identifier combining object type and instance number.BACnetObjectIdentifier
Object_NameHuman-readable name assigned by the device vendor or programmer. The basis for automatic tag naming in TOP Server.CharacterString
DescriptionOptional longer description of the object's purpose.CharacterString
UnitsEngineering units for analog values (degrees C/F, percent, Pa, etc.)BACnetEngineeringUnits
Status_FlagsFour bits: In_Alarm, Fault, Overridden, Out_Of_Service. The BACnet equivalent of an OPC quality stamp.BACnetStatusFlags
Event_StateWhether the object is in a normal, fault, or alarm state.BACnetEventState
ReliabilityIndicates why a value may be unreliable — no input, communication failure, etc.BACnetReliability
Out_Of_ServiceWhen TRUE, the object's physical I/O is decoupled from Present_Value (used for testing).BOOLEAN
Priority_ArrayArray of 16 priority slots for writeable outputs. Supports Command Priority.BACnetPriorityArray
COV_IncrementMinimum change in Present_Value that triggers a Change of Value notification.REAL

BACnet services: how devices communicate

BACnet defines a set of services that devices use to exchange data and initiate actions. Understanding the key services explains how TOP Server interacts with BACnet devices to read values, write setpoints, discover devices, and receive event notifications.

Read Property / Read Property Multiple

The foundational request-response services for reading object properties. ReadProperty reads a single property from a single object; ReadPropertyMultiple reads multiple properties from multiple objects in a single request. TOP Server uses ReadPropertyMultiple heavily — its "items per request" configuration (up to 64) controls how many object/property pairs are batched into each ReadPropertyMultiple request, directly affecting polling efficiency and network load.

Write Property

Writes a value to a specific property on a remote object. Write requests can include a priority level (1–16), which interacts with the Priority Array on commandable objects. TOP Server supports Command Priority, allowing writes to be submitted at a configurable priority level rather than defaulting to the minimum priority.

Who-Is / I-Am (Device Discovery)

Who-Is is a broadcast service that asks "which BACnet devices are on this network?" — either network-wide or to a specific device instance range. Devices respond with I-Am messages that carry their device instance number, vendor information, and maximum APDU size. TOP Server's BACnet driver uses Who-Is/I-Am for automatic device discovery — it can scan the network and automatically find all reachable BACnet devices without manual configuration of each device's IP address.

Subscribe COV / COV Notification (Change of Value)

Change of Value (COV) is BACnet's subscribe-and-push mechanism. Rather than polling a property repeatedly, a client sends a SubscribeCOV request to a device and the device sends COV notifications whenever the value changes by more than the configured COV_Increment. This eliminates polling overhead for stable values. TOP Server supports both Confirmed and Unconfirmed COV notifications.

Application Protocol Data Unit (APDU)

The APDU is the application-layer message container in BACnet — every service request, response, and notification is carried in an APDU. The maximum APDU size is negotiated between devices and determines whether messages need to be segmented across multiple packets. TOP Server provides configurable APDU settings that allow the maximum APDU size and segmentation parameters to be tuned to the specific network and device mix.

Confirmed vs. Unconfirmed COV: Confirmed COV notifications require the receiving device to send an acknowledgment back to the producer — adding reliability at the cost of a round-trip for each notification. Unconfirmed COV notifications are fire-and-forget: faster and lower overhead, but with no guarantee of delivery. TOP Server supports both modes; the choice depends on the reliability requirements of the application and the performance characteristics of the BACnet network.

PICS and BIBBs: how BACnet defines conformance

BACnet is a large standard — no single device is expected to implement all of it. The standard defines a conformance framework based on two key concepts: Protocol Implementation Conformance Statements (PICS) and BACnet Interoperability Building Blocks (BIBBs).

PICS (Protocol Implementation Conformance Statement)

A PICS is a document that a BACnet device vendor must provide, stating exactly which parts of the BACnet standard the device implements. It lists supported object types, supported properties for each object type, supported services, and any vendor extensions. Before purchasing or integrating a BACnet device with TOP Server, reviewing its PICS confirms whether the objects, properties, and services that TOP Server's driver uses are actually supported by that specific device and firmware version.

BIBBs (BACnet Interoperability Building Blocks)

A BIBB is a named set of services and objects that together enable a specific interoperability function. Rather than specifying that a device supports individual services, BIBBs package them into functional units. For example, Data Sharing – ReadProperty-B (DS-RP-B) is the BIBB for a device that can respond to ReadProperty requests. TOP Server's BACnet driver has a specific list of BIBBs it requires from devices for different features — devices must implement the corresponding BIBBs for those features to work.

BACnet device compatibility: Not every BACnet device will work with every BACnet client software. Compatibility depends on whether the device's PICS covers the objects, properties, and services the client uses. Software Toolbox maintains a detailed BACnet Device Compatibility article covering the BIBBs supported by TOP Server's BACnet driver. Consult this resource before deploying TOP Server against a specific BACnet device.

BACnet vs. OPC: complementary, not competing

Engineers sometimes ask whether BACnet replaces OPC or competes with it. They serve different layers of the architecture and are almost always used together in building-to-enterprise integration projects.

DimensionBACnetOPC (DA / UA)
Primary purposeDevice-to-device communication within a building automation systemDevice/system data exposure to SCADA, historians, analytics, and enterprise applications
DomainBuilding automation: HVAC, lighting, life safety, access controlUniversal industrial and building automation; vendor-neutral enterprise integration
Information modelYes — rich object model with typed objects, named properties, engineering unitsYes (UA) — semantic nodes, types, relationships; OPC DA is flat tag/value
Built-in securityLimited — BACnet/SC adds TLS; base BACnet has minimal securityYes (UA) — X.509 certificates, TLS, role-based access
Alarm / event modelYes — intrinsic alarming, algorithmic change detection, COV notificationsYes (A&E / UA) — OPC A&E and OPC UA alarms & conditions
Historical dataYes — Trend Log objects, SubscribeCOVPropertyYes (HDA / UA) — OPC HDA and OPC UA Historical Access
Typical consumersBuilding management systems, building controllers, DDC systemsSCADA, historians (OSIsoft PI, AVEVA), MES, ERP, cloud analytics, AI platforms
IT network compatibilityBACnet/IP runs on standard Ethernet; MS/TP requires serial infrastructureYes — TCP/IP, runs on standard IT network infrastructure

In practice, the integration architecture for most building-to-enterprise data flows uses BACnet at the device layer, TOP Server as the BACnet-to-OPC bridge, and OPC UA for the enterprise-side interface to historians, SCADA, analytics, and cloud platforms.

BACnet Devices
VAV controllers, AHUs, meters, thermostats
BACnet/IP Network
Annex J, UDP/47808; MS/TP via gateway
TOP Server
BACnet driver → OPC DA / OPC UA server
OPC
DA, UA, A&E, SuiteLink
Enterprise Applications
Historian, SCADA, analytics, BMS dashboards

How TOP Server connects to BACnet devices

TOP Server's BACnet Ethernet driver provides OPC DA, OPC UA, and SuiteLink connectivity to BACnet/IP (Annex J) devices on Ethernet networks, and to non-Ethernet BACnet devices (MS/TP, ARCNET, LonTalk) through BACnet/IP gateways. Here are the key capabilities of the driver:

Automatic Device Discovery

The driver sends Who-Is broadcasts to discover all BACnet devices on the network. Discovered devices can be mass-added to the configuration with a single operation. Each device added from discovery automatically inherits the discovered device name from its I-Am response.

Automatic Tag Database Generation

Once devices are discovered, the driver can interrogate each device's object list and generate OPC tags automatically — one tag per object property, organized into configurable groups. This eliminates the need to manually enter BACnet object instance numbers and property identifiers for each data point.

COV Subscription Support

TOP Server subscribes to Change of Value notifications from BACnet devices rather than polling every tag at a fixed rate. Values are updated when they change by more than the COV_Increment — reducing network traffic significantly for stable values. Supports both Confirmed and Unconfirmed COV.

Command Priority Support

BACnet commandable objects use a 16-level priority array for write commands. A write at priority 8 can be overridden by a later write at priority 1, without canceling the priority-8 command. TOP Server supports configuring the write priority for commands, enabling correct integration with BAS systems.

Gateway Support for Non-Ethernet Devices

TOP Server connects to MS/TP serial devices, ARCNET devices, LonTalk devices, and other non-Ethernet BACnet networks through BACnet/IP-to-serial gateways and BACnet routers. The driver also supports registration as a foreign device on the BACnet network when required.

Configurable APDU and Request Tuning

BACnet APDU settings affect message segmentation and performance. TOP Server allows the maximum APDU size and segmentation window to be configured per channel. Configurable items-per-request (up to 64 per ReadPropertyMultiple request) allows network traffic to be optimized.

Frequently asked questions

What is the difference between BACnet/IP and BACnet MS/TP?+

They are two different physical and data-link transport layers for the same BACnet application layer. BACnet/IP runs over UDP/IP on standard Ethernet networks. BACnet MS/TP runs over EIA-485 serial wiring using a token-passing MAC protocol at 9.6 to 76.8 kbps.

In a typical building, there are MS/TP bus networks at the field level connected through BACnet/IP gateways or routers to the building Ethernet network. TOP Server connects to BACnet/IP directly, and reaches MS/TP devices through those gateways.

What does "Annex J" mean in the context of BACnet/IP?+

Annex J refers to Annex J of ASHRAE Standard 135, which defines the BACnet/IP protocol mapping — specifically, how BACnet application layer messages are encapsulated and transported in UDP/IP packets. When you see a BACnet product described as supporting "Annex J" or "BACnet/IP (Annex J)," it means the device uses BACnet over UDP/IP on standard Ethernet, which is what TOP Server's BACnet driver requires.

The port is also part of the Annex J specification: BACnet/IP devices listen on UDP port 47808, which is 0xBAC0 in hexadecimal.

What is a PICS document and do I need to check it before connecting?+

A Protocol Implementation Conformance Statement (PICS) is a document that a BACnet device vendor provides, listing exactly which objects, properties, and services the device implements. Before deploying TOP Server against a BACnet device, reviewing its PICS is strongly recommended — particularly for less common object types (Trend Log, Schedule, Calendar, Life Safety objects) and for COV subscription support.

PICS documents are typically available from the device vendor's product pages, firmware documentation, or on request. Software Toolbox also maintains a BACnet Device Compatibility article in its knowledge base.

My BACnet devices are on a different subnet from my TOP Server machine. How does that work?+

BACnet/IP uses UDP broadcasts for device discovery (Who-Is / I-Am), and UDP broadcasts do not cross IP routers by default. When BACnet devices and the TOP Server machine are on different IP subnets, the BACnet network uses a BACnet/IP Broadcast Management Device (BBMD) to relay broadcast messages across subnet boundaries.

TOP Server can also register itself as a "foreign device" on a remote BACnet/IP network through a BBMD, or send Who-Is directly to a known device IP address, bypassing the broadcast mechanism entirely.

Can TOP Server read and write BACnet Trend Log objects?+

Yes. TOP Server's BACnet driver supports Trend Log objects as one of its standard object types. The Trend Log object's properties — including Log_Buffer, Total_Record_Count, Record_Count, and the logging configuration properties — can be read through the OPC interface like any other BACnet object property.

Reading trend log data from BACnet devices and making it available via OPC is particularly valuable for energy management applications where BACnet meters accumulate interval data locally and need to be periodically harvested.

Does TOP Server support BACnet Secure Connect (BACnet/SC)?+

BACnet/SC (Secure Connect) adds TLS-based security and WebSocket transport to BACnet. Contact Software Toolbox directly for the current status of BACnet/SC support in TOP Server, as this is an evolving area of the standard and driver development.

For environments where BACnet data needs to cross network security boundaries securely today, the common approach is to secure the OPC layer — TOP Server exposes BACnet data over OPC UA, which has robust built-in security (X.509 certificates, TLS encryption, role-based access control).

Ready to connect your BACnet devices to OPC?

TOP Server's BACnet Ethernet driver supports automatic device discovery, COV subscriptions, all standard BACnet object types, and gateway-based access to MS/TP and other non-Ethernet BACnet networks. Talk to an engineer about your specific devices.

Ready to connect your BACnet devices to OPC?

TOP Server's BACnet Ethernet driver supports automatic device discovery, COV subscriptions, all standard BACnet object types, and gateway-based access to MS/TP and other non-Ethernet BACnet networks.

Talk to an engineer