System-Datums-/Zeitverwaltungsfunktionen

Liste

Diese Seite ist Teil der IEC 61131-3 Programmierhandbuch. Gehen Sie zum Index.

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.

Informationskreis

Funktion

CODESYS: nicht verfügbar

LogikLab: eLLabXUnified12Lib

Beschreibung

Die Funktion gibt eine Variable zurück (UDINT) mit dem Systemdatum in UTC.

Bild F_SysDateGetS

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.

Informationskreis

Funktion

CODESYS: nicht verfügbar

LogikLab: eLLabXUnified12Lib

Beschreibung

Die Funktion gibt eine Variable zurück (ULINT) mit Systemdatum in UTC.

Bild F_SysDateGetNs

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.

Informationskreis

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.

Bild F_SysDateSetS

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]
War dieser Artikel hilfreich?