BACnet: The Loop Object

The Loop object is defined by the standard in terms of the object properties representing the external, physical attributes of any category of control loop. The Loop object is a detailed and complex object in the standard.

The optimal flexibility of this object is attained by including three specific gain constants with no assumed values as the units:

  • Proportional Constant
  • Integral Constant
  • Derivative Constant

The developer should pay close attention to these three constants when drafting the object structure for BACnet devices. The suitable gain units are figured by a control algorithm, which is a local matter for the automation developer.

The following table will present the actual properties and datatypes of the Loop object from the BACnet standard:

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Present_Value Real
Description Character String
Status_Flags BACnet Status Flags
Event_State BACnet Event State
Reliability BACnet Reliability
Out_of_Service Boolean
Update_Interval Unsigned
Output_Units BACnet Engineering Units
Manipulated_Variable_Reference BACnet Object Property Reference
Controlled_Variable_Reference BACnet Object Property Reference
Controlled_Variable_Value Real
Controlled_Variable_Units BACnet Engineering Units
Setpoint_Reference BACnet Setpoint Reference
Setpoint Real
Action BACnet Action
Proportional_Constant Real
Proportional_Constant_Units BACnet Engineering Units
Integral_Constant Real
Integral_Constant_Units BACnet Engineering Units
Derivative_Constant Real
Derivative_Constant_Units BACnet Engineering Units
Bias Real
Maximum_Output Real
Minimum_Output Real
Priority_For_Writing Unsigned
COV_Increment Real
Time_Delay Unsigned
Notification_Class Unsigned
Error_Limit Real
Event_Enable BACnet Event Transition Bits
Acked_Transitions BACnet Event Transition Bits
Notify_Type BACnet Notify Type
Event_Time_Stamps BACnet Array (3) of BACnet Time Stamp
Profile_Name Character String

The following example from the standard will present the Loop object structure from an actual building automation application. This example will specifically focus on the air temperature control in a HVAC unit:

Object_Identifier (Loop, Instance 1)
Object_Name “AHU_SAT_LOOP”
Object_Type LOOP
Present_Value 8.3
Description “Supply air temp. PI control”
Status_Flags {FALSE, FALSE, FALSE, FALSE}
Event_State NORMAL
Reliability NO_FAULT_DETECTED
Out_Of_Service FALSE
Update_Interval 1
Output_Units POUNDS_FORCE_PER_SQUARE_INCH
Manipulated_Variable_Reference ((Analog Output, Instance 5),Present_Value)
Controlled_Variable_Reference ((Analog Input, Instance 3), Present_Value)
Controlled_Variable_Value 56.1
Controlled_Variable_Units DEGREES_FAHRENHEIT
Setpoint_Reference ((Analog Value, Instance 7), Present_Value)
Setpoint 57.0
Action DIRECT
Proportional_Constant 0.5
Proportional_Constant_Units PSI_PER_DEGREE_FAHRENHEIT
Integral_Constant 0.1
Integral_Constant_Units PER-MINUTE
Derivative_Constant 0.0
Derivative_Constant_Units NO-UNITS
Bias 9.0
Maximum_Output 15.0
Minimum_Output 3.0
Priority_For_Writing 10
COV_Increment 0.2
Time_Delay 3
Notification_Class 1
Error_Limit 5.0
Event_Enable {TRUE, TRUE, TRUE}
Acked_Transitions {TRUE, TRUE, TRUE}
Notify_Type ALARM
Event_Time_Stamps ((23-MAR-95,18:50:21.2),
(*-*-*,*:*:*.*),
(23-MAR-95,19:01:34.0))

Written by: Scott Cosby

© Chipkin Automation Systems 2007