BACnet_Schedule

The Schedule object type (WinCC OA datapoint type) defines a standardized object used to describe a periodic schedule that may recur during a range of dates, with optional exceptions at arbitrary times on arbitrary dates. The Schedule object also serves as a binding between these scheduled times and the writing of specified "values" to specific properties of specific objects at those times.

Schedules are divided into days, of which there are two types: normal days within a week and exception days. Both types of days can specify scheduling events for either the full day or portions of a day, and a priority mechanism defines which scheduled event is in control at any given time.

The current state of the Schedule object is represented by the value of its Present_Value property, which is normally calculated using the time/value pairs from the Weekly_Schedule and Exception_Schedule properties, with a default value for use when no schedules are in effect. Details of this calculation are provided in the description of the Present_Value property.

Datapoint Type Name

BACnet_Schedule

(Object/)Datapoint Type Structure

DP_Name.property

Datapoint Element (Property) Data Type Device-depending availability Description
Present_Value Type of the target object No

This property indicates the current value of the schedule, which may be any primitive data type. As a result, most analog, binary, and enumerated values may be scheduled. This property should be writable when Out_Of_Service is TRUE.

Any change in the value of this property shall be written to all members of the List_Of_Object_Property_References property. An error writing to any member of the list should not stop the Schedule object from writing to the remaining members.

The normal calculation of the value of the Present_Value property is illustrated as follows (the actual algorithm used is a local matter but must yield the same results as this one):

1. Find the highest relative priority Exception_Schedule array element that is in effect for the current day and whose current value (see method below) is not NULL, and assign that value to the Present_Value property.

2. If the Present_Value was not assigned in the previous step, then evaluate the current value of the Weekly_Schedule array element for the current day and if that value is not NULL, assign it to the Present_Value property.

3. If the Present_Value was not assigned in the previous steps, then assign the value of the Schedule_Default property to the Present_Value property.

The method for evaluating the current value of a schedule (either exception or weekly) is to find the latest element in the list of BACnetTimeValues that occurs on or before the current time, and then use that element's value as the current value for the schedule. If no such element is found, then the current value for the schedule should be NULL.

These calculations are such that they can be performed at any time and the correct value of Present_Value property will result. These calculations must be performed at 00:00 each day, whenever the device resets, whenever properties that can affect the results are changed, whenever the time in the device changes by an amount that may have an effect on the calculation result, and at other times, as required, to maintain the correct value of the Present_Value property through the normal passage of time.

Note that the Present_Value property will be assigned the value of the Schedule_Default property at 00:00 of any given day, unless there is an entry for 00:00 in effect for that day. If a scheduled event logically begins on one day and ends on another, an entry at 00:00 shall be placed in the schedule that is in effect for the second day, and for any subsequent days of the event's duration, to ensure the correct result whenever Present_Value is calculated.

Faceplate

Tabs

The extended faceplate of the BACnet_Schedule object type has in addition to the standard tabs also object-specific tabs - Properties 1 (shows values of all properties of the BACnet object) and Schedule (allows the definition of a weekly program and exception programs).

The Properties 1 tab has the following layout:

In the Object Property References list the references can be added whose properties should be written with specific values at specific times on specific days.

Transformation defines the transformation for the data type of the Present_Value property, so that the p roperties Weekly_Schedule and Exception_Schedule can send the values with the correct data type (as the data type is not known before the browsing, this must be set afterwards).

Click on the button to select a new reference:

In the same way, any other references can be added to the list. Click on the button to remove the highlighted reference from the list.

The Schedule tabs consists of the following sub-tabs:

Weekly Program

In the "Weekly Program" tab the timed value assignments are shown.

Defining a time range:

To create a new timed value assignment click on the button. This opens the following window:

Here, enter the weekday, start-time and the value to be set, and confirm by clicking "OK".

Changing an assignment:

Double-click a timed value assignment defined in the table in order to change it (the window from the figure above is opened again).

Deleting an assignment:

In order to delete a defined timed value assignment select it and click the button.

Meaning of the buttons:

- saves the weekly program table.

- resets the changes since the last saving process or updates the weekly schedule table, respectively.

Exception Schedule

In the "Exception Schedule" tab sequences of planned actions are defined, which have a higher priority than the normal day schedule on a specific day or on multiple days.

Defining exception entries:

Exception schedules can have one of three different formats:

  1. Concrete date

    Click on the button in order to define a concrete date for a exception entry. The following window is opened:

  2. Time range

    Click on the button in order to define a time range for a exception entry. The following window is opened:

  3. Wildcard exception entry

    Click on the button in order to define a user-specific exception entry. The following window is opened:

In case of a wildcard exception entry in the "Month" combo box instead of a specific month also "All" for all months, "Odd Months" or "Even Months" can be selected.

In the selection of the week the user has the possibility to select a week of a month, "Every Week" or the last seven days of a month.

In the selection of the weekday the user has the possibility to select either "Every Day" or a specific day of week.

Assigning a calendar reference:

A calendar reference can be assigned by clicking the button.

Assigning priority:

A priority can be assigned to every defined exception entry. By default every exception entry gets the highest priority (1). The lowest priority is 16. To change the priority of a exception entry, highlight the entry from the list, click the "Prio" button, change the priority and confirm by clicking "OK".

Editing time/value pairs of an exception entry:

For editing the time entries of a exception entry (time/value pair), highlight the corresponding exception entry from the list and click on the button. The window "Edit Time/Value Pairs" is opened. Click on the button (see figure below) to enter a new time/value pair. Click on the button to delete the highlighted time/value pair.

Changing exception entries:

Defined exception entries can be changed by double-clicking an entry.

Deleting exception entries:

To delete a defines exception entry choose this from the list and click on the button.

Validity Period

The validity period specifies the time range, in which an object is active. Saison-depending time schedule can be reached by defining multiple schedule objects in not overlapping Effective_Periods.

For more information on tabs, see Tabs.

Available Symbol Types

Name Usage $ Parameter Symbol
Scheduler Object for the performance of recurring activities and definition of once-only exceptions. DP