Totalizador de Horas Horas Funcionamento Motor [Parte 2] PLC / CLP Siemens Tia Portal

Por , Comentario
Compartilhar Facebook Compartilhar Twitter

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. [00:22]

  • 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_Funcionamento

  • Minutos_Funcionamento

  • Segundos_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! [02:14]

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". [03:26]

  1. Enquanto o motor está ligado, comparamos constantemente se a diferença atingiu 1 hora.

  2. Quando atinge 1 hora: Incrementamos o contador de horas e reiniciamos a variável de referência para o tempo atual. [04:03]

  3. 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 Minutos forem superiores a 60, subtraímos 60 e somamos 1 às Horas. 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 TIME gigante. [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!

Tutorial de como criar um totalizador de horas de funcionamento de motor, com outras informações para Manutenção como: Data Última Manutenção, Data Hora da Última Partida de Motor, Quantidade de Partidas do Motor.

Totalizador calculado utilizando como base o Clocl Data Time do PLC, que é forma mais precisa para este tipo de cálculo.

O desenvolvimento dessa lógica foi feita no primeiro vídeo:

Neste vídeo iremos aprimorar a lógica, afim de evitar o "estouro" de variável, fazendo acumuladores diversos e convertendo o formato das variáveis.

Se Increva em Nosso Canal Youtube:

0 comentários

COMENTÁRIOS AGORA