F_TranslateFileTime64Bias

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
Eingänge
VAR_INPUT
in : T_FILETIME64;
bias : DINT;
toUTC : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
in | 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:
- FB_TzSpecificLocalTimeToSystemTime
- FB_TzSpecificLocalTimeToFileTime64
- FB_SystemTimeToTzSpecificLocalTime
- FB_FileTime46ToTzSpecificLocalTime
- FB_GetTimeZoneInformation
- FB_SetTimeZoneInformation
- NT_SetLocalTime
- NT_GetTime
- NT_SetTimeToRTCTime
- FB_LocalSystemTime
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.4024 | PC oder CX (x86, x64, Arm®) | Tc2_Utilities (System) >= 3.3.44.0 |