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_LevelagainstExpected_Shed_Leveldocuments 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).
| Property | Datatype | What it holds |
|---|---|---|
Object_Identifier | BACnetObjectIdentifier | The object’s type and instance number, unique within the device |
Object_Name | CharacterString | The human-readable point name, unique within the device |
Object_Type | BACnetObjectType | Always load-control for this object |
Present_Value | BACnetShedState | The current shed state (inactive, shed-request-pending, shed-compliant, shed-non-compliant) |
Status_Flags | BACnetStatusFlags | Four health flags: in-alarm, fault, overridden, out-of-service |
Event_State | BACnetEventState | The object’s current event state (normal or off-normal for a non-compliant shed) |
Requested_Shed_Level | BACnetShedLevel | Writable; the requested amount of load reduction |
Start_Time | BACnetDateTime | Writable; when the requested shed begins |
Shed_Duration | Unsigned | Writable; how long the shed lasts, in minutes |
Duty_Window | Unsigned | Writable; the interval over which the shed level is measured |
Enable | BOOLEAN | Writable; enables the object to respond to shed requests |
Expected_Shed_Level | BACnetShedLevel | The reduction the object expects to achieve for the request |
Actual_Shed_Level | BACnetShedLevel | The reduction the object is actually achieving |
Shed_Levels | BACnetARRAY[N] of Unsigned | Writable; the shed levels the object supports |
Shed_Level_Descriptions | BACnetARRAY[N] of CharacterString | Text describing each supported shed level |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The 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.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
State_Description | CharacterString | General |
Full_Duty_Baseline | REAL | General |
Notification_Class | Unsigned | Intrinsic reporting |
Time_Delay | Unsigned | Intrinsic reporting |
Event_Enable | BACnetEventTransitionBits | Intrinsic reporting |
Acked_Transitions | BACnetEventTransitionBits | Intrinsic reporting |
Notify_Type | BACnetNotifyType | Intrinsic reporting |
Event_Time_Stamps | BACnetARRAY[3] of BACnetTimeStamp | Intrinsic reporting |
Event_Message_Texts | BACnetARRAY[3] of CharacterString | Intrinsic reporting |
Event_Message_Texts_Config | BACnetARRAY[3] of CharacterString | Intrinsic reporting |
Event_Detection_Enable | BOOLEAN | Intrinsic reporting |
Event_Algorithm_Inhibit_Ref | BACnetObjectPropertyReference | Intrinsic reporting |
Event_Algorithm_Inhibit | BOOLEAN | Intrinsic reporting |
Time_Delay_Normal | Unsigned | Intrinsic reporting |
Reliability | BACnetReliability | Fault detection |
Reliability_Evaluation_Inhibit | BOOLEAN | Fault detection |
Value_Source | BACnetValueSource | Commanding |
Audit_Level | BACnetAuditLevel | Auditing |
Auditable_Operations | BACnetAuditOperationFlags | Auditing |
Tags | BACnetARRAY[N] of BACnetNameValue | Tagging and profile |
Profile_Location | CharacterString | Tagging and profile |
Profile_Name | CharacterString | Tagging and profile |
Related Objects
- 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.