Skip to content
Version 6.1.0
Contact Us

Staging

A Staging object turns one number into a pattern of on and off outputs. You define stages, each with a limit and a set of states for a group of binary objects. As the value rises and falls, the object moves between stages and writes the matching states to the binary objects it controls.

  • Stage chillers on as load rises
  • Switch banks of lights by light level
  • Bring boiler stages on and off with demand
  • Stage fans or pumps by pressure
  • Drive several relays from one setpoint
Property What it holds
Present_Value The number that selects the stage. A write is held between Min_Pres_Value and Max_Pres_Value.
Present_Stage The index of the active stage. It is not available until the object has chosen a stage after a restart or a change of the stage table.
Stages The stage table. Each stage has a limit, a deadband and the on or off state for every target.
Target_References The Binary Output, Binary Value or Binary Lighting Output objects the stages control.
Priority_For_Writing The priority used when writing to the targets.

The object has no priority array, and the standard applies no event algorithm to it. COV notifications go out when Present_Value changes by COV_Increment, when Present_Stage changes, or on any change to Status_Flags.

Enable it with the STACK_OPTION_OBJECT_TYPE_STAGING build option. It is on in the full target; in the embedded target, define it yourself (see Configuring a build). CASBACnetStackDLL.h has no function dedicated to this type, so create it with BACnetStack_AddObject. The stack serves the object identifier, object type, property list and status flags itself; your callbacks serve every other property, matched to its datatype. Call BACnetStack_UpdateValue whenever the value you serve changes, so COV, trend logs and alarms see it.

Binary Output, Binary Value, Binary Lighting Output

The properties ASHRAE 135-2024 clause 12.62 defines for this object type.

How to read the table:

  • Conformance is what the standard asks of every object of this type: R is required, W is required and writable by a client, O is optional. A digit after the letter marks a condition in the standard that decides when the property is present or writable, such as support for intrinsic reporting.
  • Present by default: yes means the stack presents the property as soon as you add the object; no means it is optional and you turn it on with BACnetStack_SetPropertyEnabled. This is the stack’s starting setup, so it can differ from the conformance code.
  • Writable is whether a client can write the property by default. Change it with BACnetStack_SetPropertyWritable.
  • not in profile means the stack does not offer this property for this object type.
  • Value when your callback does not answer: “Held by the stack” means the stack stores and serves the value itself and does not ask your callbacks. Otherwise it is the value the stack answers when your callback declines or is not registered.
Property Datatype Conformance Present by default Writable Value when your callback does not answer
Object_Identifier BACnetObjectIdentifier R yes no Held by the stack.
Object_Name CharacterString R yes no "Object <type>,<instance>", such as "Object 0,1" for Analog Input 1.
Object_Type BACnetObjectType R yes no Held by the stack.
Present_Value Real W yes yes No default: value-not-initialized.
Present_Stage Unsigned R yes no 0
Stages BACnetARRAY[N] of BACnetStageLimitValue R1 yes no No default: the read fails.
Stage_Names BACnetARRAY[N] of CharacterString O1 no no ""
Status_Flags BACnetStatusFlags R yes no Built by the stack from your callbacks.
Event_State BACnetEventState R yes no 0
Reliability BACnetReliability R yes no 0
Out_Of_Service Boolean R yes no false
Description CharacterString O no no ""
Units BACnetEngineeringUnits R yes no 95 (no units)
Target_References BACnetARRAY[N] of BACnetDeviceObjectReference R2 yes no No default: the read fails.
Priority_For_Writing Unsigned(1..16) R yes no 0
Default_Present_Value Real O no no 0.0
Min_Pres_Value Real R yes no 0.0
Max_Pres_Value Real R yes no 0.0
COV_Increment Real O3 no no 0.0
Notification_Class Unsigned O4,5 no no 0
Event_Enable BACnetEventTransitionBits O4,5 no no An empty bit string.
Acked_Transitions BACnetEventTransitionBits O4,5 no no An empty bit string.
Notify_Type BACnetNotifyType O4,5 no no 0
Event_Time_Stamps BACnetARRAY[3] of BACnetTimeStamp O4,5 no no No default: the read fails.
Event_Message_Texts BACnetARRAY[3] of CharacterString O5,6 no no ""
Event_Message_Texts_Config BACnetARRAY[3] of CharacterString O5 no no ""
Event_Detection_Enable Boolean O4,5 no no false
Reliability_Evaluation_Inhibit Boolean O no no false
Property_List BACnetARRAY[N] of BACnetPropertyIdentifier R yes no Held by the stack.
Value_Source BACnetValueSource O7,8,9 no no No default: the read fails.
Audit_Level BACnetAuditLevel O10 not in profile not in profile No default: the read fails.
Auditable_Operations BACnetAuditOperationFlags O10 not in profile not in profile No default: the read fails.
Tags BACnetARRAY[N] of BACnetNameValue O no no No default: the read fails.
Profile_Location CharacterString O no no ""
Profile_Name CharacterString O no no ""