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