SetRTCDrift: Wöchentliches Anpassen der Echtzeituhr

Beschreibung der Funktion

Diese Funktion fügt der Echtzeituhr wöchentlich an einem bestimmten Wochentag zu einer bestimmten Zeit eine festgelegte Anzahl Sekunden hinzu bzw. zieht diese ab. Die Angabe erfolgt im Format Stunden:Minuten.

HINWEIS: Die Funktion SetRTCDrift muss programmiert werden, sodass sie nur einmals während des ersten Mast-Zyklus ausgeführt wird.

Grafische Darstellung

G-RU-0010362.2.gif-high.gif

 

 

Darstellung in AWL (IL) und ST

Die allgemeine Darstellung in den Sprachen AWL (IL) oder ST finden Sie im Kapitel Darstellung von Funktionen und Funktionsbausteinen.

Beschreibung der E/A-Variablen

In der folgenden Tabelle werden die Eingangsparameter beschrieben:

Eingänge

Typ

Kommentar

RtcDrift

SINT(-29...+29)

Korrektur in Sekunden (-29 - +29)

Tag

DAY_OF_WEEK

Tag der Änderung.

Stunden

HOUR

Stunde, zu der die Einstellung vorgenommen wird.

Minuten

MINUTE

Minute, zu der die Einstellung vorgenommen wird.

 

HINWEIS: Wenn die für RTCDrift, Tag, Stunde und Minute eingegebenen Werte Grenzwerte überschreiten, setzt die Firmware der Steuerung alle Werte jeweils auf ihre Maximalwerte.

In der folgenden Tabelle wird die Ausgangsvariable beschrieben:

Ausgang

Typ

Kommentar

SetRTCDrift

RTCSETDRIFT_ERROR

Gibt den Wert RTC_OK (00 hex) zurück, wenn der Befehl fehlerfrei ausgeführt wurde. Andernfalls wird der ID-Code des erkannten Fehlers zurückgegeben.

Beispiel

In diesem Beispiel wird die Funktion nur einmal während des ersten MAST-Task-Zyklus aufgerufen. Die Uhrzeit der Echtzeituhr wird jeden Dienstag um 5:45 um 20 Sekunden erhöht:

VAR
   MyRTCDrift : SINT (-29...+29) := 0;
   MyDay : DAY_OF_WEEK;
   MyHour : HOUR;
   MyMinute : MINUTE;
END_VAR    

IF IsFirstMastCycle() THEN
   MyRTCDrift := 20;
   MyDay := TUESDAY;
   MyHour := 5;
   MyMinute := 45;
   SetRTCDrift(MyRTCDrift, MyDay, MyHour, MyMinute);
END_IF