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

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm