BACnet: Priority Array

The BACnet Priority Array is a specific property type described by the standard as one of the command prioritization mechanisms.

The developer should be aware of the manner in which this property type functions concerning priorities within building control systems.

The Priority Array is further defined by the standard as a read-only property that consists of commands that categorized by priority levels of decreasing order. NULLs may also exist in this property type as well. The highest priority will reside with the lowest array index and a non-NULL value will represent the active command.

Prioritized commands are essentially those commands that are specific towards commandable properties. The following is a parameter example from the BACnet standard:

  • Property Identifier: Commandable_Property
  • Property Value: Desired Value
  • Priority: Priority

The following table from the BACnet standard will examine the common command priorities of the priority array:

Priority Level Application
1 Manual-Life Safety
2 Automatic-Life Safety
3 Available
4 Available
5 Critical Equipment Control
6 Minimum On/Off
7 Available
8 Manual Operator
9 Available
10 Available
11 Available
12 Available
13 Available
14 Available
15 Available
16 Available

Command entities are assigned one of the sixteen priority levels. These assignments are usually a matter for the developer.

The table may include other commands such as the following building automation related applications mentioned in the BACnet standard:

  • Temperature Override
  • Demand Limiting
  • Duty Cycling
  • Scheduling

The following priority array structure example from an actual building automation application was obtained from the Synergy lighting control system developed by Lithonia
Lighting. The following are the local priorities used for the Synergy system:

#define PRIO_PRIORITY_ON 3 /* Synergy Unique */
#define PRIO_PRIORITY_OFF 4 /* Synergy Unique */
#define PRIO_MANUAL_OPERATION 8 /* only used with flash to find */
#define PRIO_NORMAL_OPERATION 10 /* Synergy Unique */
#define PRIO_PRIORITY_LOW 13 /* Synergy Unique */

Because the BACnet standard does not specifically indicate the automation application of lighting controls. The developers at Lithonia Lighting essentially made their own priority decisions when they implemented the BACnet protocol in the Synergy design.

The following paragraph was obtained from a PDF source that describes the priority assignment for effective operation of the lighting control system by Lithonia Lighting:

“It is strongly suggested that writes intending to turn lighting ON be made at command priority 10 and writes intending to turn lighting OFF write a NULL unless the intention is to forcibly override the normal functioning of the lighting controls.”

Written by: Scott Cosby
© Chipkin Automation Systems 2007