SPLIT_DT
Recebe um valor do tipo DT e retorna o ano, o mês, o dia, a hora, o minuto, o segundo e o milissegundo associados; é uma função pura (sem estado; retorna os resultados via parâmetros de saída).
Biblioteca: IEC_STD · Namespace: IEC · Tipo: função
Função
SPLIT_DT
+-------------------+
DT ----|IN YEAR|---- ANY_INT
| |
| MONTH|---- ANY_INT
| |
| DAY|---- ANY_INT
| |
| HOUR|---- ANY_INT
| |
| MINUTE|---- ANY_INT
| |
| SECOND|---- ANY_INT
| |
| MILLISECOND|---- ANY_INT
+-------------------+
Esta função recebe um valor DT (Date and Time) em IN e decompõe-o em ano, mês, dia,
hora, minuto, segundo e milissegundo, entregues nas saídas YEAR, MONTH, DAY,
HOUR, MINUTE, SECOND e MILLISECOND, cada uma do grupo ANY_INT (ver
Grupos de tipos de dados para a lista completa de tipos suportados).
Nota
Esta função retorna todos os parâmetros de saída iguais a zero caso sejam do tipo SINT ou USINT, pois esses tipos não suportam a faixa de valores possíveis a serem atribuídos.
Parâmetros
Nome |
Direção |
Tipo |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|
IN |
IN |
DT |
— |
Valor de data e hora a ser separado. |
YEAR |
OUT |
ANY_INT |
2000 .. |
Ano extraído de |
MONTH |
OUT |
ANY_INT |
1 .. 12 |
Mês extraído de |
DAY |
OUT |
ANY_INT |
1 .. 31 |
Dia extraído de |
HOUR |
OUT |
ANY_INT |
0 .. 23 |
Hora extraída de |
MINUTE |
OUT |
ANY_INT |
0 .. 59 |
Minuto extraído de |
SECOND |
OUT |
ANY_INT |
0 .. 59 |
Segundo extraído de |
MILLISECOND |
OUT |
ANY_INT |
0 .. 999 |
Milissegundo extraído de |
Retorno / Saídas
Nenhum.
Observações
O firmware do equipamento pode não suportar todos os tipos de dados definidos no padrão IEC 61131-3. Consulte Recursos dependentes de implementação da norma IEC61131-3 para restrições de implementação específicas de cada firmware.
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
cur_dt : DT; (* Data e hora a ser separada *)
cur_year : UINT; (* Ano *)
cur_mon : UINT; (* Mês *)
cur_day : UINT; (* Dia *)
cur_hour : UINT; (* Hora *)
cur_min : UINT; (* Minuto *)
cur_sec : UINT; (* Segundo *)
cur_ms : UINT; (* Milissegundo *)
END_VAR
(* ... *)
(* Exemplo de chamada da função na POU *)
SPLIT_DT(IN := cur_dt, YEAR := cur_year, MONTH := cur_mon, DAY := cur_day, HOUR := cur_hour, MINUTE := cur_min, SECOND := cur_sec, MILLISECOND := cur_ms);
(* recebe os valores de ano, mês, dia, hora, minuto, segundo e milissegundo em cada parâmetro *)
(* ... *)