In Unix-ähnlichen Betriebssystemen wird die Zeit als Offset in Sekunden von Mitternacht (UTC) am 1. Januar 1970 (Epoche genannt) dargestellt. Diese Art der Darstellung ist nicht nur kompakt, sondern auch zeitzonenunabhängig und damit auch zwischen geografisch unterschiedlichen Systemen direkt vergleichbar.
Hinweis: Die Funktionen arbeiten mit Datums-/Uhrzeitwerten mit einem hohen Bereich, aber es ist notwendig, sich auf die im System vorhandene Echtzeituhr für den unterstützten Wert zu beziehen.
SysDateGetS, holt das Systemdatum auf Sekunde
Diese Funktion gibt das Systemdatum in UTC, ausgedrückt in Sekunden, auf einer 32-Bit-Variablen zurück. Der verwaltete Bereich reicht von 00:00:00 am 1. Januar 1970 bis 06:28:15 am 7. Februar 2106.
Funktion
CODESYS: nicht verfügbar
LogikLab: eLLabXUnified12Lib
Beschreibung
Die Funktion gibt eine Variable zurück (UDINT) mit dem Systemdatum in UTC.
SysDateGetNs, ruft das Systemdatum auf ns ab
Diese Funktion gibt das Systemdatum in UTC ausgedrückt in zurück ns auf einer 64-Bit-Variablen. Der verwaltete Bereich reicht von 00:00:00 am 1. Januar 1970 bis 23:34:33.709 am 21. Juli 2554.
Funktion
CODESYS: nicht verfügbar
LogikLab: eLLabXUnified12Lib
Beschreibung
Die Funktion gibt eine Variable zurück (ULINT) mit Systemdatum in UTC.
SysDateSetS, setzt das Systemdatum auf die Sekunde
Diese Funktion setzt das Systemdatum in UTC ausgedrückt in Sekunden auf eine 32-Bit-Variable. Der verwaltete Bereich reicht von 00:00:00 am 1. Januar 1970 bis 06:28:15 am 7. Februar 2106.
Ersetzt "SysSetUTCDateTime"
Ersetzt die Funktion SysSetUTCDateTime dessen Verwendung veraltet ist.
Funktion
CODESYS: nicht verfügbar
LogikLab: eLLabXUnified12Lib
Beschreibung
UTCDateTime (UDINT) Systemdatumswert in UTC, ausgedrückt in Sekunden.
Die Funktion gibt eine Variable zurück (BOOL) FALSE: Ausführungsfehler, TRUE: Ok Ausführung.
Beispiele
Verwendung der Beispiele.
Im folgenden Beispiel wird der von der Funktion zurückgegebene Wert in einer Variablen gespeichert.
LogicLab (Ptp116, ST_DateTimeFunctions)
PROGRAM ST_DateTimeFunctions
VAR
i : UDINT; (* Auxiliary variable *)
DTime : DATE_AND_TIME; (* Date/Time *)
LDTime : LDATE_AND_TIME; (* Date/Time *)
LDTS : ARRAY[0..1] OF LDATETIMESTRUCT; (* Long Date/Time struct *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_DateTimeFunctions"
// *****************************************************************************
// Use of date functions.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// 32 BITS DATE FUNCTIONS
// -------------------------------------------------------------------------
// The "SysDateGetS" function returns a value in the range
// From 1970-01-01-00:00:00 to 2106-02-07-06:28:15
// After conversion in DATE_AND_TIME the range will be
// From 1970-01-01-00:00:00 to 2038-01-19-03:14:07
DTime:=TO_DATE_AND_TIME(SysDateGetS());
i:=SPLIT_DT(TO_DATE_AND_TIME(SysDateGetS()), ADR(LDTS[0].Year), ADR(LDTS[0].Month), ADR(LDTS[0].Day), ADR(LDTS[0].Hours), ADR(LDTS[0].Minutes), ADR(LDTS[0].Seconds));
// -------------------------------------------------------------------------
// 64 BITS DATE FUNCTIONS
// -------------------------------------------------------------------------
// The "SysDateGetNs" function returns a value in the range
// From 1970-01-01-00:00:00 to 2554-07-21-03:23:34:33.709
// After conversion in LDATE_AND_TIME the range will be
// From 1970-01-01-00:00:00 to 2262-04-11-23:47:16.854
LDTime:=TO_LDATE_AND_TIME(SysDateGetNs());
i:=SPLIT_LDT(TO_LDATE_AND_TIME(SysDateGetNs()), ADR(LDTS[1].Year), ADR(LDTS[1].Month), ADR(LDTS[1].Day), ADR(LDTS[1].Hours), ADR(LDTS[1].Minutes), ADR(LDTS[1].Seconds), ADR(LDTS[1].Milliseconds), ADR(LDTS[1].Microseconds), ADR(LDTS[1].Nanoseconds));
// [End of file]