What is BACnet ?
Building Automation and Control Network (BACnet) is a communication protocol which is developed by the American Society of Heating, Refrigerating, and Air conditioning Engineers (ASHRAE). It is an open, vendor-independent standard that facilitates the exchange of data between various building automation devices and systems.
Key Features
- The BACnet protocol operates at the application layer (Layer 7) of the OSI (Open Systems Interconnection) model and uses different data link layers for communication, such as Ethernet, RS-485, IP, and others. These data link layers provide the physical and data link communication capabilities, while BACnet handles the higher-level application-specific aspects of the communication.

- BACnet is based on an object-oriented data model, where devices and data points in a building (such as sensors, actuators, alarms, schedules, etc.) are represented as objects with standardized properties and behaviors.
- BACnet supports various data types, including numerical values, binary data, character strings, and more. This versatility allows it to handle a wide range of data from different types of building systems.
Why did we use BACnet over other protocol ?
1. Application Focus:
- BACnet: Primarily used for building automation and control systems, such as HVAC, lighting, access control, and fire detection. Designed to integrate diverse building systems.
- Modbus: Widely used for industrial automation, connecting PLCs, sensors, and actuators. Commonly used for basic communication between devices.
- PROFIBUS: Mainly utilized in industrial automation and process control environments. Supports both discrete and process automation with variants like PROFIBUS DP and PROFIBUS PA
2. Complexity:
- BACnet: Supports complex data structures and object-oriented communication, where devices and data points are represented as standardized objects with properties and behaviors. Making it well-suited for intricate building automation systems.
- Modbus: Simple protocol with limited data types, making it more suitable for straightforward communication tasks. Follows a simple register-based data model, where data is organized into holding registers and input registers.
- PROFIBUS: Supports a variety of data types and is suitable for complex industrial automation and process control applications.
3. Communication:
- BACnet: Supports both peer-to-peer and client-server communication models. It allows devices to communicate locally within a building or remotely across wide-area networks. Communication speed can vary based on the network configuration and device capabilities.
- Modbus: Typically used in a master-slave configuration, where a master device (e.g., PLC) communicates with and controls multiple slave devices (e.g., sensors, actuators). it has been adapted to run over Ethernet (Modbus TCP) for higher-speed networks. Simple structure enables relatively fast communication, making it suitable for applications requiring real-time responses.
- PROFIBUS: Offers high-speed communication suitable for time-critical industrial applications.
4. Security:
- BACnet: Includes security features, though implementations might vary. Security considerations are important in building automation systems.
- Modbus: Lacks built-in security features, requiring additional measures for secure communication.
- PROFIBUS: Offers security features and supports different levels of security based on the application requirements.
5. Industry Adoption:
- BACnet: Widely adopted in the building automation and control industry.
- Modbus: One of the most commonly used protocols in industrial automation.
- PROFIBUS: Widely used in industrial automation and process control, particularly in Europe.
Integration with PLC
To enable BACnet communication with a PLC, the PLC should be equipped with BACnet capabilities. This can be achieved through hardware modules that support BACnet/IP (Internet Protocol) or BACnet MS/TP (Master-Slave/Token-Passing) communication.
1. PLC Configuration:
The BACnet-capable PLC needs to be properly configured to communicate on the BACnet network. This includes assigning a unique Device ID, setting up network parameters, and selecting appropriate BACnet objects that represent the PLC’s inputs, outputs, and other relevant data points.
2. BACnet Objects and Services:
BACnet defines a set of standard objects and services for data representation and communication. The BACnet objects in the PLC should be mapped to the relevant data points and functionalities in the industrial process.
3.Data Exchange:
The PLC can read data from BACnet objects representing building automation devices, such as sensors or actuators. Likewise, it can write data to BACnet objects to control devices or send status updates to the building automation system.
4.Interoperability:
Both the BACnet-enabled PLC and the building automation devices should adhere to the BACnet standard for proper interoperability. This ensures that devices from different manufacturers can communicate effectively.
5. Integration Logic:
The PLC’s programming logic needs to include BACnet communication functions to interact with the BACnet network. The PLC program can use BACnet services to read/write data and manage alarms and events.
6.Data Format and Conversion:
It’s essential to consider the data format and conversion between the BACnet objects’ data types and the PLC’s internal data representation. Some translation or data conversion may be necessary to ensure data consistency and accuracy.
7. Network Configuration:
The PLC should be connected to the BACnet network through the appropriate communication interface, such as Ethernet or RS-485. The BACnet network’s configuration, including IP addresses, subnets, and routers, should be appropriately set up to allow communication between the PLC and other BACnet devices.