FB_HVACGetSystemTime

Mit diesem Funktionsbaustein kann eine interne Uhr (Real Time Clock RTC) in der TwinCAT SPS realisiert werden. Die RTC-Uhr wird mit der Freigabe des Funktionsbausteines über bEnable mit der aktuellen NT-Systemzeit initialisiert. Es wird ein Systemtakt der CPU benutzt um die aktuelle RTC-Zeit zu berechnen. Der Funktionsbaustein muss in jedem Zyklus der SPS einmal aufgerufen werden, damit die aktuelle Zeit berechnet werden kann. Intern wird in dem Funktionsbaustein eine Instanz der Funktionsbausteine NT_GetTime und RTC_EX2 aus der Utilities-Bibliothek aufgerufen.
![]() | Die RTC-Zeit weicht bedingt durch die Systemeigenschaften von einer Referenzzeit ab. Die Abweichung hängt von der Zykluszeit der SPS, dem Wert des System-Basis-Ticks und der verwendeten Hardware ab. Die RTC wird deshalb intern im Funktionsbaustein mit der NT-Systemzeit in Abhängigkeit der Eingangsvariablen sNETID und tGetSystemTime synchronisiert. Die lokale NT-Systemzeit können Sie wiederum mit der Hilfe des SNTP-Protokolls mit einer Referenzzeit synchronisieren. Mehr Informationen dazu finden Sie im Beckhoff Information System unter: Beckhoff Information System > Industrie-PC > Betriebssysteme > CE > SNTP: Simple Network Time Protocol |
VAR_INPUT
bEnable : BOOL;
sNETID : T_AmsNetId;
tGetSystemTime : TIME;
bGetSystemTime : BOOL;
bEnable: Freigabe des Bausteins. Ist bEnable = TRUE, so wird die RTC-Uhr mit der NT-Systemzeit initialisiert.
sNETID: Hier kann die AmsNetId des TwinCAT-Rechners angegeben werden dessen NT-Systemzeit ermittelt werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.
tGetSystemTime: Zeitangabe, mit der die RTC-Uhr mit der NT-Systemzeit regelmäßig synchronisiert wird. Diese Zeitangabe muss größer gleich 5 Sekunden sein, ansonsten wird die RTC-Uhr nicht synchronisiert. Parallel zu der Zeitangabe tGetSystemTime kann die RTC-Uhr über die Eingangsvariable bGetSystemTime synchronisiert werden.
bGetSystemTime: Mit einer steigenden Flanke an diesem Eingang wird die RTC-Uhr mit der NT-Systemzeit synchronisiert wird. Dieses geschieht parallel zu der Zeitangabe tGetSystemTime.
VAR_OUTPUT
bReadyGetSystemTime : BOOL;
bReadyRTC : BOOL;
stSystemTime : TIMESTRUCT;
dtSystemTime : DT;
uiYear : UINT;
uiMonth : UINT;
uiDay : UINT;
uiDayOfWeek : UINT;
uiHour : UINT;
uiMinute : UINT;
uiSecond : UINT;
uiMilliseconds : UINT;
bErrorGetSystemTime : BOOL;
udiErrorIdGetSystemTime : UDINT;
bReadyGetSystemTime: Der Funktionsbaustein wurde erfolgreich mit der NT-Systemzeit initialisiert oder synchronisiert.
bReadyRTC: Wurde der Funktionsbaustein mindestens einmal initialisiert, so wird dieser Ausgang gesetzt. Ist dieser Ausgang gesetzt, dann sind die Werte für das Datum, Uhrzeit und Millisekunden an den Ausgängen gültig.
stSystemTime: Struktur mit der aktuellen RTC-Zeit.
dtSystemTime: Datum und Tageszeit der RTC-Zeit.
uiYear: Das Jahr: 1970 ~ 2106;
uiMonth: Der Monat: 1 ~ 12 (Januar = 1, Februar = 2 usw.);
uiDay: Tag des Monats: 1 ~ 31;
uiDayOfWeek: Der Wochentag: 0 ~ 6 (Sonntag = 0, Montag = 1 usw.);
uiHour: Stunde: 0 ~ 23;
uiMinute: Minute: 0 ~ 59;
uiSecond: Sekunde: 0 ~ 59;
uiMilliseconds: Millisekunde: 0 ~ 999;
bErrorGetSystemTime: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt. Der Ausgang signalisiert mit einem TRUE, dass ein Fehler beim Initialisieren oder Synchronisieren mit der NT-Systemzeit anliegt. Es wird im Funktionsbaustein solange versucht die RTC-Uhr zu initialisieren oder synchronisieren bis der Fehler behoben ist. Die RTC-Uhr startet mit einer falschen Datums- und Zeitangabe und muss deshalb mit der NT-Systemzeit synchronisiert werden.
udiErrorIdGetSystemTime: Liefert bei einem gesetzten bErrorGetSystemTime-Ausgang die ADS-Fehlernummer (siehe ADS Return Codes)
Voraussetzungen
Entwicklungsumgebung | erforderliche Bibliothek | Erforderliche Function |
---|---|---|
TwinCAT 3.1 ab Build 4022.16 | Tc2_HVAC V3.3.1.0 | TF8000 | TC3 HVAC V1.0.0.0 |