Protocols and data

BACnet objects, properties and point lists

BACnet objects and properties explained: analog, binary and multi-state objects, Present_Value, Units and Status_Flags, the PICS, and how to build a point list another system can use.

A BACnet device publishes its data as objects. Each object represents one point or function, such as a temperature input, a fan command or an operating mode, and carries properties such as its current value, units and status. A usable point list names every object that the project needs, in a form that another system can read without guessing. This guide explains the objects and properties you meet most, and the fields a point list needs.

This guide is part of the BACnet and building protocols series.

Objects

The BACnet Committee's primer describes the object model. Every object has three required properties: Object_Identifier, Object_Name and Object_Type. The identifier combines the object type and an instance number, and it is unique inside one device. Analog-input 1 exists in thousands of controllers. To name a point on a site, you need the device instance as well.

Every BACnet device has exactly one Device object. Its instance number must be unique across the whole BACnet internetwork, because other devices use it to find the device. The discovery guide covers device instances.

The object types you will meet most in energy and HVAC work:

Object typeTypical usePresent_Value
analog-inputA measured value: temperature, flow, powerA real number
analog-outputA physical output: valve position, damperA real number, commandable
analog-valueA software value: set point, calculated valueA real number, often commandable
binary-inputA contact or status: pump running, filter alarmActive or inactive
binary-outputA physical on/off command: start a fanActive or inactive, commandable
binary-valueA software flag: occupancy mode, enableActive or inactive
multi-state-input, -output, -valueA mode with several states: off, heat, cool, autoA state number from 1
schedule, calendarTime programmesVaries
trend-logStored history of another propertyLog records
deviceThe device itselfNone

Properties to read with the value

Present_Value alone is not enough. Read these with it:

PropertyWhy it matters
UnitsThe engineering unit. A value of 68 means little without knowing that it is °F
Status_FlagsFour flags: in alarm, fault, overridden, out of service
ReliabilityWhy a value is faulty: open circuit, over range, no sensor
Out_Of_ServiceWhen true, Present_Value is not taken from the physical input and can be written by hand
Object_Name, DescriptionThe meaning on this site, as the integrator named it
State_Text, Number_Of_StatesThe names of the states of a multi-state object
Active_Text, Inactive_TextThe names of the two states of a binary object
COV_IncrementThe change that triggers a COV report on an analog object; see the COV guide
Priority_Array, Relinquish_DefaultWho is commanding a commandable object, and its value when nobody is

Multi-state values are numbers. State 2 may mean "heat" on one controller and "occupied" on another. Read the state texts from each device, or from the integrator's documentation, and store them in the point list.

The PICS

Every BACnet device should have a Protocol Implementation Conformance Statement (PICS). It lists the object types the device supports, which properties are writable, and which services it supports, such as ReadPropertyMultiple, SubscribeCOV or WriteProperty. Ask for the PICS of each controller model before you promise the owner what the integration will do. A device that does not support ReadPropertyMultiple, for example, needs one request per property, which matters on a slow MS/TP bus.

The PICS describes the product, not the site. The objects that exist on a given controller, and their names, depend on how the integrator programmed it.

Build the point list

A point list is the contract between the BMS integrator and every system that reads the data. For each point, record:

FieldExample
Site point IDAHU-02 supply air temperature
Device instance20102
Network (IP address or network number and MAC)10.20.4.31, or network 12 MAC 7
Object type and instanceanalog-input 3
Object_Name on the deviceAHU02_SAT
Unitsdegrees-celsius
States (binary and multi-state)1 = off, 2 = heat, 3 = cool, 4 = auto
AccessRead only, or writable at priority 12 with owner approval
Poll interval or COV60 s poll
OwnerBMS integrator

Many BMS tools export the objects of a device as a file, often in the EDE (engineering data exchange) spreadsheet format. Use the export as a starting point, then add the site meaning, the access and the owner. A list of 400 exported objects is not a point list until someone has chosen the points the project needs.

Check the list against the device

  1. Read each point, with Units and Status_Flags, and compare it with the BMS front end.
  2. For a sensor, compare with a reference reading, or check that it moves when the plant changes.
  3. For a multi-state point, change the mode and check that the state number and the state text agree.
  4. For a writable point, test the write only with the BMS owner, at the agreed priority, and check the release. The priority array guide explains why.

BACnet objects with Edge

Edge on the ZGW-20 Gateway reads the present value of analog, binary and multi-state input, output and value objects from BACnet/IP controllers. For each point you set the device instance, the object type and instance, and optionally a multiplier and offset. Binary values become 0 or 1, and multi-state values their state number, so keep the state texts in the point list. Output and value objects can be written only when an administrator provisions them for control.

Common questions

What is a BACnet object?

A standard way to represent one piece of data or function in a device, such as a temperature input (analog-input), a fan start command (binary-output) or an operating mode (multi-state-value). Every object has an identifier (type and instance number), a name and a type, plus the properties that its type requires.

What are the most common BACnet object types?

Analog input, output and value; binary input, output and value; multi-state input, output and value; and the Device object, which every BACnet device has exactly one of. Schedule, calendar, trend log and notification class objects are common in controllers.

What is Present_Value in BACnet?

The property that holds an object's current value: the measured temperature of an analog input, or the commanded state of a binary output. Read it together with Units and Status_Flags.

What is a BACnet PICS?

The Protocol Implementation Conformance Statement: the manufacturer's declaration of which BACnet object types, properties and services a device supports. It is the first document to ask for in an integration.