You are on page 1of 80

BACnet Fundamentals

Course #801
e-Training Description

Reading assignment
Provided electronically as part of this course, this slides presentation introduces and describes
key concepts and knowledge.

Intended Audience
This e-Training is intended for system designers, integrators, and field technicians who have
experience with control systems, and who want to learn about how to make a successful BACnet
i t ll ti

Conventions Used in this Document

This is an example of Note text. Wherever the note-paper icon appears, it means the associated
text is giving a time-saving tip or a reference to associated information of interest.

Course Content

BACnet Fundamentals Course ID #801

Content Overview
BACnet Basics
BACnet Objects
BACnet Services
Specifying BACnet
Device Profiles
BACnet Networks
BACnet Network Configurations

BACnet Basics
BACnet Standard

BACnet : A data communication protocol for

Building Automation and Control NETworks

Open specification for building controllers to communicate

Applies to all building systems

Provides a universal model for creating building automation

systems which can interoperate:

Objects: Represent data and control

Services: Convey requests and information/data
Network types: For flexible and cost-effective networks


In the past, building systems and controls mostly were proprietary. Once an owner bought into a
particular vendor, they had limited choice about the range of possibilities for making that
equipment or system interoperate with other systems.
Many issues have added to the pressure to break away from the proprietary mindset.
Regardless of the causes, the industry became motivated to bring together a diverse group of
interests within ASHRAE beginning in 1987. After an intense effort over a period of eight years,
ANSI/ASHRAE Standard 135-1995, BACnetA Data Communication Protocol for Building
Automation and Control Networks
Networks, emerged as a world-class
world class model for achieving
interoperability within the industry.
Five years later in 2000, dozens of manufacturers and a worldwide deployment of BACnet in
thousands of successfully interoperating systems have affirmed the need for a standard for
building automation interoperability. Traditional "proprietary" companies are losing market share
to companies that have the broadest and most comprehensive adoption of BACnet. The shift is
real, and the rate of change is accelerating.


BACnet became ASHRAE/ANSI Standard 135 in

1995, and ISO 16484-5 in 2003.
BACnet is under continuous maintenance by the
ASHRAE Standing Standard Project Committee 135
Current standard is ASHRAE/ANSI Standard 135-
The Method of Test for Conformance to BACnet was
bli h d iin 2003 as BSR/ASHRAE St Standard
d d 135
BACnet Testing Laboratories was established by
BACnet International to support compliance testing
and interoperability testing activities and consists of
BTL Managerg and the BTL-WG.

What is BACnet

BACnet provides a universal model for creating building automation systems which can interoperate
BACnet is a specification that a manufacturer can use to make interoperable systems to work in a
BACnet environment.
Owners and specifiers use BACnet as a tool for specification of interoperable systems.
BACnet does not replace the need for specifying what one wants or needs. It simply provides some
standardized tools to help enable the creation of systems that can interoperate.
BACnet achieves these goals by defining a generalized model of automation systems; how to
describe the information and how to describe standard methods of data and action communications.

Objects for representing data and control

Services for conveying requests and responses
Flexible and cost-effective LAN network types
Internetworking to create large systems that work
as a whole

Interoperability - Compatibility of systems

The term "Interoperable describes the

process of making devices that can interact
with each other using g a common
communication network for the purpose of
sharing functionality and responsibility for
different control functions
BACnet was designed from the beginning to
f ilit t the
facilitate th interoperability
i t bilit between
b t diff
building systems
BACnet has been proven to be a viable and
practical technology for bringing different
systems and vendors together in a common

Specifying BACnet

BACnet Interoperability Building Blocks. Define a set of BACnet services to provide a specific function
BIBBs are defined in 7 areas of interoperability
p y

Protocol Implementation Conformance Statement
The PICS is a standard way of describing the BACnet functionalities of a specific device in a
standardized table format and contains information about the device supported BIBBs

Profiles provide an overview of service collections
A Device Profile is defined with a standard collection of BIBBs
Any device that implements all the required capabilities for a particular device type and interoperability
area may claim to be a device of that particular profile
Devices may also provide additional capabilities

Those topics will be detailed later in this course

The Protocol

BACnet separates the two aspects of Transport

any communication

There is a variety of different standards

for transporting messages.
messages BACnet can
use optimized forms of media type to
reduce cost

The messageg that is transported

p is the
same regardless of the physical
transport mechanism

Protocol Layers

Information data and value

Requests and
Responses Services

Network &
Transport Method

Transport Options
The transport system uses different types of electronic messaging standards (Network protocols)
to convey coded messages. BACnet provides the ability to choose the most appropriate trade-off
between cost and performance in the transport mechanism.
The listed options include optimized networking standards
Ethernet 8802-3 and BACnet/IP provide the fastest performance, but also the highest cost
ZigBee is a wireless mesh networking proprietary standard
Distech Controls devices are BACnet/IP and MS/TP devices

Ethernet BACnet/IP


MS/TP LonTalk
PTP Zigbee


Transport Options Comparison

Transport Type Pros Cons

Very Popular
Fast Requires special setup
BACnet - IP (BBMD) to enable
Shares existing IP network broadcast messages
Easy to configure

Cannot get across IP

Shares existing IP network
BACnet Ethernet routers.
(8802-3) No real performance difference
Not the preferred
compared to BACnet-IP

Very popular, especially as a low-

level bus technology
Lower speed
Easy to install and configure
Low cost

Simply put, internetworking is required whenever we need to couple
dissimilar LAN technologies and control the traffic exchanged
between them
A router is required whenever we need to couple similar or
dissimilar LAN technologies and control the traffic exchanged
between them
The router does not modify the BACnet message it just forward it
from one LAN to the other when ever it needs to
Are special types of internetworking devices that couple BACnet
networks to non
BACnet or proprietary networks
Like a router, the gateway is continuously listening to messages on
two or more LANs. The difference is that the gateway cannot simply
repeat the BACnet message on the non-BACnet LAN; it needs to
translate it
One common approach to gateways is that each proprietary system
is viewed as an "island" with the gateway being the only bridge to
that island

Application Layer

A BACnet profile contains

S i
Standard objects
Non-standard objects
A device object
Object properties


Classes of services
Alarm and Event
File Access
Object Access
Remote Device Management
Virtual Terminal

BACnet services follow a Client-Server model. Service
A BACnet client is a device that requests a service C S
A BACnet server is a device that performs a service Execute


Objects standardize the organization of data to facilitate the exchange of data between different
vendors products
Objects represent physical inputs, outputs, and software processes
Objects standardize information presentation
BACnet defines a collection of standard objects (defined later in this presentation)

The Device Object Type

The Device object

Defines a standardized objectj whose pproperties

represent the externally visible characteristics
of a BACnet device
Only one Device object per BACnet device
A Device object is referenced by its Object
Identifier, which is unique:
To the BACnet device that maintains this
Throughout the BACnet internetwork


Object Properties

p are objects
j p
present value
alarm limits
BACnet distinguishes between mandatory
and optional properties
Properties may either be read only or also
writable (modifiable by BACnet services)

BACnet Objects
BACnet Objects

All information in a BACnet system is represented in terms of objects

An object is an abstract concept which allows to talk about and organize information relating to
physical inputs and outputs
outputs, as well as non-physical
non physical concepts like software,
software or calculations or
control processes.
Objects may represent single physical "points", or logical groupings or collections of points which
perform a specific function.

BACnet is an Object oriented protocol

Objects represent physical inputs, outputs, internal values and software processes
Objects standardize information presentation
BACnet defines a collection of standard objects

Standard Objects
A BACnet standard object is one whose properties and what they do, are defined in the BACnet
This set of standard objects represents much of the functionality found in typical building automation
and control systems today
BACnet devices are only required to implement the Device object.
Other objects are included as appropriate to the device's functions, that may include non-standard

BI Binary Input MSI Multi-state Input File

BO Binary Output MSO Multi-state Output Program

BV Binary Value MSV Multi-state Value Schedule

AI Analog Input Loop Trend Log

O Analog
g Output
p Calendar Group

AV Analog Value Notification Class Event Enrollment

Averaging Command Device

BACnet Device

A BACnet device is simply a container with different BACnet objects that represent the actual
functions and I/O present in the actual device

Example of BACnet Device

Input Points Internal Points Output Points

Binary IInputt 1-x
1 Bi
Binary V
l 1 1-x Bi
Binary O
t t 1-x

Analog Input 1-x Analog Value 1-x Analog Outputs 1-x

p 1-x
Multi-state Input Multi-state Value 1-x
Loop 1-x

Objects Types

All objects in BACnet are required to support some

standard properties:
Object Name: The name of the object in a character
string (must be unique within the device containing
the object)
Object Type: The type of object in a character string
Object Identifier: Type number and Instance
b off the
th object
bj t

Analog Types

Analog Input (AI) objects will display inputs of a controller (room temperature, humidity)
Analog Output (AO) objects refer to physical outputs on the controller (valve, damper, humidifier)
Analog Value (AV) objects represent internal values used in the controllers program (constant

The Analog Inputs Present Value is read only and the Analog Output can be overridden using the
priority array

Here is an example of an Analog Input object with its properties :

Object Identifier
Object_Identifier 22
Required Object_Type ANALOG INPUT
Present Value 73.3
Status_Flags Normal, InService
High Limit 78.0
Low Limit 68.0

Binary Type

Binary Input (BI) objects will display inputs of a controller (fan status, occupancy)
Binary Output (BO) objects refer to physical outputs on the controller (fan start/stop, stages On/Off)
Binary Value (BV) objects represent internal values used in the controller (constant
(constant, variable)

The Binary Inputs Present Value is Read Only and the Binary Output can be overridden using the
priority array.

Here is an example of an Analog Input object with its properties :

Object_Identifier 32
Object_Name FanStatus
Present Value ACTIVE
Status Flags
Status_Flags Normal InService

MultiState Object

MultiState objects are integer values which reference different states.

For example: 1=OFF, 2=LOW, 3=HIGH, 4=AUTO
MultiState objects cannot have a value of 0
Multi-state objects also come in Input, Output and Value types (MSI, MSO and MSV)
The State Text property is an array containing descriptions for each of the states

l ffor a MultiStateValue
M ltiSt t V l object
bj t att a presentt value
l off 3 (Hi

Object_Identifier 56
Object_Name FanSpeed
Object_Type MultiState Value
Present Value 3
State Text HIGH
Status_Flags Normal, InService

Objects Instance Number

Each device may contain any number of objects of any mixture of types
The Object Instance number is a unique number associated to each objects
Within a device,
device there can be no more than 4
194 303 objects of each type
The object instance numbers must be unique for each type within the device that contains them
(except for the Device Object)
For example [Analog Input, 5] would be called Analog Input instance 5

Object instances can range from 1 to 4,194,303. A device could have x number of Analog Inputs
that would each have a different instance number
Unique instance number for a Device Object is even more important because every device in the
whole BACnet internetwork is required to have a unique instance number

Object_Identifier 1
Object_Name Occupancy
Object_Type Binary Input
Present_Value Active
Status_Flags Normal, InService

Object Value Priority Array

Common objects like AO, AV, BO, BV and many other

have an output port that is controlled by an input port Priority BACnet Priority
value 1 Manual Life Safety
It is convenient to be able to control the object with 2 Automatic Life Safety
3 Available
different sources including manual override
4 Available
To facilitate integration, priority levels for values have 5 Critical Equipment Control
been defined in the BACnet standard 6 Minimum On/Off
7 Available
P i iti are processed
Priorities d ffrom llevel1
l1 tto llevel16
l16 8 Manual Operator
Priority 1 being the most important and 16 being the 9 Available
least important 10 Available
11 Available
First priority that has a value different then Auto (or 12 Available
Null) controls the outputs
output s present value 13 A il bl
14 Available
Since there can be overrides from different sources or 15 Available
workstations on the network, a priority array scheme 16 Available
has been designed with 2 manual override levels one Relinquish Default Value
be g the
e Manual
a ua Lifee Sa
e de a at level1.
e e
Output objects like AO and BO are generally using this standard array
Input objects like AI, BI and also internal variables like AV generally have a different way of being
controlled without the full wedge of priority array

Device Object

Every BACnet Controller has one Device Object, this is critical for the network configuration.
The Device Object is unlike to all other objects types; it defines the controller on the network
Some of its p
p ; Object
j Name and the Objectj Instance,, must both be unique
q across the
whole BACnet internetwork.

Device Object Instance Number

The Device Instance uniquely identifies a device across the Object_Identifier: 123
BACnet internetwork Object_Name: STAT-01
The Device Instance is any number between 0 and 4 194 303 Object_Type: Device
System_Status: Normal, InService
It is with the Device Instance that messages are exchanged Vendor_Name: Distech Controls
between BACnet devices Vendor Identifier: 364
The Device Instance is also used by routers to forward messages
to devices located elsewhere in the internetwork
For example, an IP network linked to an MS/TP network through a
router; a controller on the IP network cannot have the same
instance number as a controller on the MS/TP network, they all
have to be unique.
An internetwork is all the networks that could be linked together
through the use of routers, even if the media type is changing.

Other Common Objects

PID loop
p use to control equipments
q p with a feedback control loop
Keeps track of a list of calendar dates
A Calendar object can be used with the Schedule object to specify holidays and special
A standardized object used to describe a periodic schedule
May include exceptions at arbitrary times on arbitrary dates

BACnet Services
BACnet Services

Services convey requests of information/data

BACnet Devices can provide several broad categories of services
j Access
Read, Write, COV (Change of Value)
Device Management
Discover, Time synchronization, Backup, Restore
Alarm and Event
Alarms, Changes of state
File Transfer
Program, Trend
Virtual Terminal
Human Machine Interface (Console)
The Read service:
The most frequent is to pool data from an object to display or use its value elsewhere
Th W
The Write
i service:
To change/edit an objects value using a source being external to this controller
The Read Multiple service:
Reading lots of values in one device all at once

ReadProperty Service

ReadProperty service is used by a BACnet device (the Client) to ask another BACnet device (the
Server) to provide the value of one of its objects properties
The Server then answers back to the Client with the information required

Here is an example for that service where the Client asks the Server for its space temperature (AI 2)

C e t Server
Se e
ReadProperty (msg#123
objectid=Analoglnput 2

objectid=Analoglnput 2
t id P tV l

WriteProperty Service
WriteProperty service is used by one BACnet device to ask another to change the value of one
of its object properties
A BACnet device (the Client) write a value in another BACnet device (the Server)
The Server
S then answers back to the Client
C saying that the operation has been done successfully

Here is an example for that service where the Client Writes to Binary Output 3.

Clientt S
objectid=BinaryOutput 3


ReadMultiple/WriteMultiple Service
Sometimes the need to read a bunch of properties from objects in the same device (or write to
them) can require many requests
We can see here the same transaction done either with basic Read Property requests or with
Read Property Multiple
Sometimes the response can be too big to be transmitted all at once and may have to be
Not all devices support segmentation
Not all devices support "multiple" services so any client that wants to use them must be
prepared to fail back to using ReadProperty

Without Read/WriteMultiple With Read/WriteMultiple

ReadProperty AI1; Present_Value ReadPropertyMultiple

AI1;Present_Value, Status_Flags
ReadProperty AI1; Present_Flags AV3;Present_Value, Status_Flags

ReadProperty AV3; Present_Value

ReadProperty AV3; Present_Flags

Change Of Value Service (COV)

Change Of Value (COV) service allows the Client device to subscribe to Server device for a
change of value of one of its objects
The Server will then send a COV notification to the Client every time the value changes for a
predefined amount
Subscriptions can be made for ever or for a limited amount of time; the Client has to re-subscribe
when the subscription time is over
Pros: The client does not have to ask for an update on the value all the time since it will be
tifi d b
by th
the S
Server when
h th the value
l changes
Cons: Not all devices support COV. The amount of COV subscriptions is limited on the
Server. COV subscriptions put a lot of burden on the Server device which have to deal with
all those subscriptions.

Client Server



Unsubscribed COV Service

Devices can send COV notifications without having been given an explicit subscription
A device broadcasts an UnsubscribedCOV notification anytime the value of the monitored object
changes from a certain amount
Pros: The server does not have to deal with COV subscriptions. It only cares about
broadcasting the new value on the network
Cons: Not all devices support Unsubscribed COV. The value is broadcasted on the
network without knowing if the targeted devices got it or not. COV Storms could be created
on the
th network
t k if many COV updates
d t occur allll the
th time.
ti Some
S simple
i l precautions,
ti like
lik the
refresh rate for a COV, can eliminate the issue.

Clients Server


Time Synchronization

There are two ways of synchronizing time in BACnet devices

The TimeSynchronization is the service which will broadcast a time synchronization request
from a Time Master device (client) for all BACnet devices (servers) that will then adjust their
time and date with the master
The UTC TimeSynchronization service is used when the BACnet network spreads into
different time zones. The Time master device (client) will then initiate a broadcast of UTM time
on network. All the devices (servers) will then synchronize their time and date in regard to their
time zone offset

Time Synchronization Service


Device ID (instance number) <everyone>

TimeSynchronization Mon 07/15/2009 17:23:00.00

Network Broadcast Network

Server Server

Local Date=Mon 07/15/2009 Local Date=Mon 07/15/2009

LocalTime=17:23:00.00 LocalTime=17:23:00.00

UTC Time Synchronization Service


Device ID (instance number) <everyone>

UTCTimeSynchronization Mon 07/15/2009 22:23:00.00

Network Broadcast Network

Server Server
System offset System offset
from UTC: Time from UTC: Time
Zone is
i -5hours
h Z
Zone is
i -6hours

Local Date=Mon 07/15/2009 Local Date=Mon 07/15/2009

LocalTime=17:23:00.00 LocalTime=16:23:00.00

Dynamic Device Binding - Who-IS
The Who-Is and I-Am services broadcast on the network from a Client
The Servers reply with an I-Am message that includes the device ID and MAC address
To talk over Ethernet devices must use the other devices MAC address for communication
This is called a Dynamic Device binding because if one controller dies and gets replaced by another
one, its MAC address will be different but its assigned Device ID will be the same
We can then send a Who-Is to discover the new MAC address of the new Device
Who-Is service is typically use by a Network Management Tool to learn a Network

MAC <everyone>

Client Network Broadcast Network

MAC <035789438426> MAC <648546218946>

I-Am Device 102 I-Am Device 197
Server Server

Dynamic Object Binding - Who-Has
Who-Has and I-Have services let you do a dynamic object binding
Determine which device(s) contain a particular object
It is possible to restrict the range of device instances responding
Typically use by a Network Management Tool to learn a Network

MAC <everyone>
Who-Has AO14

Client Network
N t kBBroadcast
d t Network

I-Have Device 197

Server Server

Specifying BACnet
BACnet Testing Laboratory (BTL)

ASHRAE Standard 135.1 A new standard for testing BACnet conformance

In accordance with the ASHRAE standard,, the BACnet Manufacturers Association (BMA) ( ) created
the BACnet Testing Laboratory (BTL) in order to address interoperability, testing and certification
services for BACnet device manufacturers.

BTL is an independent testing laboratory which adheres a demanding certification

program for BACnet devices.

Vendors must present independent applications for their controllers to be tested.

BTL has been testing products since late 2001.

Industry Collaboration with BACnet Interest Groups ie. BIG-EU for the European
Community -- in order to encompass a uniform certification standard worldwide.

BIBBs: BACnet Interoperability Building Blocks
BIBBs defines a service or group of services (building blocks) that are capable of initiating or
executing a service
This allows to quickly see iff two devices are interoperable for
Data Sharing (DS)
Alarm and Event Management (AE)
Scheduling (SCHED)
Trending (T)
Device and Network Management (DM, NM)
To have an interaction, two BIBBs are defined; one for the request and one for the response role
For example Data Sharing, Read Property y ((DS-RP))
In DS-RP-A, A means it can initiate the interaction, it is considered as the Client
In DS-RP-B, B means it can execute the interaction, it is considered as the Server
BIBBs are used in Protocol Implementation Conformance Statements (PICS) to define the
services that are supported
pp by
y a device

PICS : Protocol Implementation Conformance Statement
Describes the BACnet capabilities of a particular BACnet implementation according to the BACnet
Vendor identification
BIBBs supported by the device
Standard Device Profiles
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
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
Whether segmented requests / responses are supported

PICS - Example


P fil


Data Sharing Interoperability
In order to exchange information;
The client needs to be able to initiate (A) the request
The server needs to be able to execute (B) the request
The preferred solution is to have both services (A & B) enabled in both controllers

DS=Data Sharing, RP=Read Property, WP=Write Property, A=Initiate, B=Execute

Request information

Client objectid=Binarylnput 1 Server BI 1 - Switch
t id P tV l )

Provide information
objectid=Binarylnput 1
PIC Client: DS-RP-A PIC Server: DS-RP-B

Device Profiles
Standard Device Profiles
Define a list of typical set of services (BIBBs) to be supported by a device
Manufacturers need to meet the minimum set of BIBBs for a controller to be certified as a
f profile
Manufacturers can extend a profile to include additional BIBBs
The Following are the 8 Standard Device Profiles defined by ASHRAE:

B-SS: BACnet Smart Sensor

B-SA: BACnet Smart Actuator
B-ASC: BACnet Application-Specific Controller
B-AAC: BACnet Advanced Application Controller
B-BC: BACnet Building Controller
B-OD: BACnet Operator Display
B-OWS: BACnet Operator Workstation
B AWS: BACnet Advanced Workstation

Supported Services per Profile
Here is a list of the minimum requirements for each profile:

B-SS: BACnet Smart Sensor

Responds to ReadProperty requests

B-SA: BACnet Smart Actuator

Responds to ReadProperty requests
Responds to WriteProperty requests

B-ASC: BACnet Application-Specific Controller

Responds to Read/Write Property requests
Allows Dynamic Device Bindings (DDB)
Allows Dynamic Object Bindings (DOB)
Allows Device Communication Control (DCC)
Allows Re-initialization of Device (RD)

Supported Services per Profile
B-AAC: BACnet Advanced Application Controller
All Services included in B-ASC
Responds to Read/Write Property Multiple
Time Synchronization

B-BC: BACnet Building Controller

All Services included in B-AAC
Client Read/Write Property
Initiate Who-Is (DDB) & Who-Has (DOB)
Backup & Restore
Establish Connection for Routing

Supported Services per Profile
B-OD: BACnet Operator Display
Presentation of data (graphics)
Client for Read/Write Property & Read/Write Property Multiple
Alarm Reception, Acknowledgment and Limits
Initiate Who-Is (DDB)

B-OWS: BACnet Operator Workstation

Presentation of data (graphics)
Client for Read/Write Property & Read/Write Property Multiple
Alarm Reception, Acknowledgment and Limits
Calendar and Schedule Modification
Time Master
Trend Display
Initiate Who-Is (DDB)

Supported Services per Profile
B-AWS: BACnet Advanced Workstation
All services included in B-OWS
Alarm Creation and Routing
Calendar and Schedule Creation
Trend Log Creation
Initiate Who-Has (DOB)
Backup & Restore Configurations
Establish Connection for Routing

Device Profiles Example

Two Basic B-ASC Devices Cant Communicate!

The basic B-ASC Profile does not require the device to be able to initiate any request
All services are execute only
Two basic B-ASC devices cannot initiate an interaction
No ability of either device to initiate an interaction means no communication is possible

Basic B-ASC Profile Basic B-ASC Profile

Provide Information Provide Information

Neither basic device has the ability to

request (initiate) the transfer of

Distech Controls B-ASC Devices Can Communicate!

Many Distech Controls controllers conform to the B-ASC Device Profile

But many controllers also support more services like DS-RP-A, DS-WP-A and more
(DS=Data Sharing, RP=Read Property, WP=Write Property, A=Initiate)
Thus, those controllers can exchange (read and write) data with other devices

B-ASC Profile + Initiate B-ASC Profile + Initiate

Request information

Provide information

In this scenario, at least one device

has the ability to request (initiate) the
transfer of information

BACnet Networks
BACnet Networks Overview
Physical network layer
Defines the physical communication method for sending a data signal across a wire
It defines the electrical and physical specifications that include:
The connector type
Pin assignments
Cable specifications
Data packet
Flow control (collision avoidance)
Data modulation.

BACnet Networks Overview
BACnet defines a standard message format that can be carried on any of the following transport
network types. This flexibility allows you to choose between performance versus cost. The
fallowing are the communally used transprot types:

BACnet MS/TP (IEA-485) : Master-Slave/Token Passing standard network.

BACnet/IP (BACnet + IP +UDP) - BACnet/IP devices view the IP internet as if it were a local
area network
network. A device's IP address serves the same purpose as a device's MAC or physical
LAN address in other BACnet networks

Internetworking: Message Types

Unicast packets are sent from host to host. The communication is from a single host to another
single host. There is one device transmitting a message destined for one receiver.
Broadcast is when a single device is transmitting a message to all other devices in a given
address range. This broadcast could reach all hosts on the subnet, all subnets, or all hosts on all
subnets. Broadcast packets have the host (and/or subnet) portion of the address set to all. By
d i
design, mostt modern
d routers
t will
ill block
bl k IP broadcast
b d t ttraffic
ffi and
d restrict
t i t it tto th
the llocall subnet.
b t
Multicast is a special protocol for use with IP. Multicast enables a single device to communicate
with a specific set of hosts, not defined by any standard IP address and mask combination. This
allows for communication that resembles a task related group of device device. Anyone from anywhere
can join the group, and everyone in the group hears the message. The message isn't broadcasted
everywhere, but only to those in the group itself. A special set of addresses is used for multicast

BACnet MS/TP (Master Slave Token Passing)

The BACnet MS/TP data bus protocol is a peer-to-peer, multiple-master protocol that shares data
bandwidth by passing a token between devices (Masters) that authorizes the holder device to
initiate communications on the data bus
Once the device with the token has established a round of communication with another device
(Master or Slave) and has completed its request, it closes the communication channel, passes the
token to the next Master device making it the current Master.
The token is passed through a short message from device to device on the BACnet MS/TP data
bus in consecutive order starting from the lowest MAC address (MAC Address = 0)
Only master devices can receive and send the token on an MS/TP network. Slave devices can
only respond to requests from other master devices.
Slave devices will not accept broadcast messages. This means it will not respond to a Who-Is
BACnet MS/TP is the less expensive of all the BACnet implementation. It uses EIA-485 as its
physical network at limited baud rates of 9,6K to 76.8Kbps

EOL Terminator Token EOL Terminator

BACnet MS/TP - Physical Specifications
BACnet MS/TP Data Bus Segment Physical Specifications and Cable Requirements

MS/TP Network Physical Configuration

Single Segment BACnet MS/TP Architecture

EOL Terminator Maximum of nodes depends on

MS/TP Network
Maximum is 128 Master nodes per segment

EOL Terminator

Central Plant Air Handling Controllers Terminal Unit Controllers

BACnet Over IP Network

BACnet/lP differs from Ethernet in that each BACnet/lP device understands how to use IP directly
Each BACnet/lP device knows how to build its own UDP message and send it, via IP addressing,
to the desired destination device
Such device-to-device messages are called "unicast" messages
Usual IP routers already present in a building with IT infrastructure can be used for communication
of unicast messages
ln this example, all of the devices share a common BACnet network number even thought the
devices might reside on wide-separated IP subnets called a "BACnet/IP network
The limitation with this popular solution are broadcast messages. BACnet uses broadcast
messages for several useful services like the DDB (Who-Is)
The workaround for this limitation is to use configured tunnel routers. In the BACnet standard,
such service is called BBMD.
The BBMD is able to forward a broadcast message to another BBMD present in a different subnet.
The message is then transmited as a broadcast message in the other subnet on behalf of the
The BBMD is also able to forward a broadcast message as individual unicast message to a list of
devices called Foreign devices

BACnet over Ethernet

Ethernet is a world known protocol (IEEE 802.3) is the forerunner of todays IP networks.
Considered as legacy, but still easy to implement and its cost has been going down a lot in the
past years
BACnet over Ethernet uses the same Ethernet network that BACnet/IP uses, the difference is
that Ethernet uses the MAC addresses for network addressing (BACnet/IP use the IP
addresses for network addressing)
It can operate at speeds of 10 Mbps, 100 Mbps and 1 Gbps
It uses MAC addresses for communicating over the network
The biggest drawback is that it cannot communicate through IP routers on different subnets
because usual IP routers does not use MAC addressing but IP addressing
BACnet Ethernet is used when the device is not IP capable which is very uncommon these

BACnet/IP Network Configuration
Unlike BACnet Ethernet devices, BACnet/IP devices understand how to use IP addressing
A BACnet/IP device knows how to send a message over IP to another BACnet/IP device
Device-to-device messages such as ReadProperty are called "unicast" messages
Services such as Who-Is are broadcast" messages since they are sent to every devices on the

Single Segment BACnet/IP Architecture

Internetworking Routers

Simply put, internetworking is required whenever we need to couple dissimilar network

technologies. This coupling is achieved using a device called a router.
A router relays BACnet messages between different transport network types by re-framing the
same BACnet message into the format of the other network type.
The router is physically attached to two or more LAN segments and continuously listens to
messages on all LAN segments.
When the router "hears" a message on one segment, that is destined for a device on another LAN
segment,t the
th router
t repeats t the
th message on the
th other
th LAN segment. t

BACnet/IP with BBMDs
When using IP routers, Multi-Segment BACnet/IP Architecture
broadcast messages (used
by BACnet for certain
services) are generally not
propagated by standard IP
Tunnel Routers are required
BBMDs (BACnet Broadcast
Management Device) were
developed for this purpose.
It uses a BDT(Broadcast
Distribution Table) to
identify peer BBMDs and
special BVLL (BACnet
Virtual Link Layer)
messages to indicate that
the enclosed message is to
be broadcast to all BACnet
devices on the remote IP

Broadcast Forwarding
Device 5 wants to discover Multi-Segment BACnet/IP Architecture
the BACnet network and
send a Who-Is request
(Green arrow).
arrow) The request
is broadcasted on subnet1
but it is blocked at the
router and does not get
propagated to subnet 2.
The BBMD on subnet1
sends a Unicast message
to the other BBMDs listed in
its BDT table (Orange subnet 1
arrow). subnet
b t2
The BBMD on subnet 2
receives the message and
forward the broadcasts on
subnet 2 ((Red arrow). )

Foreign Devices
Using the same concept of Multi-Segment BACnet/IP Architecture
the BBMDs with their BDT
table the BACnet Foreign
Devices can be registered
in a FDT (Foreign device
When a broadcast
message is sent on the IP
subnet 1 and there are no
BBMDs on subnet 3. The
controller will forward the
message as Unicast subnet 1
messages to all the subnet
b t3
devices that are in the

BACnet Network Configuration
Typical Network Addressing
Device addressing allows the coordinated transfer of messages between the intended devices on the
data bus and with devices connected to the internetwork
For this, each device connected to the BACnet MS/TP data bus is identified by a MAC address, a
De ice Instance,
Device Instance and a Net
ork N
The MAC Address uniquely identifies a device on a data bus segment
The MAC address is an identifier given to a BACnet device that must be unique on one network segment
Master devices can have addresses 0 to 127 and slave devices can have addresses 0 to 254
MAC address is often set with DIP switches in a binaryy scheme. 8 switches offer 256 combinations of
Devices on another network segment can have the same MAC Address as messages are not passed at the
internetwork level using the MAC Address
The Device Instance uniquely identifies a device across the BACnet internetwork
The Device Instance is any number between 0 and 4 194 303
It is with the Device Instance that messages are exchanged between BACnet devices
The Device Instance is also used by routers to forward messages to devices located elsewhere in the
Unlike a MAC Address, a Device Instance cannot be reused elsewhere in the BACnet internetwork
The Network Number is any number between 0 and 65 534
Each segment of the network have a different Network Number
A network number is used in LAN for routing purposes

Networking Considerations
About the Addressing System
Adopting a numbering system for MAC Addresses, Device Instance Numbers, and Network
Numbers is part of the best practices
Good network planning requires a well thought-out numbering scheme for device MAC Addresses,
Device Instance Numbers (DI), and Network Numbers
Best practice recommends the following scheme, as it reuses the MAC Address and Network
Number in the Device Instance number to make it easier for a network administrator to know where
a device is located in the network

Networking Considerations
About the reserved MAC Addresses
The MAC Address is a number from 0 to 255; however best practice recommend reserving some
MAC Addresses for common commissioning and maintenance tasks
For example, when a portable router is set to use MAC C Address 1, one off these reserved MAC C
Addresses, it can be temporarily connected with certainty to any data bus of any site without
conflicting with other devices already connected to the data bus
The MAC Addresses to reserve are shown below

Networking Considerations
About the MAC Address Range
Addresses 0 to127 must be used for master devices, not for slave devices
Gaps or pockets of unassigned device MAC Addresses should be avoided as this reduces bus
f while the passed token negotiates these address gaps to find
f the next active MAC
Address on the data bus. This eliminates the passing of the token to unused MAC Addresses
situated after the final Master device which would unnecessarily slow-down the data bus.
The used set of addresses at the beginning or the end of a assigned addresses are also to be
avoid To limit the range of addresses being used
avoid. used, a minimum and a maximum can be set in the
bus master
Leave 5 to10 free addresses to the range limit for future easy network expansion
Slave devices cannot accept the token, and therefore can never initiate communications. A Slave
can only communicate on the data bus to respond to a data request addressed to it from a Master
Addresses 128 to 254 are strictly for slave devices
Address 255 can not be assigned, it is used as a wildcard address in all broadcast messages sent

A conscious decision was made while developing BACnet to focus on issues that are important for
day-to-day operation of building control systems. This is the area where the need is greatest and
the impact of a standard protocol is most important.
BACnet is not "plug-and-play."
"plug and play " In general it is not possible to simply remove one controller and
connect another in its place. Replacement controllers must be carefully matched to ensure that
they have the appropriate control functionality and communication capabilities. When expanding a
system more is involved than just wiring up additional controllers.
BACnet provides interoperability by defining a common, abstract view of information. Each vendor
creates their own way to store and use that information in their products. It is still necessary to
have vendor-specific configuration tools and programming languages. This is likely to remain true
for quite some time.
BACnet does not make configuration problems harder to solve. But, good choices, best practices
and cost vs performance decisions have to be made.
This conclude the BACnet Fundamentals training presentation.
Fallowing this training, Distech Controls recommends to all network integrators and programmers
to take the training 851 BACnet Network Design and Programming. That next course covers in
details the config
ration a BACnet network
net ork and BACnet controllers using sing Distech Controls

BACnet Fundamentals e-Training
Course ID: 801-10
Copyright Distech Controls Inc.
June 2010, Canada.

While all efforts have been made to verify the accuracy of information in this document, Distech
Controls is not responsible for damages or claims arising from the use of this document. Persons
using this document are assumed to be trained HVAC professionals and are responsible for using
the correct wiring procedures, correct override methods for equipment control and maintaining safe
working conditions in fail-safe environments. Distech Controls reserves the right to change, delete
or add to the information in this document at any time without notice.

Distech Controls and the Distech Controls logo are trademarks of Distech Controls Inc. BACnet is
a registered trademark of ASHRAE. Windows, Windows XP, Windows Vista, and Visual Basic .Net
are registered trademarks of Microsoft Corporation. NiagaraAX is a registered trademark of Tridium