BACnet: Multi-state Objects
Multi-state objects are very important in operational state description of a BACnet device. There are three types of Multi-state objects described in the BACnet standard:
- Multi-state Input
- Multi-state Output
- Multi-state Value
All three object types use the four required BACnet standard properties. Refer to the article on BACnet Objects by the same author for a more detailed explanation.
The Multi-state Input Object represents the result from an algorithmic process within a BACnet device. This mathematical process is considered a local task, and not defined by the standard. The result from the process may come from a logical combination of binary inputs or the threshold of one or more analog inputs.
The Multi-state Output Object represents the physical outputs or processes for a BACnet device. The specific functions of the device or process are a matter for the product vendor or developer. Examples of outputs can include active/inactive conditions or in the form of an analog output value.
The Multi-state Value Object is essentially a control system parameter in the memory of a BACnet device. Similar to the other Multi-state objects, the associated functions are a local matter, and not specified by the BACnet standard. State examples can include the active/inactive condition of inputs and outputs or the value of an analog input or output.
The following will illustrate the defining structure of the three Multi-state objects in actual building automation applications from the BACnet standard with associated properties as well.
Multi-state Input Object Example of a Two-Speed Fan:
Object_Identifier = (Multi-state Input, Instance 1)
Object_Name = "Fan1_Input"
Object_Type = MULTI_STATE_INPUT
Present_Value = 2
Description = "2-speed Fan#1"
Device_Type = "ZZZ Fan Motor"
Status_Flags = {FALSE, FALSE, FALSE, FALSE}
Event_State = NORMAL
Reliability = NO_FAULT_DETECTED
Out_Of_Service = FALSE
Number_Of_States = 3
State_Text = ("Off", "On_Low", "On_High")
Time_Delay = 3
Notification_Class = 4
Alarm_Values = (3)
Fault_Values = (2)
Event_Enable = {TRUE, TRUE, TRUE}
Acked_Transitions = {TRUE, TRUE, TRUE}
Notify_Type = EVENT
Event_Time_Stamps = ((23-MAR-95,18:50:21.2), (*-*-*,*:*:*.*), (23-MAR-95,19:01:34.0))
Multi-state Output Object Example of a Three Position Switch:
Object_Identifier = (Multi-state Output, Instance 2)
Object_Name = "3-POS-SW"
Object_Type = MULTI_STATE_OUTPUT
Present_Value = 1
Description = "3 POSITION SWITCH #1"
Status_Flags = {FALSE, FALSE, FALSE, FALSE}
Event_State = NORMAL
Reliability = NO_FAULT_DETECTED
Out_Of_Service = FALSE
Number_Of_States = 3
State_Text = {"Position_1", "Position_2", "Position_3"}
Priority_Array = {NULL...NULL}
Relinquish_Default = 1
Multi-state Value Object Example of a Ventilator Unit Operational Mode:
Object_Identifier = (Multi-state Value, Instance 1)
Object_Name = "UV39"
Object_Type = MULTISTATE_VALUE
Present_Value = 2
Description = "UnitVent Room 39"
Status_Flags = {FALSE,FALSE,FALSE,FALSE}
Event_State = NORMAL
Reliability = NO_FAULT_DETECTED
Out_Of_Service = FALSE
Number_Of_States = 4
State_Text = ("Unoccupied","Warmup","Occupied","Setback")
If you have any questions about BACnet, or connecting BACnet devices to your other devices feel free to contact us
We are here to help you.
Written by: Scott Cosby