Funcții de gestionare a datei/ora sistemului

Listă

Această pagină face parte din Manual de programare IEC 61131-3. Mergeți la index.

Î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.

Cercul de informații

funzione

CODESYS: Indisponibil

LogicLab: eLLabXUnified12Lib

Descriere

Funcția returnează o variabilă (UDINT) cu data sistemului în UTC.

Imaginea F_SysDateGetS

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.

Cercul de informații

funzione

CODESYS: Indisponibil

LogicLab: eLLabXUnified12Lib

Descriere

Funcția returnează o variabilă (ULINT) cu data sistemului în UTC.

Imaginea F_SysDateGetNs

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ă.

Cercul de informații

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.

Imaginea F_SysDateSetS

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]
A fost util acest articol?