WSCH – Weekly schedule

Block SymbolLicensing group: STANDARD

Function Description
The WSCH function block is a weekly scheduler for e.g. heating (day, night, eco), ventilation (high, low, off), lighting, irrigation etc. Its outputs can be used for switching individual appliances on/off or adjusting the intensity or power of the connected devices.

During regular weekly schedule the outputs iy and y reflect the values from the wst table. This table contains triplets day-hour-value. E.g. the notation [2 6.5 21.5] states that on Tuesday, at 6:30 in the morning (24-hour format), the output y will be set to 21.5. The output iy will be set to 22 (rounding to nearest integer). The individual triplets are separated by semicolons.

The days in a week are numbered from 1 (Monday) to 7 (Sunday). Higher values can be used for special daily schedules, which can be forced using the fsch input or the specdays table. The active daily program is indicated by the isch output.

Alternatively it is possible to temporarily force a specific output value using the val input and a rising edge at the SET input (off on). When a rising edge occurs at the SET input, the val input is copied to the y output and the isch output is set to 0. The forced value remains set until:

  • the next interval as defined by the wst table, or
  • another rising edge occurs at the SET input, or
  • a different daily schedule is forced using the fsch input.

The list of special days (specdays) can be used for forcing a special daily schedule at given dates. E.g. you can force a Sunday daily schedule on holidays, Christmas, New Year, etc. The date is entered in the YYYYMMDD format. The notation [20160328 7] thus means that on March 28th, 2016, the Sunday daily schedule should be used. Individual pairs are separated by semicolons.

The trem and ynext outputs can be used for triggering specific actions in advance, before the y and iy are changed.

The iy output is meant for direct connection to function blocks with Boolean inputs (the conversion from type long to type bool is done automatically).

The nmax parameter defines memory allocation for the wst and specdays arrays. For nmax = 100 the wst list can contain up to 100 triplets day-hour-value. In typical applications there is no need to modify the nmax parameter.



Trigger for setting the y and iy outputs



Temporary value to set the y and iy outputs to

Double (F64)


Forced schedule

Long (I32)

0 ....

standard weekly schedule

1 ....


2 ....




7 ....


8 and above 

additional daily programs as defined by the wst table



Integer output value

Long (I32)


Output value

Double (F64)


Daily schedule identifier

Long (I32)


Time remaining in the current section (in seconds)

Double (F64)


Output in the next section

Double (F64)



Timezone  1.00E+00


1 ....

Local time

2 ....



Allocated size of arrays   10  1000000 1.00E+02

Long (I32)


Weekly schedule table (list of triplets day-hour-value)  [1 0.01 18.0; 2 6.0 22.0; 2 18.0 18.0; 3 6.0 22.0; 3 18.0 18.0; 4 6.0 22.0; 4 18.0 18.0; 5 6.0 22.0; 5 18.0 18.0; 6 6.0 22.0; 6 18.0 18.0; 1 0.01 18.0]

Double (F64)


List of special days (list of pairs date-daily program)  [20150406 1; 20151224 1; 20151225 1; 20151226 1; 20160101 1; 20160328 1; 20170417 1; 20180402 1; 20190422 1; 20200413 1]

Long (I32)

2020 © REX Controls s.r.o.,