Funciones de gestión de fecha/hora del sistema

Lista

Esta página es parte del Manual de programación IEC 61131-3. Ir al índice.

En los sistemas operativos similares a Unix, el tiempo se representa como un desplazamiento en segundos desde la medianoche (UTC) del 1 de enero de 1970 (llamada la época). Este tipo de representación, además de ser compacta, es independiente de las zonas horarias y, por lo tanto, es directamente comparable incluso entre sistemas ubicados en diferentes posiciones geográficas.

Nota: Las funciones operan en valores de Fecha/Hora con un rango alto pero es necesario consultar el reloj de tiempo real presente en el sistema para el valor admitido.

SysDateGetS, obtenga la fecha del sistema en segundo lugar

Esta función devuelve la fecha del sistema en UTC expresada en segundos en una variable de 32 bits. El rango manejado es desde las 00:00:00 del 1 de enero de 1970 hasta las 06:28:15 del 7 de febrero de 2106.

Círculo de información

Funzione

CÓDIGOS: indisponible

Laboratorio lógico: eLLabXUnified12Lib

Descripción

La función devuelve una variable (UDINT) con la fecha del sistema en UTC.

Imagen F_SysDateGetS

SysDateGetNs, obtenga la fecha del sistema en ns

Esta función devuelve la fecha del sistema en UTC expresada en ns en una variable de 64 bits. El rango administrado es desde las 00:00:00 del 1 de enero de 1970 hasta las 23:34: 33.709 del 21 de julio de 2554.

Círculo de información

Funzione

CÓDIGOS: indisponible

Laboratorio lógico: eLLabXUnified12Lib

Descripción

La función devuelve una variable (ULINT) con fecha del sistema en UTC.

Imagen F_SysDateGetNs

SysDateSetS, establezca la fecha del sistema en el segundo

Esta función establece la fecha del sistema en UTC expresada en segundos en una variable de 32 bits. El rango manejado es desde las 00:00:00 del 1 de enero de 1970 hasta las 06:28:15 del 7 de febrero de 2106.

Reemplaza "SysSetUTCDateTime"

Reemplaza la función SysSetUTCDateTime cuyo uso está en desuso.

Círculo de información

Funzione

CÓDIGOS: indisponible

Laboratorio lógico: eLLabXUnified12Lib

Descripción

UTCDateTime (UDINT) Valor de fecha del sistema en UTC expresado en segundos.

La función devuelve una variable (BOOL) FALSE: error de ejecución, TRUE: Ok ejecución.

Imagen F_SysDateSetS

Ejemplos

Cómo utilizar los ejemplos..
En el siguiente ejemplo, el valor devuelto por la función se guarda en una variable.

Laboratorio lógico (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]
¿Le resultó útil este artículo?