În sistemele de operare asemănătoare Unix, timpul este reprezentat ca o compensare în secunde de la miezul nopții (UTC) pe 1 ianuarie 1970 (numită epoca). Acest tip de reprezentare, pe lângă faptul că este compact, este independent de fusurile orare și, prin urmare, este direct comparabil chiar și între sistemele situate în poziții geografice diferite.
Notă: Funcțiile operează pe valori de dată / oră cu un interval mare, dar este necesar să se facă referire la ceasul în timp real prezent pe sistem pentru valoarea suportată.
SysDateGetS, obțineți data sistemului pe secundă
Această funcție returnează data sistemului în UTC exprimată în secunde pe o variabilă de 32 de biți. Intervalul gestionat este de la 00:00:00 pe 1 ianuarie 1970 până la 06:28:15 pe 7 februarie 2106.
funzione
CODESYS: Indisponibil
LogicLab: eLLabXUnified12Lib
Descriere
Funcția returnează o variabilă (UDINT) cu data sistemului în UTC.
SysDateGetNs, obțineți data sistemului pe ns
Această funcție returnează data sistemului în UTC, exprimată în ns pe o variabilă de 64 de biți. Intervalul gestionat este de la 00:00:00 pe 1 ianuarie 1970 până la 23:34: 33.709 pe 21 iulie 2554.
funzione
CODESYS: Indisponibil
LogicLab: eLLabXUnified12Lib
Descriere
Funcția returnează o variabilă (ULINT) cu data sistemului în UTC.
SysDateSetS, setați data sistemului pe secundă
Această funcție setează data sistemului în UTC exprimată în secunde pe o variabilă de 32 de biți. Intervalul gestionat este de la 00:00:00 pe 1 ianuarie 1970 până la 06:28:15 pe 7 februarie 2106.
Înlocuiește „SysSetUTCDateTime”
Înlocuiește funcția SysSetUTCDateTime a căror utilizare este depreciată.
funzione
CODESYS: Indisponibil
LogicLab: eLLabXUnified12Lib
Descriere
UTCDateTime (UDINT) Valoarea datei sistemului în UTC, exprimată în secunde.
Funcția returnează o variabilă (BOOL) FALSE: eroare de execuție, TRUE: Ok executie.
Exemple
Cum se utilizează exemplele.
În exemplul următor, valoarea returnată de funcție este salvată într-o variabilă.
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]