BACnet: The Loop Object
BACnet Integration Solutions
Chipkin has BACnet solutions for almost every situation. We have over 20+ years experience in BACnet integration, check out our BACnet Products:
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