[gtraduzir]

Por que seu CLP precisa parar agora? Como usar interrupções de CLP

Um Controlador Lógico Programável (CLP) geralmente executa sua lógica em um loop. Chamamos isso de ciclo de varredura. Alguns CLPs podem interromper tarefas de baixa prioridade e executar uma rotina especial para um evento de hardware ou um evento temporizado.

Índice

A Siemens chama essas rotinas de OBs. A Rockwell Logix as chama de tarefas. Imagine a seguinte situação: você está lendo um bom livro. De repente, seu telefone toca. Você marca a página. Atende a ligação. Quando termina, volta imediatamente para o livro.

UM CLP A interrupção funciona de maneira muito semelhante. A CPU não "para" de verdade. Em vez disso, ela pausa a lógica de menor prioridade, lida com o evento urgente e, em seguida, retorna ao ponto onde parou. Mesmo assim, o tempo de resposta depende da prioridade, do tipo de gatilho e da carga da CPU. Reações rápidas são reais. Elas simplesmente não são mágicas.

Afinal, o que é uma interrupção de um CLP?

Os PLCs comuns geralmente seguem um padrão básico: atualizam as saídas, leem as entradas para a memória e, em seguida, executam o programa do usuário com esses valores armazenados. Esse modelo funciona bem para muitas máquinas. No entanto, alguns eventos acontecem rápido demais para serem processados apenas pelo ciclo de varredura principal.

É por isso que os fornecedores oferecem blocos de interrupção de hardware (OBs), blocos de interrupção cíclica (OBs), blocos de interrupção baseados em tempo (OBs) e tarefas de evento para trabalhos especiais. No Logix, o controlador executa uma tarefa por vez, e uma tarefa periódica ou de evento pode interromper o trabalho de menor prioridade e, em seguida, retornar o controle para a tarefa anterior.

CS1H-CPU63H

Por que precisamos que eles parem?

Imagine uma lâmina de serra girando em alta velocidade. Você quer pegar uma sensor Aprimore a execução no ponto certo. Você não pode se dar ao luxo de reagir tarde. Se sua lógica principal demorar muito, a máquina pode avançar mais do que o desejado antes que a tarefa normal seja concluída.

O código orientado a eventos é útil porque é executado quando o gatilho ocorre, em vez de esperar pela próxima passagem completa pela lógica comum.

Mas aqui está a parte que requer atenção. Nem sempre é necessário um truque especial de "saída imediata" para impactar o mundo real rapidamente. Na Siemens, o sistema pode transferir as partições de imagem do processo de saída atribuídas a uma interrupção OB independentemente de ATUALIZAÇÃO_PO.

No Logix, uma tarefa normalmente processa as saídas ao terminar, a menos que você desabilite essa opção. Portanto, não presuma que uma tag de saída normal seja sempre muito lenta e não presuma que uma única instrução mágica resolva todos os casos. Primeiro, verifique como seu CLP atualiza as E/S. Em seguida, escolha o método correto para essa plataforma.

Diferentes marcas usam nomes diferentes. O Siemens S7-1200 usa blocos de organização, como blocos de interrupção de hardware (OBs) e blocos de interrupção cíclica (OBs). O Logix usa tarefas contínuas, periódicas e de evento.

O objetivo é o mesmo em ambos os casos: reagir no momento certo sem fazer com que todo o controle fique esperando. Os detalhes, porém, são específicos de cada marca.

Como usar a função de interrupção de um CLP?

Sinceramente, é bem fácil se você seguir as regras. As pessoas costumam fazer parecer mais complicado do que realmente é. Você pode simplificar.

Selecione o gatilho. Informe ao CLP qual evento deve iniciar a rotina rápida. Esse gatilho pode ser uma mudança na entrada digital, um evento de movimento, um evento HSC, uma etiqueta consumida ou uma interrupção temporizada.

Escreva um código rápido. Mantenha-o curto e conciso. Se você adicionar trabalho extra, aumentará a latência e o risco de sobreposição ou problemas de tempo limite.

Limpe o sinalizador. Em muitos casos, o sistema lida com a chamada de evento automaticamente. Mesmo assim, pode ser necessário redefinir a condição do seu aplicativo ou rearmar o evento de origem para que o próximo evento faça sentido.

Fique atento também à sobreposição. No Logix, se uma tarefa de evento for acionada novamente enquanto ainda estiver em execução, o controlador ignora esse acionamento sobreposto.

CP1E-NA20DT-D

Que tipos de interrupções existem?

Os nomes variam de uma marca para outra. Portanto, não considere a marca de um fornecedor como regra geral para todas as empresas do setor. Mesmo assim, esses três grupos oferecem um bom guia de trabalho.

Tipo de interrupçãoO que ele fazMelhor caso de uso
Hardware ou eventoÉ executado quando ocorre um evento de hardware ou software configurado e pode interromper tarefas de menor prioridade.Detecção rápida de bordas de sensores, marcas de registro, eventos HSC ou gatilhos relacionados a movimento.
Periódico ou cíclicoExecuta em intervalos fixos em vez de esperar pela varredura principal.Trabalho de controle regular que exige sincronização constante.
tratamento de falhas ou diagnósticosExecuta quando a CPU ou um módulo reporta um evento de tempo ou diagnóstico.Detecção de estouros de varredura, estouros de fila ou diagnósticos de módulo.

Vamos comparar as ideias de temporização. Os números exatos sempre dependem da CPU, da prioridade, da taxa de disparo e da carga total do programa. Portanto, use isso como um mapa mental, não como uma regra fixa.

MétricaCiclo de varredura principalTarefa de interrupção/evento de hardware
Tempo de execuçãoExecuta como parte da execução cíclica normal do programa, e o tempo depende da carga e da configuração do seu programa.É executado quando seu gatilho é acionado e pode interromper tarefas de menor prioridade, mas a latência real ainda depende da prioridade e da carga do sistema.
UrgênciaBom para lógica de máquina normal e sequenciamento geral.Melhor opção para eventos que exigem agilidade e não devem esperar pela lógica de rotina.
Comprimento do códigoPode conter lógica de máquina mais ampla.Deve ser curto para terminar antes do próximo gatilho e evitar problemas de sobreposição.

Como você pode ver, a diferença de velocidade pode ser enorme. Mesmo assim, não existe um tempo de resposta mágico que sirva para todos os PLCs. O segredo está nos detalhes.

CJ1W-OD262

Você está cometendo estes erros graves?

Vejo isso o tempo todo. Não assuma que um temporizador IEC padrão se comportará em uma interrupção única da mesma forma que se comporta em OB1 ou em uma tarefa cíclica normal.

A Siemens afirma que o temporizador é atualizado somente quando a instrução do temporizador é executada ou quando o código lê membros-chave do temporizador. Isso significa que uma interrupção de hardware ou uma tarefa de evento que é executada uma vez por gatilho geralmente resulta em um comportamento inadequado ou enganoso do temporizador. Uma interrupção cíclica ou uma tarefa periódica é diferente, pois é executada repetidamente.

Além disso, não escreva loops inativos para "esperar" o tempo passar. Isso é como pisar fundo no acelerador com o carro parado na garagem. Você desperdiça tempo de execução e convida a problemas. A Siemens observa que estouros de varredura, estouros de fila e conflitos de temporização de interrupção podem causar erros de tempo. Em alguns casos, falhas repetidas no tempo de ciclo podem levar a CPU a PARAR.

Outro erro grave é acionar interrupções em excesso. Nem toda pequena borda do sensor merece furar a fila. A Rockwell alerta que cada tarefa extra consome tempo do controlador que poderia ser usado pelas outras.

O texto também alerta que, se uma tarefa for acionada novamente enquanto ainda estiver em execução, o controlador ignorará esse acionamento sobreposto. Portanto, use interrupções somente quando realmente precisar delas. Caso contrário, sua solução rápida se transformará em uma grande confusão.

Potencialize seus projetos com PLC Omron, Mitsubishi, Schneider novos e originais – em estoque, prontos agora!

Conclusão

Interrupções ou tarefas de evento pausam o trabalho de menor prioridade para que o CLP possa reagir rapidamente a eventos urgentes. A CPU não é desligada. Ela alterna entre tarefas e depois retorna à operação. 

Elas são úteis quando um evento não deve esperar pela lógica cíclica normal. Interrupções de hardware, interrupções cíclicas e tarefas de eventos servem a esse propósito de maneiras diferentes. 

Mantenha seu código de interrupção curto. Códigos longos aumentam a latência e o risco de sobreposição. 

Não assuma que os temporizadores padrão funcionarão bem em uma rotina de evento único. Se você precisar de um comportamento temporizado, pense cuidadosamente se realmente deseja um evento de hardware, uma tarefa periódica ou uma interrupção cíclica. 

Não presuma que você sempre precise usar E/S física imediata para reagir rapidamente. Primeiro, verifique como seu CLP lida com imagens de processo, acesso direto à E/S e processamento de saída de tarefas. 

Fique atento a sobreposições, estouro de fila e falhas de tempo de ciclo. Lógica rápida é ótima. Lógica rápida que nunca termina é um desastre. 

Contate-nos

Basta preencher seu nome, endereço de e-mail e uma breve descrição de sua consulta neste formulário. Entraremos em contato com você em até 24 horas.

Você também pode achar esses tópicos interessantes

Peça um orçamento rápido

*respeitamos sua confidencialidade e todas as informações são protegidas.