July 02, 2020
Let’s start with a basic.
BACnet is an ISO, ANSI, and ASHRAE standard network protocol for building automation. BACnet was developed by the American Society of Heating, Refrigerating, and Air-Conditioning Engineers (ASHRAE), and it was originally approved as an ASHRAE standard in 1995. The BACnet standard is maintained by ASHRAE committee SSPC 135.
BACnet is one of the most popular automation and control protocols used in products of leading industry vendors such as Honeywell, Johnson Controls, Siemens, Schneider, Trane, Azbil, and more. A new market research study indicates BACnet’s global market share has continued to rise over the last five years and now exceeds 60%.
BACnet was designed to allow communication of building automation and control systems for applications such as heating, ventilating, and air-conditioning control (HVAC), lighting control, access control, and fire detection systems and their associated equipment. The BACnet protocol provides mechanisms for computerized building automation devices to exchange information regardless of the particular building service they perform. It can be used by computers, general-purpose direct digital controllers, and application-specific or unitary controllers with equal effect. One of the major advantages of this protocol is that it was developed from the beginning as an independent open standard automation protocol. More history you can find here.
BACnet was originally developed to improve interoperability between building automation equipment, but its data definitions and flexible architecture makes it usable in a wide range of distributed control applications.
BACnet is an object-oriented protocol. BACnet Objects are used to represent network-accessible control equipment. BACnet defines more than 60 standard object types, including: Accumulator, Analog Input/Output/Value, Averaging, Binary Input/Output/Value, Calendar, Command, Device, File, Life Safety Point, Life Safety Zone, Loop, Multi-state Input/Output/Value, Notification Class, Event Notification, Program, Pulse Converter, Schedule, Trend-Log and others. Each object contains a list of properties whose values indicate the current state of the control equipment. The BACnet standard specifies mandatory and optional properties for the standard object types, as well as mandatory behavior associated with some properties.
A BACnet device maintains a collection of Objects, including one Device Object, which describes its BACnet capabilities, and, starting with BACnet revision 17, one or more Network Port Objects, which describe the configuration and properties of network ports of the device. A BACnet device can function as a BACnet Server or a BACnet Client. A Server responds to BACnet service requests to read and manipulate its Objects. A BACnet Client generates service requests to monitor and control BACnet Servers. Some service requests that Servers will commonly respond to are Who-Is, Read-Property, and Write-Property. Servers can also generate service requests, such as I-Am and the service requests used to report events and alarms. Many BACnet controllers and workstations have both Client and Server functionality. Starting with BACnet revision 17, all BACnet devices have to provide the minimal server functionality as it is defined in the corresponding BACnet profile.
For transmission of packets, BACnet makes use of three popular LAN technologies: Ethernet™, ARCNET™, and LONtalk™. BACnet devices may also be directly connected to IP and IPv6 networks. BACnet includes an RS-485 master/slave data link layer and a point-to-point data link layer that were specially developed for BACnet. A BACnet internetwork can be formed from several BACnet LANs employing similar or different LAN technologies using BACnet-compliant routers.
The main references for BACnet are:
BACnet is based on a four-layer collapsed architecture that corresponds to the physical, data link, network, and application layers of the OSI model as shown in the figure below.
As Shengwei Wang specified in his book Intelligent Buildings and Building Automation there is an international standard that defines a model for developing multi-vendor computer communication protocol standards called The Open System Interconnection (OSI). The OSI model addresses the general problem of computer-to-computer communication and breaks this very complex problem into seven smaller, more manageable sub-problems, each of which concerns itself with a specific communication function. Each of these sub-problems forms a "layer" in the protocol architecture.
Why does it use only four layers? As the BACnet standard explains, this configuration was chosen after careful consideration of the particular features and requirements of BAC networks, including a constraint that protocol overhead needed to be as small as possible.
The physical layer provides a means of connecting the devices and transmitting the electronic signals that convey the data. The protocol defines rules for electrical signaling, addressing, error checking, network access, flow control, presentation, and message format. BACnet supports several data links:
The data link layer organizes the data into frames or packets, regulates access to the medium, provides addressing, and handles some error recovery and flow control.
Cimetrics BACstac protocol
stack supports several standard BACnet data links. Some of these data links require lower-level operating system components to be installed. The BACnet/Ethernet data link uses the WinPCap interface. The BACnet/IP data link uses the TCP/IP protocol stack through the Windows Sockets API. The BACnet/PTP data link layer uses an unoccupied serial port. If your PTP DL is modem-configured, it will be capable of dialing and receiving calls. You can have any number of BACnet/Ethernet, BACnet/IP, Virtual, and BACnet/PTP ports.
Functions provided by the network layer include translation of global addresses to local addresses, routing messages through one or more networks, accommodating differences in network types and in the maximum message size permitted by those networks, sequencing, flow control, error control, and multiplexing.
This layer handles the actual interface with the user’s application program. It also takes care of reliability and segmentation/sequencing mechanisms usually associated with transport and session layers.
Comments will be approved before showing up.
January 29, 2024