Totalizador de Horas Horas Funcionamento Motor [Parte 2] PLC / CLP Siemens Tia Portal
Totalizador de Horas no TIA Portal (Parte 2): Como Evitar o Estouro de Variáveis
No artigo anterior, aprendemos a criar uma lógica básica para contar as horas de funcionamento de um motor. No entanto, usar apenas o tipo de dados TIME tem uma limitação crítica: ele armazena no máximo cerca de 24 dias. Se o seu motor ultrapassar esse tempo ligado, o valor "estoura" e perdes a contagem.
Neste tutorial avançado, vamos resolver esse problema separando a contagem em Horas, Minutos e Segundos utilizando variáveis do tipo DINT, garantindo uma contagem que pode durar centenas de anos.
1. O Problema da Variável TIME
A variável TIME no TIA Portal é um inteiro de 32 bits que armazena milissegundos. [
Limite: 2.147.483.647 milissegundos (aprox. 24 dias e 20 horas).
Solução: Criar um acumulador personalizado que transfere os milissegundos para minutos e os minutos para horas de forma independente. [
]01:15
2. Estrutura da Nova Lógica
Armazenamento Separado
Em vez de uma única variável, criamos três variáveis DINT no nosso Data Block (DB):
Horas_FuncionamentoMinutos_FuncionamentoSegundos_Funcionamento
Com o tipo DINT para horas, podes acumular mais de 2 mil milhões de horas — o que daria para monitorizar um motor por mais de 245.000 anos! [
Uso Estratégico do Bloco T_DIFF
Para evitar o erro de contagem, utilizamos o bloco T_DIFF para calcular a diferença entre a "Hora Atual do PLC" e a "Hora da Última Partida". [
Enquanto o motor está ligado, comparamos constantemente se a diferença atingiu 1 hora.
Quando atinge 1 hora: Incrementamos o contador de horas e reiniciamos a variável de referência para o tempo atual. [
]04:03 Ao desligar o motor: Calculamos os minutos e segundos restantes daquela última fração de tempo e somamos aos acumuladores. [
]05:35
3. Tratamento de Minutos e Segundos
Quando o motor desliga, a lógica deve converter os milissegundos restantes:
Minutos: Divide-se o valor de milissegundos por 60.000. [
]05:14 Segundos: O resto da divisão é convertido para segundos.
Overflow Interno: Se após a soma, os
Minutosforem superiores a 60, subtraímos 60 e somamos 1 àsHoras. O mesmo aplica-se aos segundos. [ ]06:06
4. Vantagens desta Abordagem
Robustez: Não perdes dados em caso de funcionamento contínuo por longos períodos.
Precisão: Manténs o registo exato até ao segundo.
Facilidade na IHM: É muito mais simples exibir três campos numéricos (HH:MM:SS) numa IHM do que tentar formatar uma variável
TIMEgigante. [ ]10:16
Conclusão
Aprimorar a lógica de um totalizador de horas é um passo fundamental para qualquer programador que deseja entregar um projeto profissional e à prova de falhas. Com esta estrutura de separação de variáveis, o teu horímetro será fiável durante toda a vida útil do equipamento.
No próximo tutorial, vamos ver como mostrar estes dados de forma elegante numa IHM Siemens!
Ficaste com alguma dúvida sobre as conversões de milissegundos? Deixa o teu comentário abaixo!


0 comentários
COMENTÁRIOS AGORA