Skip to content
Version 6.1.0
Contact Us

Load Control

A Load Control object lets a utility, a demand-response system or another controller ask a device to shed electrical load for a set time. The device decides how to shed; the client only sees whether it is complying. It suits building controllers that take part in demand response.

  • Shed 20 percent of a building’s load during a peak event
  • Let a utility gateway start a demand-response event
  • Schedule a shed for a later start time
  • Report whether the building met the requested shed
Property What it holds
Present_Value The shed state: inactive, request pending, compliant or non-compliant.
Requested_Shed_Level How much to shed, as a percent, an amount or a level.
Start_Time When the shed should begin. Writing it starts a request.
Shed_Duration How long the shed lasts, in minutes.
Expected_Shed_Level The level the object expects to reach for the pending or active request.
Actual_Shed_Level The level currently achieved.

Present_Value follows a state machine as requests arrive, start, finish or cannot be met. The object keeps its request across a restart. The standard pairs it with the CHANGE_OF_STATE algorithm on Present_Value. It also sends change-of-value notices for Present_Value.

Enable it with the STACK_OPTION_OBJECT_TYPE_LOAD_CONTROL build option and add each object with BACnetStack_AddObject. Arm change-of-state alarms with BACnetStack_SetAlarmsAndEventsForObjectEnabled and then BACnetStack_SetIntrinsicChangeOfStateAlgorithmEnum; the alarm values are shed states. CASBACnetStackDLL.h declares no function that is specific to Load Control.

Schedule, Command, Notification Class

The properties ASHRAE 135-2024 clause 12.28 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.
Description CharacterString O no no ""
Present_Value BACnetShedState R yes no No default: value-not-initialized.
State_Description CharacterString O no no ""
Status_Flags BACnetStatusFlags R yes no Built by the stack from your callbacks.
Event_State BACnetEventState R yes no 0
Reliability BACnetReliability O no no 0
Requested_Shed_Level BACnetShedLevel W yes yes No default: the read fails.
Start_Time BACnetDateTime W yes yes No default: the read fails.
Shed_Duration Unsigned W yes yes 0
Duty_Window Unsigned W yes yes 0
Enable Boolean W yes yes false
Full_Duty_Baseline Real O no no 0.0
Expected_Shed_Level BACnetShedLevel R yes no No default: the read fails.
Actual_Shed_Level BACnetShedLevel R yes no No default: the read fails.
Shed_Levels BACnetARRAY[N] of Unsigned W1 yes yes 0
Shed_Level_Descriptions BACnetARRAY[N] of CharacterString R yes no ""
Notification_Class Unsigned O2,4 no no 0
Time_Delay Unsigned O2,4 no no 0
Event_Enable BACnetEventTransitionBits O2,4 no no An empty bit string.
Acked_Transitions BACnetEventTransitionBits O2,4 no no An empty bit string.
Notify_Type BACnetNotifyType O2,4 no no 0
Event_Time_Stamps BACnetARRAY[3] of BACnetTimeStamp O2,4 no no No default: the read fails.
Event_Message_Texts BACnetARRAY[3] of CharacterString O4 no no ""
Event_Message_Texts_Config BACnetARRAY[3] of CharacterString O4 no no ""
Event_Detection_Enable Boolean O2,4 no no false
Event_Algorithm_Inhibit_Ref BACnetObjectPropertyReference O4 no no No default: the read fails.
Event_Algorithm_Inhibit Boolean O4,5 no no false
Time_Delay_Normal Unsigned O4 no no 0
Reliability_Evaluation_Inhibit Boolean O6 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 ""