Services allow one BACnet device to do something on behalf of another BACnet device. For example, if
one device needs to know a temperature, it can read the Present_Value property of the analog input object
which represents that temperature sensor. The asking device uses a ReadProperty service to do the asking.
BACnet defines several broad categories of services. Object Access services allow devices to read and write
properties, create and delete objects, manipulate lists of data and search for particular objects or
properties. Device Management services let devices be controlled remotely, for example asking a device
to stop communicating for a while, or asking peer devices to identify themselves, or find out if a
device requires reloading and so forth. Alarm and Event services allow devices to communicate alarms
and changes of state, and other exception conditions. File Transfer services allow devices to send
or receive information in bulk form, for example historical trend data or downloading control programs.
Now let’s look at a typical service, the ReadProperty service. This is one of the most basic services
in BACnet and it is used by one BACnet device to ask another BACnet device to provide the value of one
of the properties of a specific object.
You can see that the ReadProperty request requires both an Object Identifier and Property Identifier
to specify which object and which property are to be read. We also provide a message number
which is known as the Invoke ID. The reason for this is that BACnet allows us to send multiple
messages before the first reply is received. In such a case, it is possible that the replies
will arrive in a different order from the requests, as some requests may be easier to fulfill sooner.
The replies include the original message number thus allowing the reply to be matched with the
There are two possibilities. Either the service will succeed and return the requested value, or
the service may fail. For example, there may be no such object defined in the target device.
So this diagram captures both the request and its parameters, as well as the possible types of
replies and their parameters. Taken altogether this fully defines the service. BACnet includes
definitions of many different kinds of services as mentioned earlier.