CONCAT_DT
Recebe valores de ano, mês, dia, hora, minutos, segundos e milissegundos e retorna o valor DT (Date and Time) equivalente. É uma função pura (sem estado; retorna o resultado diretamente).
Biblioteca: IEC_STD · Namespace: IEC · Tipo: função
Função
CONCAT_DT
+-------------------+
ANY_INT ----|YEAR |---- DT
| |
ANY_INT ----|MONTH |
| |
ANY_INT ----|DAY |
| |
ANY_INT ----|HOUR |
| |
ANY_INT ----|MINUTE |
| |
ANY_INT ----|SECOND |
| |
ANY_INT ----|MILLISECOND |
+-------------------+
Esta função aceita como parâmetros qualquer tipo do grupo ANY_INT e monta um valor DT
a partir dos componentes de data e hora informados.
Nota
Esta função retorna o valor #DT2000-00-00-00:00:00.000 se os tipos dos parâmetros de
entrada forem SINT ou USINT, pois esses tipos não suportam a faixa de valores
necessária para representar os componentes de data/hora especificados.
Parâmetros
Nome |
Direção |
Tipo |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|
YEAR |
IN |
ANY_INT |
2000 .. |
Ano. |
MONTH |
IN |
ANY_INT |
1 .. 12 |
Mês. |
DAY |
IN |
ANY_INT |
1 .. 31 |
Dia. |
HOUR |
IN |
ANY_INT |
0 .. 23 |
Hora do dia. |
MINUTE |
IN |
ANY_INT |
0 .. 59 |
Minuto. |
SECOND |
IN |
ANY_INT |
0 .. 59 |
Segundo. |
MILLISECOND |
IN |
ANY_INT |
0 .. 999 |
Milissegundo. |
Retorno / Saídas
Tipo |
Faixa / Unidade |
Descrição |
|---|---|---|
DT |
— |
Data/Hora (Date and Time) equivalente aos parâmetros especificados. |
Observações
Se
YEAR,MONTH,DAY,HOUR,MINUTE,SECONDouMILLISECONDforem informados comoSINTouUSINT, a função retorna#DT2000-00-00-00:00:00.000por não conseguir representar a faixa de valores necessária.
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
cur_day : UINT; (* Dia *)
cur_mon : UINT; (* Mes *)
cur_year : UINT; (* ano *)
cur_mseg : UINT; (* Milisegundos *)
cur_seg : UINT; (* Segundos *)
cur_min : UINT; (* Minutos *)
cur_hor : UINT; (* Hora *)
cur_dt : DT; (* Data/Hora do dia resultante em DT *)
END_VAR
(* ... *)
(* Exemplo de chamada da função na POU *)
cur_year:= 2023;
cur_mon := 11;
cur_day := 30;
cur_hor := 10;
cur_min := 20;
cur_seg := 30;
cur_mseg := 500;
cur_dt := CONCAT_DT(
YEAR := cur_year,
MONTH := cur_mon,
DAY := cur_day,
HOUR := cur_hor,
MINUTE := cur_min,
SECOND := cur_seg,
MILLISECOND := cur_mseg);
(* retorna cur_dt = #DT2023-11-30-10:20:30.500 *)
(* ... *)