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

© Chipkin Automation Systems 2007

Did you like this post?

Subscribe To The RSS Feed!
To catch many more articles like this in the future, make it easy on yourself and subscribe to me via RSS. You will not regret it!

Do you have a question?
We will do our best to try and solve any building automation, protocol, integration problem you may have

0 Responses to “BACnet: Multi-state Objects”


  1. No Comments

Leave a Reply