F_TranslateFileTime64Bias

F_TranslateFileTime64Bias 1:

Diese Funktion rechnet die Eingangszeit mit Hilfe der angegebenen Bias-Zeitverschiebung in die Zeit einer anderen Zeitzone um. Mit dieser Funktion kann z.B. die Lokalzeit in UTC-Zeit (Universal Time Coordinates) und umgekehrt umgerechnet werden.

FUNCTION F_TranslateFileTime64Bias: T_FILETIME64

F_TranslateFileTime64Bias 2: Eingänge

VAR_INPUT
    in    : T_FILETIME64;
    bias  : DINT;
    toUTC : BOOL;
END_VAR

Name

Typ

Beschreibung

in

T_FILETIME64

Eingangszeit, die umgerechnet werden soll.

bias

DINT

Differenz zwischen der UTC-Zeit und der Lokalzeit in Minuten (positive oder negative Werte sind zulässig)

toUTC

BOOL

Über diesen Parameter kann die Richtung angegeben werden, in die die Eingangszeit konvertiert werden soll.

toUTC

Direction

Internal formula

FALSE

UTC -> Lokalzeit

Lokalzeit := UTC - Bias

TRUE

Lokalzeit -> UTC

UTC := Lokalzeit + Bias

Beispiel:

Die in-Variable enthält die zu konvertierende Zeit. Die bToUTC-Variable bestimmt die Konvertierungsrichtung. Bei bToUTC = TRUE wird die Lokalzeit in UTC-Zeit konvertiert und bei bToUTC = FALSE die UTC-Zeit in Lokalzeit. Die WEST_EUROPE_TZI-Konstante enthält die Zeitzoneninformationen für Westeuropa. Der benötigte Bias-Wert wird aus der Zeitzoneninformation in der Konstanten und der aktuellen bDST-Einstellung (Daylight Saving Time) errechnet. Die aktuelle Zeitzoneninformation eines TwinCAT-Systems kann alternativ mit dem Funktionsbaustein: FB_GetTimeZoneInformation ermittelt werden.

Wichtiger Hinweis: Der Datentyp DT als Eingangszeit wurde nur wegen der Möglichkeit der optischen Kontrolle im Online-Mode gewählt. Konvertierungen in einem anderen Zeitformat sind nur bedingt zu empfehlen da die Konvertierungsfunktionen sehr rechenintensiv sein können.

PROGRAM MAIN
VAR
    bDST    : BOOL := TRUE;(* TRUE => Daylight saving time, FALSE => Standard time *)
    bToUTC  : BOOL := FALSE;(* TRUE => Convert local time to UTC time, FALSE => Convert UTC time to local time *)
    in      : DT := DT#2011-08-29-15:15:31;
    out     : DT;
    bias    : DINT;
END_VAR
IF bDST THEN
    bias := WEST_EUROPE_TZI.bias + WEST_EUROPE_TZI.daylightBias;
ELSE
    bias := WEST_EUROPE_TZI.bias + WEST_EUROPE_TZI.standardBias;
END_IF

out := FILETIME64_TO_DT( F_TranslateFileTime64Bias( DT_TO_FILETIME64( in ), bias, bToUTC ) );

Weitere Zeit-, Zeitzone-Funktionen und -Funktionsbausteine:

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.4024

PC oder CX (x86, x64, Arm®)

Tc2_Utilities (System) >= 3.3.44.0