Funções de gerenciamento de data/hora do sistema

Lista

Esta página faz parte do Manual de Programação IEC 61131-3. Acesse o índice.

Em sistemas operacionais do tipo Unix, o tempo é representado como um deslocamento em segundos da meia-noite (UTC) em 1º de janeiro de 1970 (chamado de época). Este tipo de representação, além de compacto, é independente de fusos horários, sendo, portanto, diretamente comparável mesmo entre sistemas localizados em diferentes posições geográficas.

Nota: As funções operam em valores de Data/Hora com um intervalo alto, mas é necessário consultar o relógio de tempo real presente no sistema para o valor suportado.

SysDateGetS, obtenha a data do sistema no segundo

Esta função retorna a data do sistema em UTC expressa em segundos em uma variável de 32 bits. O intervalo administrado é das 00:00:00 de 1º de janeiro de 1970 às 06:28:15 de 7 de fevereiro de 2106.

Círculo de Informação

Função

CoDeSys: Indisponível

Laboratório de lógica: eLLabXUnified12Lib

descrição

A função retorna uma variável (UDINT) com a data do sistema em UTC.

Imagem F_SysDateGetS

SysDateGetNs, obtenha a data do sistema em ns

Esta função retorna a data do sistema em UTC expressa em ns em uma variável de 64 bits. O intervalo gerenciado é de 00:00:00 em 1º de janeiro de 1970 a 23:34:33.709 em 21 de julho de 2554.

Círculo de Informação

Função

CoDeSys: Indisponível

Laboratório de lógica: eLLabXUnified12Lib

descrição

A função retorna uma variável (ULINT) com data do sistema em UTC.

Imagem F_SysDateGetNs

SysDateSetS, defina a data do sistema no segundo

Esta função define a data do sistema em UTC expressa em segundos em uma variável de 32 bits. O intervalo administrado é das 00:00:00 de 1º de janeiro de 1970 às 06:28:15 de 7 de fevereiro de 2106.

Substitui "SysSetUTCDateTime"

Substitui a função SysSetUTCDateTime cujo uso é obsoleto.

Círculo de Informação

Função

CoDeSys: Indisponível

Laboratório de lógica: eLLabXUnified12Lib

descrição

UTCDateTime (UDINT) Valor da data do sistema em UTC expresso em segundos.

A função retorna uma variável (BOOL) FALSE: Erro de execução, TRUE: Ok execução.

Imagem F_SysDateSetS

Exemplos

Como usar os exemplos.
No exemplo a seguir, o valor retornado pela função é salvo em uma variável.

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]
Esse artigo foi útil?