Fonctions de gestion de la date/heure du système

Liste

Cette page fait partie de la Manuel de programmation CEI 61131-3. Aller à l'index.

Dans les systèmes d'exploitation de type Unix, le temps est représenté par un décalage en secondes à partir de minuit (UTC) le 1er janvier 1970 (appelé l'époque). Ce type de représentation, en plus d'être compact, est indépendant des fuseaux horaires, et est donc directement comparable même entre des systèmes situés dans des positions géographiques différentes.

Remarque : Les fonctions opèrent sur des valeurs Date/Heure avec une plage haute mais il faut se référer à l'horloge temps réel présente sur le système pour la valeur supportée.

SysDateGetS, récupère la date système en seconde

Cette fonction renvoie la date système en UTC exprimée en secondes sur une variable 32 bits. La plage gérée va de 00:00:00 le 1er janvier 1970 à 06:28:15 le 7 février 2106.

Cercle d'informations

Fonction

CODESYS : indisponible

LogicLab : eLLabXUnified12Lib

Description

La fonction retourne une variable (UDINT) avec la date système en UTC.

Image F_SysDateGetS

SysDateGetNs, récupère la date système sur ns

Cette fonction renvoie la date système en UTC exprimée en ns sur une variable 64 bits. La plage gérée va de 00:00:00 le 1er janvier 1970 à 23:34 : 33.709 le 21 juillet 2554.

Cercle d'informations

Fonction

CODESYS : indisponible

LogicLab : eLLabXUnified12Lib

Description

La fonction retourne une variable (ULINT) avec la date système en UTC.

Image F_SysDateGetNs

SysDateSetS, réglez la date système sur la seconde

Cette fonction fixe la date système en UTC exprimée en secondes sur une variable 32 bits. La plage gérée va de 00:00:00 le 1er janvier 1970 à 06:28:15 le 7 février 2106.

Remplace "SysSetUTCDateTime"

Remplace la fonction SysSetUTCDateTime dont l'utilisation est déconseillée.

Cercle d'informations

Fonction

CODESYS : indisponible

LogicLab : eLLabXUnified12Lib

Description

UTCDateTime (UDINT) Valeur de la date système en UTC exprimée en secondes.

La fonction retourne une variable (BOOL) FALSE: Erreur d'exécution, TRUE: Ok exécution.

Image F_SysDateSetS

Exemples

Comment utiliser les exemples.
Dans l'exemple suivant, la valeur renvoyée par la fonction est enregistrée dans une variable.

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]
Cet article a-t-il été utile?