Instruções TIA Portal

Data e Hora
Lógica Temporal

Domine o relógio do seu PLC. Desde o registro preciso de eventos até cálculos complexos de tempo e conversões de formato, controle cada milissegundo.

Por que gerenciar o tempo em um PLC?

O gerenciamento de tempo é crucial para a automação industrial. Permite o registro preciso de eventos de produção, o acionamento de tarefas de manutenção agendadas, o cálculo de tempos de ciclo de máquinas e a sincronização de sistemas distribuídos via protocolos NTP.

PLCs Siemens modernos oferecem tipos de dados avançados como DTL (Date and Time Long), que fornece acesso direto a componentes individuais (Ano, Mês, Dia, Hora) sem manipulação complexa de bits, simplificando muito a programação em comparação com os formatos DT legados.

Leitura de Tempo

Acessando os relógios do sistema e locais

T_CONV — Extração de Tempo do Sistema

T_CONV

O que faz

Extrai componentes específicos de um valor de data/hora ou converte entre formatos. É essencial para obter horas/minutos legíveis de um carimbo de data/hora bruto.

Quando usar

Quando você precisa exibir apenas a hora em uma HMI a partir de uma tag Date_And_Time completa.

Dicas Profissionais

Use T_CONV para converter um TOD (Time_Of_Day) em uma String para facilitar o registro.

Certifique-se de que os tipos de entrada e saída sejam compatíveis para evitar erros de estouro (overflow).

No SCL, esta instrução é frequentemente tratada implicitamente por atribuições simples.

RD_SYS_T — Ler Tempo do Sistema

RD_SYS_T

O que faz

Lê o tempo atual do sistema da CPU (UTC). Diferente do RD_LOC_T, não inclui o horário de verão ou compensações de fuso horário.

Quando usar

Ideal para registro interno onde uma referência de tempo contínua e sem saltos é necessária (evita problemas durante as mudanças de horário de verão).

Dicas Profissionais

Sempre use UTC para armazenamento em banco de dados para garantir consistência global.

A saída RET_VAL fornece informações de status (por exemplo, se o relógio está sincronizado).

Combine com RD_LOC_T se precisar exibir tanto o tempo 'Técnico' quanto o tempo 'Humano'.

Aritmética

Cálculos em durações e carimbos de data/hora

T_ADD — Adicionar Tempo

T_ADD

O que faz

Adiciona uma duração (Time ou LTime) a um ponto específico de data/hora. Ele trata corretamente estouros de minutos, horas e dias.

Quando usar

Cálculo de um tempo de expiração ou um ponto de reinicialização agendado (por exemplo, tempo atual + 24 horas).

Dicas Profissionais

Muito útil para implementar watchdogs personalizados com durações dinâmicas.

Use tipos LTime para precisão de nanossegundos em CPUs S7-1500.

Se o resultado exceder a data máxima (Ano 2262), a CPU define um status de erro.

T_DIFF — Diferença de Tempo

T_DIFF

O que faz

Calcula a diferença entre dois carimbos de data/hora e retorna o resultado como uma duração (Time ou LTime).

Quando usar

Medição da duração exata de uma etapa do processo ou cálculo do tempo de atividade (uptime) de uma máquina.

Dicas Profissionais

Perfeito para cálculos de OEE (Eficácia Geral do Equipamento).

Subtrair uma data maior de uma menor retorna um valor de Time negativo.

No S7-1200/1500, use tags DTL para facilitar o acesso aos componentes da diferença.

Conversão

Mudanças de formato e tratamento de String

T_CONV — Conversão de DT para DTL

T_CONV

O que faz

Converte o DATE_AND_TIME legado (8 bytes) para o formato DTL moderno ou vice-versa.

Quando usar

Ao fazer a interface de código legado ou blocos de comunicação com a nova lógica otimizada do S7-1500.

Dicas Profissionais

Prefira DTL para todos os novos projetos para evitar a complexidade do BCD (Binary Coded Decimal).

A conversão para DTL permite que você escreva 'MyTag.MONTH' diretamente em seu código.

Tenha cuidado com a precisão de milissegundos, que pode ser truncada em alguns formatos.

DT_TO_STRING — Serializando Tempo

DT_TO_STR

O que faz

Converte um valor de data/hora em um formato String legível. STRING_TO_DT faz o inverso.

Quando usar

Envio de carimbos de data/hora para um arquivo CSV em um cartão de memória ou comunicação com uma API web.

Dicas Profissionais

A string de saída segue o formato ISO 8601 (YYYY-MM-DD-HH:MM:SS.ms).

Use STRING_TO_DT para analisar datas recebidas de um banco de dados SQL externo.

Observe que as operações de String são mais intensivas para a CPU; use-as com moderação em loops rápidos.

DATE_AND_TIME vs DTL

Escolhendo a estrutura temporal correta

RecursoDATE_AND_TIME (Legado)DTL (Moderno)
Tamanho8 Bytes12 Bytes
CodificaçãoBCD (Complexo de ler)Inteiros (Diretamente legíveis)
Acesso ao ComponenteRequer mascaramento de bitsEstrutural (Tag.Month)
Intervalo1990 a 20891970 a 2262
Suporte S7-1200/1500Apenas compatibilidadeNativo & Recomendado
Precisão10 ms1 Nanossegundo

Perguntas Frequentes

Qual é a diferença entre o Tempo do Sistema e o Tempo Local?

O Tempo do Sistema (RD_SYS_T) é sempre UTC, fornecendo uma referência estável. O Tempo Local (RD_LOC_T) se ajusta ao seu fuso horário específico e às regras de Horário de Verão (DST) configuradas nas propriedades da CPU.

Como sincronizar o relógio do PLC com um servidor?

Habilite o NTP (Network Time Protocol) na Configuração de Hardware da CPU. Forneça o IP do seu servidor de tempo e o PLC ajustará automaticamente seu relógio interno.

Por que meu DATE_AND_TIME mostra valores estranhos em Hex?

O DT legado usa codificação BCD. Um valor de 25 em Decimal é armazenado como 16#25 em BCD. Sempre use instruções de conversão ou DTL para ler os valores corretamente.

Posso calcular a diferença entre duas tags DTL diretamente?

No SCL, você pode simplesmente usar o operador '-' entre duas tags DTL. O TIA Portal chamará automaticamente a instrução T_DIFF para você.

Automatize seu Gerenciamento de Tempo

Precisa gerar relatórios de produção com carimbos de data/hora precisos ou sincronizar 50 PLCs? O T-IA Connect automatiza a geração de lógica temporal.