The "RTC_EX" (Extended Real Time Clock) function block allows an internal Software clock to be implemented in TwinCAT PLC. The clock must be initialized with a starting date and time. After the initialization the time and date are updated with each call of the function block. A CPU system clock is used to calculate the current time and date. The function block should be called in every PLC cycle, so that the current time can be calculated. The current date and time are available in the usual DATE_AND_TIME (DT) format at the function block's output. In contrast to the RTC function block, RTC_EX has a precision of one millisecond. Multiple instances of the RTC_EX function block can be created within one PLC program.


RTC_EX time can differ from the reference time

The way the system works means that the RTC_EX time can differ from the reference time. The difference depends on the PLC's cycle time, the value of the basic system ticks, and on the hardware being used.

In order to avoid larger deviations the RTC_EX instance should be synchronized cyclically (e.g. with a radio clock or with the local Windows system time). The local Windows system time you can be synchronized with a reference time via the SNTP protocol.


   EN    : BOOL;

EN: The RTC_EX function block is re-initialized with a specified date, time and millisecond by a rising edge at this input.

PDT: (Preset Date and Time) The initialization values for the function block's date and time. A rising edge at the EN input will cause the function block to adopt this value.

PMSEK: (Preset Milliseconds) The initialisation value for the milliseconds. A rising edge at the EN input will cause the function block to adopt this value.


   Q     : BOOL;

Q: This output is set if the function block has been initialized at least once. If the output is set, the values for the date, time and milliseconds at the PDT and CMSEK outputs are valid.

CDT: Current date and time of the RTC_EX instance. The CDT output is only updated when the function block is called. For this reason, instances of the function block should be called once in each PLC cycle.

CMSEK: (Current Milliseconds) The milliseconds output.


See: Example: Software clocks (RTC, RTC_EX, RTC_EX2).


Development environment

Target platform

PLC libraries to be integrated (category group)

TwinCAT v3.1.0

PC or CX (x86, x64, ARM)

Tc2_Utilities (System)