BACnet protocol supports numbers of different Services which uses to communicate between different building automation devices. BACnet supports few services to broadcast message and to identify the BACnet devices in Network like Who-is, I-Am, Who-Has, I-Have and many more.
BACnet services are basically used to make a request by one BACnet device to another BACnet device to ask it to do something. Services are grouped in 5 different categories.
- Alarm and Event Services (alarms and changes of state)
Usage: Uses to manage communication related to alarms and events.
- File Access Services (trend data, program transfer)
Usage: Uses to access and modify files.
- Object Access Services (read, write, create, delete)
Usage: Uses to modify properties of BACnet objects.
- Remote Device Management Services (discover, time synchronization, initialize, backup and restore database)
Usage: Uses to initialise connection, time synchronization, device communication control etc…
- Virtual Terminal Services (human machine interface via prompts and menus)
Usage: Old services which were used to provide bi-directional exchange of character-oriented data.
#Who-is: uses to request BACnet devices in network to get response for their availability.
#I-Am: uses to send with Who-is to represent their presence to the Who-is receiver.
One BACnet IP device broadcast Who-is request in Network along with I-Am service information. In who-is service it asked the receiver device for their presence and share their availability.
#Who-has: uses to send a request to find out which BACnet device contain particular Object Name or object type and instance ID.
#I-have: uses to send acknowledgement to inform that I am containing particular Object Name or Object type and Instance ID.
Apart from above services it supports other 60 Support service matrix properties like Read-Property, Write-Property, Device Communication Control and many more.
Device Communication Control
Atomic Read File
Atomic Write File
UTC Time Synchronization
Confirmed COV Notification
Unconfirmed COV Notification
Read Property Multiple
Read Property Conditional
Write Property Multiple
Get Alarm Summary
Get Event Information
Get Enrollment Summary
Confirmed Event Notification
Unconfirmed Event Notification
Unconfirmed Text Message
Confirmed Text Message
Remove List Element
Unconfirmed Private Transfer
Confirmed Private Transfer
***Read Property: It uses by different objects to read the data. Mostly BACnet Objects supports Read Property. Every object supports different Read Property frames. It will read the value from pointer and write in a buffer memory to decode It later.
***Write Property: It writes the values on different objects. Mostly BACnet objects supports Write property. Every Object supports different write property frames. It will read the value from buffer and write at particular pointer position.
#Device Communication Control: It uses to discover the BACnet devices in network. It also uses to sync time between BACnet devices in a network and to reinitialization of communication.
#Reinitialization: It uses to establish the connection between different BACnet devices. If connection breaks during transmitting data, the same connection which established by Device Communication Control service. It uses to resecure it by reconnecting it.
**Atomic Read/Write File: It means that only one read or write operation can take place at a time. Other attempts to access the file/Object during an access will either fail or be held off.
#Time synchronization: A message synchronized by designated device which have clock to other device, so that the device may be synchronized. Default it will set for local Time synchronization. Which manually has been set on device.
#UTC Time Synchronization: It will act similarly as Time Synchronization service, only difference is Time Synchronization service will store time in the same format it received from designated device and UTC Time synchronization service will convert local time into UTC format.
*COV describes in different services as below:
- Subscribe COV
- COV Subscribe Property
- COV Notification
- Unconfirmed COV Notification
*Subscribe COV: COV stands for Change of value. Such services like Alarms and Events occurs at that time we require the device to post the value without spending time in running cycle of reading all point.
*Confirm COV Notification: COV notification allows to send out notices when a change occurs. COV notifications are generated by the application program monitoring Objects directly related to control operations. It means it questions the COV publisher that the value of any particular property object has been modify or not.
*COV Subscribe Property: COV Subscribe Property is a service which sent a revert request that it is COV in the object property which has been changed.
*Unconfirmed COV Notification: Unconfirmed COV Notification tells subscribing devices that a change has occurred to one or more properties of a particular object.
***Read Property Multiple: It allows to return the values of multiple properties of multiple objects to save the transection period and make communication fast. It reads the multiple objects values at a same time in a queue.
Read Property Conditional: It allows you to read the multiple properties at a same time and Returns the values of multiple properties in multiple objects. To allow this service Read Range service must be enabled.
***Read Range: It allows you to read the multiple properties values in particular range from multiple objects in a single shot. It makes a pack of all values and then transmit so save the reading period and make communication faster. Read Range also calls Read Group sometimes. It makes communication fast.
***Write Group: It allows you to write the multiple properties values in particular range on multiple objects in single shot.
***Write Property Multiple (WPM): It uses to send request to write multiple property of object of device which execute simultaneously.
*Get Alarm Summary: It is client-based service which uses to obtain the summery of “active alarms”. It means that to get the status of those Event_State properties whose value is not equal to NORMAL and a Notify_Type property whose value is ALARM.
*Get Event Information: It helps to retrieve all missed events; you can still retrieve and acknowledge this event using the Event Information service which are already started before it started..
*Get Enrollment Summary: This service helps to retrieves a summary of all objects within the
device that matches a set of filter criteria that you define.
*Acknowledge Alarm: When any Alarm triggers, with this service we can acknowledge that alarm. We can also acknowledge those alarms which are already triggered during commissioning.
*Confirmed Event Notification: Confirmed COV Notification message when detects change of internal status and any fire detector detects fire occurrence, it transmits a Confirmed Event Notification message to confirm its status.
*Unconfirmed Event Notification: Unconfirmed COV Notification message when a false change of internal status detected and any false fire detector detects fire occurrence, it transmits a Unconfirmed Event Notification message to confirm its status.
#Unconfirmed Text Message: The UnconfirmedTextMessage Services transport text messages to other single or multiple BACnet devices, such as printers.
#Confirmed Text Message: The ConfirmedTextMessage Services transport text messages to any other single device, such as printers.
*Life Safety Operations: this service added to provide silent and reset compatibilities needed to life safety system. Later unsilenced property added in this particular service.
***Add List Element: It is used by BACnet Client to add one or more list elements to an object property.
***Remove List Element: It is used by BACnet Client to remove one or more list elements to an object property.
***Create Object: Sometime objects are not created on BACnet device. By using Create Object command we can create a new Object remotely and assign its property type remotely using 3rd part application or proprietary application.
***Delete Object: If require sometimes have to delete an object and its property to create customize object as per requirement using 3rd part application or proprietary application, this service help us to remove an existing object if permissible.
#Unconfirmed Private Transfer: It uses to convey messages to outside the BACnet standard to one or many BACnet devices. It means a service which are not approved by BTL and transfer the data like Vendor ID code and service code.
#Confirmed Private Transfer: It uses to convey messages to outside the BACnet standard to any one BACnet device. It means a service which are not approved by BTL and transfer the data like Vendor ID code and service code.
##VT Open: Before introducing GUI to operate BACnet feature CLI (Command line interface) was using in which we needed to implement VT Open service to open a session with a remote device.
##VT Data: After initiating a successful connection between BACnet devices VT Data services use to send text from one device to another.
##VT Close: VT Close Service uses to close session with remote device.
* Alarm & Event Services
** File Access Services
*** Object Access Services
# Remote Device Management Service
## Virtual Terminal Services