BACnet Load Control Object

The BACnet Load Control object (Clause 12.28) manages sheddable load for demand response: required and optional properties with datatypes.

What the Load Control Object Is

The Load Control object, defined in Clause 12.28 of ANSI/ASHRAE 135-2024, manages a sheddable electrical load for demand response. It gives a BACnet device a standardized way to accept a request to reduce power, schedule when the reduction happens, and report whether it is complying. A utility or energy-management head end (the central BMS server) uses it to curtail load during peak periods without custom logic per device.

A client writes Requested_Shed_Level along with Start_Time, Shed_Duration, and Duty_Window to ask for a reduction; the object then reports its state in Present_Value (a shed state such as inactive, shed-request-pending, or shed-compliant) and reports how much it can and does reduce in Expected_Shed_Level and Actual_Shed_Level. Present_Value is a reported shed state, not a commanded output, so the Load Control object is not commandable through a priority array. When it supports intrinsic reporting it applies the CHANGE_OF_STATE event algorithm, alarming through the event notification services when it cannot meet a requested shed.

Where You’ll See It

  • Demand response. A utility signal drives a Load Control object to shed HVAC or lighting load during a peak event, and the object reports whether the target was met.
  • Peak-demand limiting. A building energy manager curtails discretionary loads to stay under a demand threshold, coordinated through Load Control objects on each panel.
  • Compliance reporting. Actual_Shed_Level against Expected_Shed_Level documents how much reduction the device actually delivered during a shed.

Required Properties

Clause 12.28 requires every Load Control object to provide these properties. Datatypes are the spec’s names: Unsigned is an integer, BOOLEAN a true/false flag, REAL a floating-point number, and the BACnet-prefixed types are structured values defined by the standard. Several shed-request properties are writable (marked below).

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 load-control for this object
Present_ValueBACnetShedStateThe current shed state (inactive, shed-request-pending, shed-compliant, shed-non-compliant)
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Event_StateBACnetEventStateThe object’s current event state (normal or off-normal for a non-compliant shed)
Requested_Shed_LevelBACnetShedLevelWritable; the requested amount of load reduction
Start_TimeBACnetDateTimeWritable; when the requested shed begins
Shed_DurationUnsignedWritable; how long the shed lasts, in minutes
Duty_WindowUnsignedWritable; the interval over which the shed level is measured
EnableBOOLEANWritable; enables the object to respond to shed requests
Expected_Shed_LevelBACnetShedLevelThe reduction the object expects to achieve for the request
Actual_Shed_LevelBACnetShedLevelThe reduction the object is actually achieving
Shed_LevelsBACnetARRAY[N] of UnsignedWritable; the shed levels the object supports
Shed_Level_DescriptionsBACnetARRAY[N] of CharacterStringText describing each supported shed level
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The properties integrators meet most are Full_Duty_Baseline (the reference load the shed is measured against) and State_Description (text for the current shed state). The intrinsic-reporting group generally appears or is absent as a set.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
State_DescriptionCharacterStringGeneral
Full_Duty_BaselineREALGeneral
Notification_ClassUnsignedIntrinsic reporting
Time_DelayUnsignedIntrinsic 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
Event_Algorithm_Inhibit_RefBACnetObjectPropertyReferenceIntrinsic reporting
Event_Algorithm_InhibitBOOLEANIntrinsic reporting
Time_Delay_NormalUnsignedIntrinsic reporting
ReliabilityBACnetReliabilityFault detection
Reliability_Evaluation_InhibitBOOLEANFault detection
Value_SourceBACnetValueSourceCommanding
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Analog Output: the commandable output a Load Control action ultimately curtails.
  • Schedule: time-of-day control that can enable or disable load-shedding windows.
  • Notification Class: routes the CHANGE_OF_STATE notification a non-compliant shed raises.

What Chipkin Provides

The Load Control object is modeled in the CAS BACnet Stack and served with its shed-request and compliance properties; the load-shed state machine itself is object behavior the device supplies. Talk to us about modeling your device’s points.