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, SECOND ou MILLISECOND forem informados como SINT ou USINT, a função retorna #DT2000-00-00-00:00:00.000 por 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 *)
(* ... *)