BACnet Schedule object
BACnet: The Schedule Object
The Schedule object is defined by the standard as a periodic schedule of events that may repeat within a range of dates. The schedule object is categorized into two types of days:
- Normal Days in a Week
- Exception Days
The two types can entail scheduled events for an entire day or portions of a day. The developer may choose exceptions at other times and dates with this object type as well.
The Schedule object essentially acts as a bridge between scheduled times and dates, and the writing of certain values to specific properties and objects concerning the schedule.
The following table will present the actual properties and datatypes of the Schedule object from the BACnet standard:
Property | Datatype |
Object_Identifier | BACnet Object Identifier |
Object_Name | Character String |
Object_Type | BACnet Object Type |
Present_Value | Any |
Description | Character String |
Effective_Period | BACnet Data Range |
Weekly_Schedule | BACnet Array(7) of BACnet Daily Schedule |
Exception_Schedule | BACnet Array(N) of BACnet Special Event |
Schedule_Default | Any |
List_of_Object_Property_References | BACnet Device Object Property Reference |
Priority_For_Writing | Unsigned (1…16) |
Status_Flags | BACnet Status Flags |
Reliability | BACnet Reliability |
Out_of_Service | Boolean |
Profile_Name | Character String |
The state of the Schedule object is described by the Present_Value property from the above table. The Present_Value property is figured through calculations that are considered a local matter, but the calculations use time and value variables from the Weekly_Schedule and Exception_Schedule properties with a default value for no effective schedules.
A special note concerning the Schedule object must be mentioned in this article. The versions of this object prior to revision four of the standard will only support schedules that define a whole day from midnight to midnight. For the previous versions, compatibility can be achieved by a specific format in the standard. Weekly and Exception schedule value(s) that start with "00:00"³ and no use of any "NULL" values will solve this issue.
The following example from the standard will examine the Schedule object structure from an actual building automation application. This example will specifically focus on a roof HVAC unit that controls a specific room in a school during the calendar year:
Object_Identifier | (Schedule, Instance 2) |
Object_Name | "Rm208Sched" |
Object_Type | SCHEDULE |
Present_Value | ACTIVE |
Description | "Room 208 Schedule" |
Effective_Period | ((5-SEP-1995)-(10-JUN-1996)) |
Weekly_Schedule | {((8:00,ACTIVE),(17:00,INACTIVE)), ((8:00,ACTIVE)),((8:00,ACTIVE),(17:00,INACTIVE)), ((8:00,ACTIVE),(17:00,INACTIVE),(19:00,ACTIVE),(23:30,INACTIVE)), ((8:00,ACTIVE),(17:00,INACTIVE)),((00:00,INACTIVE)), ((10:00,ACTIVE),(17:00,INACTIVE))} |
Exception_Schedule | {((23-NOV-1995),(0:00,INACTIVE),10), ((HOLIDAYS,(0:00,INACTIVE),11), ((5-MAR-1996)-(7-MAR-1996),((0:00,INACTIVE), (9:00,ACTIVE),(14:00,INACTIVE)),6),((8-MAR-1996),((10:00,INACTIVE),(11:00,NULL)),7)} |
List_Of_Object_Property_References | ((Device, Instance 12),(Binary Output, Instance 9), Present_Value) |
Priority_For_Writing | 15 |
Status_Flags | {FALSE, FALSE, FALSE, FALSE} |
Reliability | NO_FAULT_DETECTED |
Schedule_Default | INACTIVE |
Out_Of_Service | FALSE |
Written by: Scott Cosby
© Chipkin Automation Systems 2007
Comments (1)
One Response to "BACnet: The Schedule Object"
-
Siddharth Anan says: November 23, 2010 at 8:58 pm
This is a good article about scheduling but…….is this same feature also available on opensource bacnet stack??
Reply