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.
Fonction
CODESYS : indisponible
LogicLab : eLLabXUnified12Lib
Description
La fonction retourne une variable (UDINT) avec la date système en UTC.
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.
Fonction
CODESYS : indisponible
LogicLab : eLLabXUnified12Lib
Description
La fonction retourne une variable (ULINT) avec la date système en UTC.
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.
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.
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]