BACnet: Event Enrollment Object
The Event Enrollment object is defined by the standard as information related to the management of events for BACnet systems. Events are essentially changes in the value of any property concerning any object that meets specific criteria.
The central purpose for the Event Enrollment object is to define an event, and offer the developer a connection between the event occurrence and the transmission of notification messages.
The Event Enrollment object contains the following information for effective operation:
- Event Type Description
- Event Occurrence Notification
- Device Notification
The following table will present the actual properties and associated datatypes of the Event Enrollment object from the BACnet standard:
Property | Datatype |
Object_Identifier | BACnet Object Identifier |
Object_Name | Character String |
Object_Type | BACnet Object Type |
Description | Character String |
Event_Type | BACnet Event Type |
Notify_Type | BACnet Notify Type |
Event_Parameters | BACnet Event Parameter |
Object_Property_Reference | BACnet Device Object Property Reference |
Event_State | BACnet Event State |
Event_Enable | BACnet Event Transition Bits |
Acked_Transitions | BACnet Event Transition Bits |
Notification_Class | Unsigned |
Event_Time_Stamps | BACnet Array (3) of BACnet Time Stamp |
Profile_Name | Character String |
The BACnet standard states that there's a specific relationship among three properties:
- Event_Type
- Event_State
- Event_Parameters
The Event_Type represents the algorithm used to determine the Event_State. The Event_Parameters property provides certain parameters required by the algorithm. The developer should pay special attention to the relationship of these three properties.
The following table from the standard will examine the three properties and their associated values:
Event_Type | Event_State | Event_Parameters |
Change_of_ Bitstring | Normal OffNormal | Time_Delay Bitmask List_of_Bitstring_Values |
Change_of_State | Normal OffNormal | Time_Delay List_of_Values |
Change_of_Value | Normal OffNormal | Time_Delay Bitmask Referenced_Property_Increment |
Command_Failure | Normal OffNormal | Time_Delay Feedback_Property_Reference |
Floating_Limit | Normal High_Limit Low_Limit | Time_Delay Setpoint_Reference Low_Diff_Limit High_Diff_Limit Deadband |
Out_of_Range | Normal High_Limit Low_Limit | Time_Delay Low_ Limit High_ Limit Deadband |
Buffer_Ready | Normal | Notification_Theshold |
Change_of_Life_Safety | Normal OffNormal Life_Safety_Alarm | Time_Delay List_of_Alarm_Values List_of_Life_Safety_Alarm_Values Mode_Property_Reference |
The next two examples from the standard will reveal the Event Enrollment object structure from an actual automation application. Specifically, the two examples will involve temperature control in a certain room of a building:
Property: Object_Identifier = (Analog Input, Instance 2)
Property: Object_Name = "Zone1_Temp"
Property: Object_Type = ANALOG_INPUT
Property: Present_Value = 86.0
Property: Description = "Receptionist Lobby Temp"
Property: Device_Type = "PT 3K RTD"
Property: Status_Flags = {FALSE, FALSE, FALSE, FALSE}
Property: Event_State = NORMAL
Property: Reliability = NO_FAULT_DETECTED
Property: Out_Of_Service = FALSE
Property: Update_Interval = 5
Property: Units = DEGREES_FAHRENHEIT
Property: Min_Pres_Value = 55.0
Property: Max_Pres_Value = 95.0
Property: Resolution = 0.1
The Analog_Input object above is assumed for the following Change_of_Value Event example, and the object is located in Device 12.
Property: Object_Identifier = (Event Enrollment, Instance 2)
Property: Object_Name = "Zone1TempCOV"
Property: Object_Type = EVENT_ENROLLMENT
Property: Description = "Zone 1 Temperature COV"
Property: Event_Type = CHANGE_OF_VALUE
Property: Notify_Type = EVENT
Property: Event_Parameters = (5, 0.25)
Property: Object_Property_Reference = ((Device, Instance 12),(Analog Input, Instance 2), Present_Value)
Property: Event_State = NORMAL
Property: Event_Enable = (TRUE, FALSE, FALSE)
Property: Acked_Transitions = (TRUE, TRUE, TRUE)
Property: Event_Time_Stamps = ((23-MAR-95,18:50:21.2),(*-*-*,*:*:*.*),(23-MAR-95,19:01:34.0))
Written by: Scott Cosby