FB_SystemTimeToTzSpecificLocalTime

FB_SystemTimeToTzSpecificLocalTime 1:

Der Funktionsbaustein konvertiert die UTC-Zeit (structured system time format) in Lokalzeit (structured system time format) unter der Berücksichtigung der angegebenen Zeitzoneninformation. Der Funktionsbaustein: FB_FileTimeToTzSpecificLocalTime 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 UTC-Zeitstempelinformation. Anhand der Zeitzoneninformation errechnet der Funktionsbaustein die erforderlichen Zeitsprünge in der Lokalzeit (Sommer-/Winterzeit Umstellung). Zeitsprünge in der UTC-Eingangszeit sind nicht zulässig führen zur fehlerhaften Konvertierung. Der Grund: Die zuletzt konvertierte Zeit wird im Baustein intern gespeichert um aus dem Verlauf der UTC-Eingangszeit und dem gespeicherten Wert 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.

VAR_INPUT

VAR_INPUT
    in     : TIMESTRUCT;
    tzInfo : ST_TimeZoneInformation;
END_VAR

in: UTC-Zeit (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 Lokalzeit (structured 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 := 14, wMinute := 46, wSecond := 31, wMilliseconds := 99 );(* UTC time *)
    out       : TIMESTRUCT; (* Local time result is:= ( wYear := 2011, wMonth := 4, wDay := 29, wHour := 16, wMinute := 46, wSecond := 31, wMilliseconds := 99 ) *)
    fbToLocal : FB_SystemTimeToTzSpecificLocalTime;
END_VAR
fbToLocal( 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)