Weekly schedule [WeekSchd]

The weekly schedule [WeekSchd] consists of seven 24-hour profiles, one for each day of the week. By default, the priority level assigned to the weekly schedule is 16 (the lowest priority). The weekly schedule is active unless there is an exception schedule.

For system limits, see chapter System Configuration.

24-hour profiles

A 24-hour profile is a list of time-and-value pairs. The present value remains at the [PrVal] output until the processing of the next time-and-value pair causes a new value to be written to the output.

If there is no schedule entry with a switch time of 00:00 in the daily profile, the default value determines the resulting Present_Value (=Rule schedule default value).

If the daily profile encompasses an empty list of schedule entries, the default value [DefVal] determines the resulting Present_Value (=Rule schedule default value).

The evaluation of the exception schedule, weekly schedule, and [DefVal] is as follows:

Start of the day:

  • Exception schedule with switch value at 00:00:
  • The exception schedule determines the resulting Present_Value if an active switch value exists at 00:00. The day begins with this exception value (=Rule switch value exception schedule).
  • Empty daily profile:
  • If the daily profile encompasses an empty list, the default value [DefVal] determines the resulting Present_Value (=Rule schedule default value).
  • Daily profile with switch value at 0:00.
  • If a schedule entry with switch time 00:00 and active switch value is available in the daily profile, the switch value determines the resulting Present_Value. The day begins with the daily profile value (=Rule Switch value daily profile).

Course of the day:

  • Switch value exception schedule:
  • If an active switch value exists for a specific time, the exception schedule determines the resulting Present_Value.
  • Daily profile switch value:
  • If an active switch value from a daily profile exists for a specific time, the daily profile determines the resulting Present_Value.
  • Default value switch value:
  • If no active switch value from the exception schedule and the daily profile exists at a specific time of day, the default value determines the resulting Present_Value.

Exception schedule [EcptSchd]

Exception profiles

The exception schedule [EcptSchd] overwrites some or all of the daily switching operations in a weekly schedule [WeekSchd]. It consists of one or more profiles (max. 20).

Each profile has a:

  • Date
  • Specified time
  • Priority
  • Value for the output signal

The exception schedule may be a time range, including multiple days.

Activating exception profiles

Depending on the customer's requirement, the date on which an exception profile is to be activated can be defined either in the time schedule itself, or in the standard BACnet object Calendar. In the latter case, the calendar object is linked to the time schedule via BACnet references.

An exception begins with the first time entry and ends with the last. Each profile may contain up to 20 switch times.

Setting priorities

The switch value of all current profiles is continuously monitored for present priorities. The priorities determine which switch value is transferred to the [PrVal] output. The system evaluates every minute if a day or an exception profile should be active. Each profile of the exception schedule is assigned a priority level from 1 (highest) to 16 (lowest). If several exceptions are valid at the same time, the profile with the highest priority is processed.

If multiple switch values from different exceptions with the same priority exist at a specific time, the active switch value of the exception with the lowest array index (from the exception schedule) determines the exception switch value. The procedure is the same as the procedure for various priorities. The array index is used as a sub-priority. Exceptions with different priority levels however, are independent of each other. That's why it is preferable to assign different priorities to exceptions defined in the schedule.


An exception profile applies to more than one day. On the second day, the exception profile is inactive, because another profile with a higher priority is active for the whole day.

An exception program without the entry NULL. This exception profile is active for the whole day and ends automatically in the automation station at 24:00 hours by the NULL entry.

Several exceptions with the same priority on the same day, but without overlapping times. The exception profiles do not interfere with each other as an exception begins with the first time entry and ends with NULL.

Several exception profiles with the same priority on the same day with overlapping times. These exception profiles affect each other, as several exceptions with the same priority level are active simultaneously. In such cases, the rule is that if the switch commands are the same, the first time-entry applies (in this example 13:00 to NULL). With non-identical switch commands, the latest time-entry applies.

Operation in accordance with the weekly schedule.

Output signals

[PrVal] [NxVal] [NxTi]

The scheduler sends the following output signals:

  • [PrVal]
  • [NxVal]
  • [NxTi]

The [NxVal] und [NxTi] output signals support the optimum start/stop control of the plant. When determining [NxVal] and [NxTi] in the time schedule, the current day and the next two days are taken into account. This results in a time window of 48 to 72 hours, depending on the current time and the next switch entry. If there is no change in [PrVal] within the time window, then [NxVal] is the same as [PrVal] and [NxTi] is equivalent to the current date plus 3 days (00:00h).


This default value [DefVal] appears at the [PrVal] output when there is no active entry in the time schedule, or when the entries are all NIL, or when the time period is outside the active period.


The [EnDef] variable enables or disables the [DefVal] variable.

The function block variables [DefVal] and [EnDef] are mapped to the Schedule_Default property. The property Schedule_Default can have the value [DefVal] or NIL.

Variable DefVal

Variable EnDef

Property Schedule_Default




Don't care


NIL (= Release)

The NIL value in the Schedule_Default property is the release value for the active priority of the object controlled by the scheduler. Do not confuse it with the NIL value in the exception schedule used to prioritize the time entries.

Function blocks for various data types

There are four versions of the schedule block, with an analog, binary or multistate output or with a variable data type (boolean, unsigned, real or enumerated).

Function block



BSchd (PX)



ASchd (PX)



MSchd (PX)


Off, Stage 1, Stage 2, Stage 3

Schd (PX and Desigo room automation)

Boolean / Unsigned / Real / Enumerated


The switching value is output to [PrVal] and to the objects to be switched (commanded objects list). A schedule block can only contain switching values of the same data type (binary or analog or multistate or boolean or unsigned or real or enumerated). It is therefore not possible to switch two different data types in sequence.

In Desigo PX the CAL (calender) and SCHED (schedule) function blocks can be created online.

Commanded objects

The schedule can influence other commandable objects, irrespective of whether or not they are in the same automation station.

The schedule is thus a grouping object and contains a list of group members, in the form of a list of name references [NamrList]. These group members are the commanded objects, that is, the objects to be switched. The list can contain up to five entries.


The referencing of group members is resolved at runtime.

Information flow

The grouping and the information flow only go in one direction (forward referencing).

The information flows inside one automation station or across several automation stations. The scheduler object recognizes the flow of information and knows where to send information and what data type is required by the group members. The information transmitted covers only the present value [PrVal] or the values for the Optimum Start/Stop functions [PrVal], [NxVal] and [NxTi].

Heartbeat [Hrtbt]

In Desigo PX the function block variable Heartbeat [Hrtbt] determines the period measured in seconds at which the current value (Present_Value) is written.

Command [EnRptCmd]

In Desigo PX the function block variable Enable_Repeat_Command [EnRptCmd] defines if the switching action is carried out if the Present_Value does not change:

  • EnRptCmd = TRUE: Switching action is carried out if Present_Value does not change.
  • EnRptCmd = FALSE: Switching action is NOT carried out if Present_Value does not change.

Effective period [EfPrd]

You can define the period for which the schedule is to be active, e.g., you can configure separate schedules for summer and winter operation. If the current day is outside the active period, the [PrVal] output is equal to the default value [DefVal].

Time resolution

The smallest unit in the scheduler program is one minute and in the calendar one day. The schedule may be dependent on the calendar. In the PX automation stations, the calendar function block is automatically processed before the scheduler function block. The superposed cycle for processing the calendar and scheduler begins at the start of the new minute of the system time.

A PX automation station incorporates an automatic load shedding mechanism. The result is that a switch command at time x is carried out within a time-period defined by time x + 1 minute.

System time

Schedules and calendars are based on the same global time. This ensures that all automation stations on a site have the same time base.

Interdependency and order of processing

Interdependency of function blocks

The calendar and schedule function blocks are standalone objects which are processed individually. The Schedule function blocks depend on the Calendar function blocks. The objects to be switched (commanded objects or data flow output) depend on the Schedule function blocks.

Processing order

At start-up, when delta loading and when adjusting the date and time, the order of processing is a key factor in ensuring that from the first processing cycle on, the correct output values of a schedule function block are determined and transmitted to the output. The temporary transmission of incorrect switch values can be avoided in this way. The order of processing of the individual function blocks is determined in the CFC Editor (manual/automatic).

The order of processing is:

  1. Calendar function blocks
  2. Schedule function blocks
  3. Any other function blocks, which could be switched by a schedule function block