WHAT IS A BACNET COMMAND 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 Command object is a very important part of the operation of a BACnet device. The Command object writes to a group of object properties through action code(s) within the Present_Value property. When this writing occurs, the Command object will start a sequence of actions in the BACnet device(s).
The Command object like the object in the previous article by the same author uses the four properties required by the BACnet standard. In addition, five more important properties are included in the operation of this object.
The following table will list the properties and datatypes of the Command object from the BACnet standard:
Property | Datatype |
Object_Identifier | BACnet Object Identifier |
Object_Name | Character String |
Object_Type | BACnet Object Type |
Present_Value | Unsigned |
In_Process | Boolean |
All_Writes_Successful | Boolean |
Action | BACnet Array of Action List |
Action Text | BACnet Array of Character String |
Profile_ Name | Character String |
The Command object can be a powerful aspect with beneficial applications, but at the same time this object can cause confusion and problems for the developer. Certain issues must be observed concerning the Command object:
- Proper configuration of the Command object.
- Proper device configuration concerning the Command object.
- Closely monitor the In_Process property of the Command object, due to the possibility of the object commanding itself.
The following example from the BACnet standard will reveal the Command object structure from an actual building automation application. Specifically, an elevator subsystem where a floor of the building is shut off when in the unoccupied mode:
Object_Identifier = (Command, Instance 1)
Object_Name = "ZONE43CONTROL"
Object_Type = COMMAND
Description = "Fourth Floor, West Wing Office Suite"
Present_Value = 2
In_Process = FALSE
All_Writes_Successful = TRUE
Action = {((,(Analog Value, Instance 5), Present_Value,,65.0, 8,,TRUE,TRUE),
(,(Binary Output, Instance 3), Present_Value,,INACTIVE,8,1,TRUE,TRUE),
((Device, Instance 1), (Binary Value, Instance 1),Present_Value, ,INACTIVE, 8,1,TRUE,TRUE)), ((,(Analog Value, Instance 5), Present_Value,,72.0,
8,2,TRUE,TRUE), (,(Binary Output, Instance 3), Present_Value,
,ACTIVE,8,,TRUE,TRUE), ((Device, Instance 1), (Binary Value, Instance 1),Present_Value,,ACTIVE, 8,,TRUE,TRUE))}
Action_Text = {"Unoccupied", "Occupied"}
Written by: Scott Cosby