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