Lógica de escada XOR com três interruptores: o design correto de paridade ímpar
Um guia corrigido sobre a lógica de escada XOR de três interruptores para as plataformas SLC 500 e Logix, abrangendo paridade ímpar, preparação de bits inter...
Três interruptores mantidos controlando uma saída costumam ser apresentados como um exercício de lógica ladder, mas a verdadeira questão de engenharia é mais precisa: a saída deve estar ligada quando um número ímpar de entradas estiver ativo ou a operação de qualquer interruptor deve simplesmente inverter o estado anterior da saída? Esses são requisitos diferentes. O primeiro é XOR combinacional, ou paridade ímpar. O segundo exige memória de estado e detecção de borda.
Para três interruptores seletores mantidos, a especificação usual é a paridade ímpar: a lâmpada fica ligada com um ou três interruptores fechados e desligada com zero ou dois. Registrar esse requisito antes de desenhar os contatos evita que um rung de aparência plausível implemente a função booleana errada.
O XOR de três entradas é verdadeiro quando o número de entradas verdadeiras é ímpar; ele não é igual a um comando de alternância memorizado.
Comece pelos oito estados de entrada
A sequência esperada da saída para as entradas S1, S2 e S3 é 0, 1, 1, 0, 1, 0, 0, 1 à medida que os estados binários avançam de 000 a 111. Em termos simples, um interruptor fechado liga a saída, dois interruptores fechados desligam a saída e os três interruptores fechados ligam a saída novamente.
É nesse último estado que muitas explicações se equivocam. O XOR de três entradas é uma função de paridade ímpar, portanto 111 deve produzir um resultado verdadeiro. Uma implementação que reconhece apenas “exatamente uma entrada verdadeira” não é XOR; ela exclui deliberadamente o estado com três entradas verdadeiras. Da mesma forma, fazer OR das três expressões XOR par a par produz uma função diferente: ela é verdadeira sempre que as entradas não são todas iguais, o que inclui os estados com duas entradas verdadeiras e, portanto, também não atende à tabela-verdade exigida.
A prática mais segura durante o comissionamento é tratar a tabela-verdade como teste de aceitação. Não avalie o programa com base em apenas duas ou três posições convenientes dos interruptores.
Faça uma cascata com dois estágios XOR
O XOR é associativo, o que permite a expressão (S1 XOR S2) XOR S3. Em um programa SLC 500, um bit interno pode armazenar o resultado do primeiro estágio. Um segundo rung combina então esse bit com S3. Assim, cada rung tem uma finalidade pequena e verificável, e o estado online fica mais fácil de diagnosticar.
Em uma implementação com contatos, cada estágio XOR de duas entradas usa dois caminhos paralelos: o primeiro verifica a entrada A como verdadeira e a entrada B como falsa; o segundo verifica A como falsa e B como verdadeira. Os dois caminhos se unem em uma única bobina. Repita o mesmo padrão com o bit intermediário e a terceira entrada.
O bit intermediário expõe o resultado de S1 XOR S2 antes que o segundo estágio o combine com S3.
Exemplo de plano de endereçamento
Em um projeto de treinamento típico do RSLogix 500, S1, S2 e S3 poderiam ser I:1/0, I:1/1 e I:1/2. O primeiro rung grava B3:0/0 como resultado intermediário, e o segundo grava O:2/0 como comando da lâmpada. Esses endereços são apenas exemplos; a configuração de E/S instalada deve determinar o mapeamento real.
O endereço intermediário deve ter um único escritor. Reutilizar B3:0/0 em outro ponto ou colocar outra instrução de saída para O:2/0 mais adiante no programa pode sobrescrever um resultado correto durante a mesma varredura. Faça a referência cruzada dos dois endereços antes de atribuir a culpa ao padrão XOR.
O XOR em nível de palavra não é automaticamente um atalho booleano
O conjunto de instruções do SLC 500 inclui uma instrução XOR para OR exclusivo bit a bit entre operandos de palavra. O Manual de Referência do Conjunto de Instruções do SLC 500 da Rockwell Automation documenta os operandos e destinos compatíveis. Essa instrução é útil para máscaras e palavras de status compactadas, mas não elimina a necessidade de definir quais bits de entrada participam de uma única decisão de paridade.
Para três entradas discretas, a lógica ladder com contatos em cascata costuma ser mais clara para a equipe de manutenção. Uma implementação em nível de palavra pode ser justificável quando o programa já compacta muitos bits de status e os reduz explicitamente a um resultado de paridade, mas a etapa de redução ainda precisa estar visível e ser testada.
Não confunda paridade com uma função de alternância
Uma instalação de iluminação de três vias com interruptores mantidos altera sua saída sempre que qualquer interruptor físico muda de posição. Em termos puramente booleanos, a saída em qualquer instante pode ser representada pela paridade das posições dos três interruptores. Nenhum estado armazenado é necessário, pois as próprias posições dos interruptores mantêm o estado.
Botões momentâneos são diferentes. Se pressionar qualquer um dos três botões deve alternar uma lâmpada, o CLP precisa detectar uma borda de subida e inverter um bit de comando retentivo uma vez por acionamento válido. Aplicar XOR diretamente a três entradas momentâneas apenas descreve quais botões estão pressionados durante aquela varredura; não memoriza o estado anterior da lâmpada.
Botões reais também podem apresentar trepidação de contato. Portanto, um projeto de alternância precisa de condicionamento das entradas, um pulso de disparo único, controle do bit retentivo e um estado inicial definido. Para padrões relacionados de varredura e manipulação de dados, o guia sobre como usar o valor de um temporizador SLC para configurar outro temporizador mostra por que a movimentação de dados e a ordem dos rungs devem ser explícitas.
Comissione a lógica como uma função, não como uma imagem
Primeiro, teste o bit intermediário de duas entradas isoladamente. Ele deve ser verdadeiro para 01 e 10, e falso para 00 e 11. Em seguida, teste a saída final nos oito estados possíveis das três entradas. Registre o estado observado em vez de confiar apenas no destaque verde do rung, pois forçamentos, bobinas duplicadas e a atualização da exibição online podem ocultar quem realmente controla a saída.
Depois, verifique o comportamento na energização, as transições entre os modos de programa, a substituição das entradas e a resposta a um circuito de campo com falha ou desconectado. A lógica XOR pode detectar discordância, mas não é, por si só, um diagnóstico de segurança. Se os interruptores participarem de uma função de proteção, o projeto precisará de entradas classificadas para segurança, monitoramento de discrepância, detecção de falhas e uma avaliação de riscos adequada à máquina.
As opções de hardware e migração para controladores legados e atuais podem ser consultadas na coleção de sistemas PLC e PAC, mas a família do processador, a tensão das E/S, o endereçamento e a responsabilidade pelo programa devem ser confirmados antes de adaptar este exemplo.
Por que a versão com bit interno é mais fácil de manter
Um único rung expandido pode expressar diretamente a paridade ímpar de três entradas, mas exige quatro combinações paralelas e fica mais difícil de inspecionar à medida que outras condições são adicionadas. A cascata de estágios XOR de duas entradas torna evidente a intenção booleana, fornece um ponto de verificação para diagnóstico e permite uma correspondência clara entre os endereços do RSLogix 500 e as tags BOOL nomeadas no Logix Designer.
Opinião editorial: a melhor solução ladder é aquela cuja tabela-verdade, comportamento de memória e resposta a falhas podem ser explicados durante uma transferência de responsabilidade para a equipe de manutenção. Um bit interno não é memória desperdiçada quando evita que o próximo engenheiro confunda paridade ímpar, lógica de exatamente uma entrada e uma alternância memorizada como se fossem a mesma função.
Perguntas frequentes
A saída deve estar ligada quando os três interruptores estiverem fechados?
Sim, se o requisito for XOR de três entradas ou paridade ímpar. Três entradas verdadeiras formam uma quantidade ímpar, portanto a saída é verdadeira. Se 111 precisar ser falso, a função exigida é “exatamente uma”, não XOR.
A instrução XOR do SLC 500 pode substituir os dois estágios ladder?
Ela executa XOR bit a bit em operandos de palavra. Pode fazer parte de uma solução com bits compactados, mas os três bits de entrada individuais ainda precisam ser organizados e reduzidos para que o bit de destino represente a paridade exigida. Para um pequeno circuito discreto, dois estágios com contatos geralmente são mais claros.
O bit intermediário acrescenta um atraso de uma varredura?
Não, desde que o rung que grava o bit intermediário seja executado antes do rung que o lê na mesma rotina e tarefa. O segundo rung verá o valor gravado anteriormente nessa varredura. A ordem do programa deve permanecer documentada e controlada.
O que muda se os dispositivos de campo forem botões momentâneos?
Uma alternância com botões momentâneos exige detecção de borda e armazenamento do estado da saída. O XOR combinacional, sozinho, não consegue memorizar se a lâmpada estava anteriormente ligada ou desligada.
O XOR é adequado para um circuito de votação de segurança?
Não, por si só. O XOR comum apenas avalia estados booleanos. Aplicações de segurança exigem uma arquitetura de segurança validada, cobertura diagnóstica, temporização de discrepância, hardware apropriado e verificação conforme a avaliação de riscos aplicável.