BACnet Staging Object

The BACnet Staging object (Clause 12.62) maps an analog value onto discrete stages that drive binary outputs in sequence

What the Staging Object Is

The Staging object, defined in Clause 12.62 of ANSI/ASHRAE 135-2024, maps a single analog value onto a set of discrete stages and drives a collection of binary objects accordingly. It gives a BACnet device a standardized way to sequence staged equipment, turning outputs on and off in steps as a demand value rises and falls. It is the object type behind staging compressors, electric heat, or pumps.

Present_Value is the analog demand written into the object, Stages defines the limit and deadband for each stage plus the pattern of ACTIVE/INACTIVE values to apply, and Present_Stage reports which stage is currently active. Target_References names the binary objects the object writes to, and Priority_For_Writing sets the command priority it uses on those writes. A deadband around each stage limit provides hysteresis so the sequence does not chatter near a boundary. The Staging object may support intrinsic reporting for fault conditions only and applies no event algorithm.

Where You’ll See It

  • Staged heating and cooling. A demand signal drives Staging so electric-heat or compressor stages energize one at a time as load increases, with hysteresis preventing rapid cycling.
  • Lead-lag sequencing. Pumps or fans brought on in sequence as a pressure or flow demand climbs, then dropped in reverse as it falls.
  • Binary output orchestration. One Staging object coordinates several Binary Output points so the control logic writes a single demand instead of managing each stage.

Required Properties

Clause 12.62 requires every Staging object to provide these properties. Datatypes are the spec’s names: REAL is a floating-point number, Unsigned an integer, BOOLEAN a true/false flag, and the BACnet-prefixed types are structured values defined by the standard. Present_Value is writable; the object translates it into stage transitions.

PropertyDatatypeWhat it holds
Object_IdentifierBACnetObjectIdentifierThe object’s type and instance number, unique within the device
Object_NameCharacterStringThe human-readable point name, unique within the device
Object_TypeBACnetObjectTypeAlways staging for this object
Present_ValueREALWritable; the analog demand value the object maps onto a stage
Present_StageUnsignedThe stage currently active for the present value
StagesBACnetARRAY[N] of BACnetStageLimitValueThe limit, deadband, and output pattern for each stage
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Event_StateBACnetEventStateThe object’s current event state (normal or fault for this object type)
ReliabilityBACnetReliabilityWhether the object detects a fault, and if so which
Out_Of_ServiceBOOLEANWhen true, Present_Value is decoupled for testing and override
UnitsBACnetEngineeringUnitsThe engineering units of the demand value
Target_ReferencesBACnetARRAY[N] of BACnetDeviceObjectReferenceThe binary objects the stages write to
Priority_For_WritingUnsignedThe command priority (1 to 16) used when writing to the targets
Min_Pres_ValueREALThe lowest value Present_Value may take
Max_Pres_ValueREALThe highest value Present_Value may take
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The properties integrators meet most are Stage_Names (labels for each stage), Default_Present_Value (the value used on restart), and COV_Increment. The intrinsic-reporting group generally appears or is absent as a set.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Stage_NamesBACnetARRAY[N] of CharacterStringGeneral
Default_Present_ValueREALGeneral
COV_IncrementREALCOV reporting
Notification_ClassUnsignedIntrinsic reporting
Event_EnableBACnetEventTransitionBitsIntrinsic reporting
Acked_TransitionsBACnetEventTransitionBitsIntrinsic reporting
Notify_TypeBACnetNotifyTypeIntrinsic reporting
Event_Time_StampsBACnetARRAY[3] of BACnetTimeStampIntrinsic reporting
Event_Message_TextsBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Message_Texts_ConfigBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Detection_EnableBOOLEANIntrinsic reporting
Reliability_Evaluation_InhibitBOOLEANFault detection
Value_SourceBACnetValueSourceCommanding
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Binary Output: the stage targets a Staging object drives on and off.
  • Multi-state Output: another way to command a small set of discrete states, driven directly rather than mapped from an analog demand.
  • Analog Value: a software analog point that can supply the demand a Staging object maps.

What Chipkin Provides

The Staging object is a first-class object type in the CAS BACnet Stack, served with its stage definitions and target references; the stage-transition behavior is object behavior the device supplies. Talk to us about modeling your device’s points.