FB_TzSpecificLocalTimeToSystemTime

FB_TzSpecificLocalTimeToSystemTime 1:

Der Funktionsbaustein konvertiert die Lokalzeit (structured system time format) in UTC-Zeit (structured system time format) unter der Berücksichtigung der angegebenen Zeitzoneninformation. Der Funktionsbaustein: FB_TzSpecificLocalTimeToFileTime besitzt eine ähnliche Funktionalität, mit dem Unterschied dass er ein anderes Zeitformat (file time format) umrechnet.

Der Baustein eignet sich nur zur Konvertierung von kontinuierlichen Lokalzeit-Zeitstempelinformationen. Die Lokalzeitsprünge durch die Sommer-/Winterzeit Umstellung sind zulässig und werden vom Baustein erkannt. Lokalzeiten, die sich beliebig ändern führen zur fehlerhaften Konvertierung. Der Grund: Die zuletzt konvertierte Zeit wird im Baustein intern gespeichert um die Sommerzeit-/Winterzeit-Information und die B-Zeiten (siehe unten) beim Zurückstellen der Lokalzeit erkennen zu können. Der Baustein besitzt eine Aktion: A_Reset(). Ein Aufruf dieser Aktion setzt die Ausgänge des Bausteins und die intern gespeicherte (zuletzt konvertierte Zeit) auf Null zurück.

Die Sprünge in der Lokalzeit stellen hier ein Problem dar da sie in eine lineare UTC-Zeit konvertiert werden müssen. Es empfiehlt sich daher für Zeitstempelungsaufgaben die (kontinuierliche) UTC-Zeit zu verwenden und diese erst zur optischen Anzeige der Werte (z.B. in einer Visualisierung) in die jeweilige Lokalzeit zu konvertieren.

Weitere Informationen finden Sie in der Dokumentation des FB_TzSpecificLocalTimeToFileTime Funktionsbausteins.

VAR_INPUT

VAR_INPUT
    in     : TIMESTRUCT;
    tzInfo : ST_TimeZoneInformation;
END_VAR

in: Lokalzeit (structured system time format) die konvertiert werden soll (Typ: TIMESTRUCT).

tzInfo: Strukturvariable mit der aktuellen Zeitzone-Information des Betriebssystems (Typ: ST_TimeZoneInformation).

VAR_OUTPUT

VAR_OUTPUT
    out    : TIMESTRUCT;
    eTzID  : E_TimeZoneID := eTimeZoneID_Unknown;
    bB     : BOOL;
END_VAR

out: Konvertierte UTC-Zeit (strucutred system time format) (Typ: TIMESTRUCT).

eTzID: Zusätzliche Sommer-/ Winterzeit-Information (Typ: E_TimeZoneID).

bB: TRUE => B-Zeit (Z.B.:02:05:00 MEZ B), FALSE => Übrige Zeit (Z.B.: 02:05:00 MESZ A). Bei einem Sprung der Lokalzeit zurück wird dieser Ausgang gesetzt und beim Überschreiten der doppelten Lokalzeit wieder zurückgesetzt.

Beispiel:

PROGRAM MAIN
VAR
    in      : TIMESTRUCT := ( wYear := 2011, wMonth := 4, wDay := 29, wHour := 16, wMinute := 46, wSecond := 31, wMilliseconds := 99 );(* Local time *)
    out     : TIMESTRUCT;(* UTC time result is:= ( wYear := 2011, wMonth := 4, wDay := 29, wHour := 14, wMinute := 46, wSecond := 31, wMilliseconds := 99 ) *)
    fbToUTC : FB_TzSpecificLocalTimeToSystemTime;
END_VAR
fbToUTC( in := in, tzInfo := WEST_EUROPE_TZI, out => out );

Weitere Zeit-, Zeitzone-Funktionen und -Funktionsbausteine:

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_Utilities (System)