Echtzeit-Uhr - Beispiel

Auf dem BX-Controller ist eine Echtzeit-Uhr implementiert. Die aktuelle Uhrzeit kann per Funktionsbaustein ausgelesen werden. Das folgende Beispiel soll das verdeutlichen.

Funktionsbaustein RTC

FUNCTION_BLOCK RTC

VAR_INPUT

EN         :BOOL;
PDT        :DT;

Legende

EN: Positive Flanke setzt die Uhrzeit auf den Wert der an den PDT-Eingang anliegt.

PDT: Datum und Uhrzeit die eingestellt werden sollen.

VAR_OUTPUT

Q          :BOOL;
CDT        :BOOL;

Legende

CDT: Aktuelle Uhrzeit.

Notwendige Bibliotheken:

Echtzeit-Uhr - Beispiel 1: Download Beispiel Programm in ST (Beispieldatei)

PROGRAM MAIN
VAR
    fbTimer: TON;
    fbRTC: RTC;
END_VAR

 

fbTimer(PT:=t#60s,IN:=NOT fbTimer.Q);

IF fbTimer.Q THEN
    fbRTC;
END_IF
Echtzeit-Uhr - Beispiel 2:

RTC-Baustein nicht in jedem SPS-Zyklus aufrufen

Der Aufruf des RTC-Bausteins erhöht die Zykluszeit um ca. 5 ms, verursacht durch die Datenkonvertierung in eine TIME AND DATE Variable. Deshalb sollte der Baustein nicht in jedem SPS-Zyklus aufgerufen werden!
Alternativ können Sie die Uhrzeit auch per ADS-Baustein auslesen. Der ADS-Baustein liefert Datum und die Uhrzeit als WORD-Variablen zurück.
Beispiel 19:30 Uhr - Hour: 19 / Minute: 30

rtc example.prx