Erros de programação de PLC que cometemos – Parte 1: Contatos virtuais NA e NC
Todos nós provavelmente já vimos um diagrama elétrico com os dois principais tipos de contatos elétricos: normal aberto e normal fechado (NA e NF) e certamente sabemos as diferenças entre um e outro. Um fato curioso que reparei que acontece muito é que quando trazemos o conceito de NA e NF para uma aplicação de PLC muita gente se atrapalha, principalmente quando se está iniciando neste mundo.
Se atrapalha tanto no conceito de quando usar estes contatos para interligação elétrica ao PLC quanto na utilização das instruções virtuais de “contato aberto” e “contato fechado”. E é disso que falarei neste post.
2 equívocos sobre instruções NA e NF em lógica de PLC
Primeiramente, vamos parar para analisar dois dos principais equívocos que causam toda esta confusão:
- Equívoco número 1: A tendência que temos em determinadas situações de erroneamente replicar de forma fiel na lógica de PLC um circuito elétrico que executa a mesma função. Vamos falar adiante do clássico caso da lógica de selo x circuito de selo;
- Equívoco número 2: A tendência que temos de erroneamente pensar que que a instrução lógica de contato virtual normal aberto no PLC tem necessariamente que se associar a um contato normal aberto em campo e a instrução de contato virtual normal fechado no PLC tem necessariamente que se associar com um contato normal fechado em campo;
Um exemplo clássico onde se observa estes dois equívocos ao mesmo tempo é na famosa lógica de comando elétrico para partida direta com selo de um motor. Mais precisamente com o botão desliga na lógica. Um circuito elétrico que executa a função de selo de um contator pode ser visto na imagem a seguir:
Diagrama de carga e comando – Partida direta de motor com selo
Ao criar uma lógica no PLC que execute a mesma função deste circuito, muitas pessoas terão o instinto de criar a lógica de tal forma que represente fielmente o circuito elétrico:
Circuito elétrico de selo e sua representação (errônea) na lógica
Observação: Adotei a lógica Ladder como exemplo por ser a mais conhecida e ter mais similaridade com um diagrama elétrico. Também não entrei no mérito de nomenclaturas das variáveis. Deixei a nomenclatura de variáveis da lógica semelhante à do circuito para facilitar o entendimento.
Por que foi um equívoco representar a lógica de forma idêntica ao circuito? Do ponto de vista funcional, a lógica não está incorreta. Se o software que você utilizar tiver a opção de simular a lógica, você verá que ela funcionará perfeitamente. Mas vamos prestar atenção em um elemento desta lógica: A instrução de contato virtual normal fechado, que recebe o sinal do botão desliga de campo. Esta instrução foi colocada na lógica de forma a representar o contato normal fechado de campo que há no diagrama de comando. É nessa tendência de associar um contato de lógica a um contato equivalente de campo que mora toda a confusão e que prega muita peça em programadores de PLC. Até os mais experientes. Vamos entender o porquê.
“Contatos virtuais” de lógica de PLC não são o mesmo que contatos físicos de campo
O contato físico de campo determina se será enviado ou não sinal elétrico para a sua respectiva entrada digital no PLC. Ao fazer isto, este contato manipula um endereço único de memória do PLC que está vinculado à sua entrada.
Contatos virtuais nada mais são do que operadores lógicos que executam uma determinada função lógica e retornam verdadeiro ou falso, permitindo ou não continuidade no fluxo da lógica. Para fazer isto, estes operadores têm como referência o valor de uma de memória de PLC, que pode ser uma memória interna ou uma memória vinculada a uma entrada/saída de campo.
Parece que não faz muita diferença falar isto, mas então vamos voltar ao exemplo da lógica de selo que este conceito fará mais sentido. Mas não iremos somente analisar a lógica; iremos também entender a dinâmica dos sinais de campo e a sua influência dentro da lógica.
Vamos considerar o exemplo da lógica de selo utilizando a INSTRUÇÃO “normalmente fechado” para processar o estado da entrada do botão desliga (BDES) e o CONTATO FÍSICO do deste mesmo botão também normal fechado. Em situação de repouso (botão desliga não pressionado) acontecerá o seguinte (veja a imagem a seguir para ficar mais claro):
- Como o botão desliga de campo BDES é do tipo NF, ele irá alimentar a sua respectiva entrada digital I1;
- Como a entrada digital I1 deste botão está vinculada à variável de memória BDES, este endereço de memória assumirá o estado lógico verdadeiro (1);
- A instrução de contato virtual normal fechado nada mais faz que executar uma função que é analisar o estado da memória associada a ela, que no caso é BDES. Como BDES = 1, ela interrompe o “circuito” da lógica de selo. Como consequência, mesmo apertando o botão liga, não seria possível acionar K1.
Lógica de selo com contato de botão desliga como normal fechado e instrução em lógica como contato virtual normal fechado, em situação de repouso
Neste exemplo, associar o contato físico normal fechado com uma instrução de lógica “normalmente fechado”, trará a consequência de que mesmo sem pressionar o botão desliga, ele atuaria a entrada I1 e a sua representação lógica na variável BDES combinada com a instrução de contato virtual normal fechado fará com que o circuito fique interrompido.
Para acionar K1 via BLIG, alguém teria de ficar pressionando e segurando o botão de campo BDES o tempo inteiro. Mas isto não faria muito sentido, não é?
Neste caso em específico, o correto a considerar para que a lógica funcione corretamente é associar o contato normal fechado de campo a uma instrução de contato virtual normal aberto no PLC. Vamos considerar agora o exemplo da lógica de selo utilizando a INSTRUÇÃO de contato virtual “normalmente aberto” para processar o estado da entrada do botão desliga (BDES) e o CONTATO FÍSICO do botão desliga de campo continuando como normal fechado.
Circuito elétrico de selo e sua representação (correta) na lógica
Em situação de repouso (com o botão desliga não pressionado) aconteceria o seguinte:
- O botão desliga de campo iria alimentar a sua respectiva entrada digital I1
- Como a entrada digital deste botão está vinculada à variável de memória BDES, este endereço de memória iria assumir o estado lógico verdadeiro (1)
- A instrução de contato virtual normal fechado, ao analisar o estado de BD = 1, permitirá o fluxo no “circuito” da lógica de selo. Ao apertar o botão liga, não seria K1 seria acionado e a lógica iria executar o selo da mesma forma que o circuito elétrico equivalente faria.
Lógica de selo com contato de botão desliga como normal fechado e instrução em lógica como contato virtual normal aberto, em situação de repouso
Conclusão
Deu para perceber toda a diferença que faz a representação de um contato normal fechado em uma simples lógica de selo, não é? Imagina então em uma lógica complexa. A moral da história é que ao desenvolver uma lógica de PLC que execute uma função que seja equivalente a um circuito elétrico, não tome como regra uma equivalência direta do mundo real com a lógica do PLC. Não vá simplesmente associando contatos físicos de campo com contatos virtuais em lógica.
De forma simplificada, contatos físicos no mundo real tem a função de enviar sinais às entradas digitais do PLC e manipular o valor de uma variável de memória que está associada a esta entrada. Os contatos virtuais na lógica são operadores lógicos que irão analisar o estado de uma determinada memória associada do PLC, seja esta memória vinculada a uma entrada/saída digital ou a um endereço interno de memória do PLC. Eles não são necessariamente uma representação fiel ao contato de campo.
Tenha em mente este conceito e mentalize como seria o comportamento da sua lógica considerando os contatos de campo em repouso e atuados. Fazer este exercício de pensar como as coisas ocorrem no campo ajuda muito. Este tipo de equívoco que foi abordado é mais comum do que se imagina e às vezes mesmo simulando na lógica o programador pode não conseguir detectá-lo, pois estará apenas olhando para a lógica e esquecendo o campo. E tem que entender como é a dinâmica do campo para se ter uma simulação que seja assertiva.
Se não fizer desta forma, pode ocorrer da lógica funcionar perfeitamente na simulação, mas quando chegar a etapa de comissionamento, o programador terá algumas surpresas. E na pressão do comissionamento, qualquer problema simples pode lhe causar muito estresse.
A intenção deste post é ajudar a você a não cair neste tipo de pegadinha. Mas se mesmo assim isto lhe ocorrer, fique tranquilo, pois apesar de simples, é algo que prega peça até em programadores mais experientes. O que importa é você “registrar” este erro para ficar como aprendizado. Assim, da próxima vez você estará mais preparado ainda.
E tem mais por vir…
Reparem que até o momento eu falei de como a representação de contatos de campo na lógica afeta o funcionamento dela. Fizemos uma análise de alterações apenas a nível de lógica, mas não mudamos nada em campo. Talvez você tenha algumas perguntas em mente, como:
- E que diferença faz quando altera os tipos de contato de campo?
- Posso trocar em campo um contato NF por um NA e inverter a instrução na lógica de PLC?
Este é um tipo de pergunta que abre outra discussão. O tipo de contato de campo também é outro detalhe que causa confusão e equívocos (de iniciantes a experientes) e envolve uma questão séria: Segurança. Em um próximo post iremos ver como a troca de um contato NF para NA pode deixar uma máquina “disparada” ou a troca de um contato NA por NF pode fazer com que uma máquina seja danificada por falta de lubrificação e questionar uma frase que escutamos com muita frequência no mundo da automação: “Pensou em segurança de equipamentos e pessoas, temos que utilizar contato NF”. Vamos ver se é realmente sempre assim. Será um tema muito interessante.
Como sempre, espero muito que estes minutos de leitura tenha agregado algum conhecimento e valor para você. Caso sim agradeceríamos muito se considerasse e compartilhasse, para que seja útil a mais pessoas também. Muito obrigado pela leitura, um grande abraço e até o próximo post!
[…] foi discutido em outro post sobre algumas confusões que contatos virtuais normal aberto (NA) e normal fechado (NF) causam em […]
[…] de um ambiente acadêmico e vamos para um ambiente industrial, alguns deles até já abordados neste post e neste […]