Logica ladder XOR a tre interruttori: il progetto corretto a parità dispari
Una guida corretta alla logica ladder XOR con tre interruttori per le piattaforme SLC 500 e Logix, che illustra la parità dispari, la gestione intermedia tra...
Tre interruttori a posizione mantenuta che controllano un’unica uscita vengono spesso presentati come un esercizio di logica ladder, ma la vera domanda ingegneristica è più precisa: l’uscita deve essere attiva quando un numero dispari di ingressi è vero, oppure l’azionamento di un interruttore deve semplicemente invertire lo stato precedente dell’uscita? Si tratta di requisiti diversi. Il primo è lo XOR combinatorio, o parità dispari. Il secondo richiede memoria dello stato e rilevamento dei fronti.
Per tre interruttori selettori a posizione mantenuta, la specifica consueta è la parità dispari: la lampada è accesa con uno o tre interruttori chiusi e spenta con zero o due. Mettere per iscritto questo requisito prima di disegnare i contatti impedisce che una linea apparentemente plausibile implementi la funzione booleana sbagliata.
Lo XOR a tre ingressi è vero quando il numero di ingressi veri è dispari; non equivale a un comando di commutazione con memoria.
Inizia dagli otto stati degli ingressi
La sequenza di uscita prevista per gli ingressi S1, S2 e S3 è 0, 1, 1, 0, 1, 0, 0, 1 mentre gli stati binari degli ingressi avanzano da 000 a 111. In parole semplici, un interruttore chiuso attiva l’uscita, due interruttori chiusi la disattivano e tutti e tre gli interruttori chiusi la riattivano.
È proprio quest’ultimo stato a causare molti errori nelle spiegazioni. Lo XOR a tre ingressi è una funzione di parità dispari, quindi 111 deve produrre un risultato vero. Un’implementazione che riconosce solo “esattamente un ingresso vero” non è uno XOR: esclude deliberatamente lo stato con tre ingressi veri. Al contrario, mettere in OR le tre espressioni XOR a coppie produce una funzione diversa: è vera ogni volta che gli ingressi non sono tutti uguali, includendo quindi anche gli stati con due ingressi veri e fallendo anch’essa rispetto alla tabella della verità richiesta.
La pratica di messa in servizio più sicura consiste nel trattare la tabella della verità come test di accettazione. Non valutare il programma sulla base di due o tre comode posizioni degli interruttori.
Metti in cascata due stadi XOR a due ingressi
Lo XOR è associativo, quindi è possibile usare l’espressione (S1 XOR S2) XOR S3. In un programma SLC 500, un bit interno può memorizzare il risultato del primo stadio. Una seconda linea combina poi quel bit con S3. In questo modo ogni linea ha uno scopo circoscritto e verificabile, rendendo più semplice diagnosticare lo stato online.
In un’implementazione con contatti, ogni stadio XOR a due ingressi utilizza due percorsi paralleli: il primo verifica che l’ingresso A sia vero e l’ingresso B falso; il secondo verifica che A sia falso e B vero. I due percorsi confluiscono in un’unica bobina. Ripeti lo stesso schema con il bit intermedio e il terzo ingresso.
Il bit intermedio rende visibile il risultato di S1 XOR S2 prima che il secondo stadio lo combini con S3.
Esempio di piano degli indirizzi
In un tipico progetto didattico RSLogix 500, S1, S2 e S3 potrebbero essere I:1/0, I:1/1 e I:1/2. La prima linea scrive B3:0/0 come risultato intermedio e la seconda scrive O:2/0 come comando della lampada. Questi indirizzi sono solo esempi; la configurazione I/O installata deve determinare la mappatura effettiva.
L’indirizzo intermedio dovrebbe avere un solo writer. Riutilizzare B3:0/0 altrove, o inserire in seguito un’altra istruzione di uscita per O:2/0, può sovrascrivere un risultato corretto durante la stessa scansione. Controlla i riferimenti incrociati di entrambi gli indirizzi prima di attribuire il problema allo schema XOR.
Lo XOR a livello di word non è automaticamente una scorciatoia booleana
Il set di istruzioni SLC 500 include un’istruzione XOR per l’OR esclusivo bit per bit tra operandi word. Il Manuale di riferimento del set di istruzioni SLC 500 di Rockwell Automation documenta gli operandi e le destinazioni supportati. Questa istruzione è utile per maschere e word di stato impacchettate, ma non elimina la necessità di definire quali bit di ingresso partecipino a una singola decisione di parità.
Per tre ingressi discreti, la logica ladder con contatti a cascata è generalmente più chiara per il personale di manutenzione. Un’implementazione a livello di word può essere giustificata quando un programma raccoglie già molti bit di stato e li riduce esplicitamente a un risultato di parità, ma il passaggio di riduzione deve comunque essere visibile e verificato.
Non confondere la parità con una funzione di commutazione
Una configurazione di illuminazione a tre vie con interruttori a posizione mantenuta cambia l’uscita ogni volta che un interruttore fisico cambia posizione. In termini puramente booleani, l’uscita in ogni istante può essere rappresentata dalla parità delle tre posizioni degli interruttori. Non è necessaria alcuna memoria dello stato, perché sono le posizioni degli interruttori a conservarlo.
I pulsanti momentanei sono diversi. Se la pressione di uno qualsiasi dei tre pulsanti deve commutare una lampada, il PLC deve rilevare un fronte di salita e invertire un bit di comando ritentivo una sola volta per ogni pressione valida. Applicare direttamente lo XOR a tre ingressi momentanei descrive soltanto quali pulsanti sono premuti durante quella scansione; non memorizza lo stato precedente della lampada.
I pulsanti reali possono inoltre presentare rimbalzi. Un progetto di commutazione richiede quindi il condizionamento degli ingressi, un impulso one-shot, la gestione esclusiva del bit ritentivo e uno stato di avvio definito. Per schemi correlati relativi alla scansione e alla gestione dei dati, la guida su come usare il valore di un timer SLC per impostarne un altro mostra perché il trasferimento dei dati e l’ordine delle linee debbano essere espliciti.
Metti in servizio la logica come una funzione, non come un disegno
Per prima cosa verifica da solo il bit intermedio a due ingressi. Deve essere vero per 01 e 10, e falso per 00 e 11. Poi verifica l’uscita finale in tutti gli otto stati dei tre ingressi. Registra lo stato osservato invece di affidarti soltanto all’evidenziazione verde della linea, perché forzature, bobine duplicate e aggiornamenti della visualizzazione online possono mascherare chi controlla effettivamente l’uscita.
Verifica quindi il comportamento all’accensione, i passaggi tra le modalità del programma, la sostituzione degli ingressi e la risposta a un circuito di campo guasto o scollegato. La logica XOR può rilevare una discordanza, ma non costituisce da sola una diagnostica di sicurezza. Se gli interruttori partecipano a una funzione protettiva, il progetto richiede ingressi con certificazione di sicurezza, monitoraggio delle discrepanze, rilevamento dei guasti e una valutazione dei rischi adeguata alla macchina.
Le opzioni hardware e di migrazione per controllori legacy e attuali possono essere consultate nella raccolta di sistemi PLC e PAC, ma prima di adattare questo esempio è necessario confermare la famiglia del processore, la tensione I/O, l’indirizzamento e la titolarità del programma.
Perché la versione con bit interno è più facile da manutenere
Una singola linea estesa può esprimere direttamente la parità dispari a tre ingressi, ma richiede quattro combinazioni parallele e diventa più difficile da analizzare quando si aggiungono altre condizioni. La cascata di stadi XOR a due ingressi rende evidente l’intento booleano, offre un punto di controllo diagnostico e consente una corrispondenza chiara tra gli indirizzi RSLogix 500 e i tag BOOL denominati in Logix Designer.
Considerazione editoriale: la soluzione ladder migliore è quella la cui tabella della verità, il comportamento della memoria e la risposta ai guasti possono essere spiegati durante un passaggio di consegne alla manutenzione. Un bit interno non è memoria sprecata quando impedisce al tecnico successivo di confondere la parità dispari, la logica “esattamente uno” e una commutazione con memoria come se fossero la stessa funzione.
Domande frequenti
L’uscita deve essere attiva quando tutti e tre gli interruttori sono chiusi?
Sì, se il requisito è lo XOR a tre ingressi o la parità dispari. Tre ingressi veri costituiscono un numero dispari, quindi l’uscita è vera. Se 111 deve essere falso, la funzione richiesta è “esattamente uno”, non XOR.
L’istruzione XOR dello SLC 500 può sostituire i due stadi ladder?
Esegue lo XOR bit per bit su operandi word. Può rientrare in una soluzione con bit impacchettati, ma i tre bit di ingresso singoli devono comunque essere organizzati e ridotti in modo che il bit di destinazione rappresenti la parità richiesta. Per un piccolo circuito discreto, due stadi con contatti sono generalmente più chiari.
Il bit intermedio aggiunge un ritardo di una scansione?
Non quando la linea che scrive il bit intermedio viene eseguita prima della linea che lo legge nella stessa routine e nello stesso task. La seconda linea vede il valore scritto in precedenza durante quella scansione. L’ordine del programma deve rimanere documentato e sotto controllo.
Cosa cambia se i dispositivi di campo sono pulsanti momentanei?
Una commutazione con pulsanti momentanei richiede il rilevamento del fronte e la memorizzazione dello stato dell’uscita. Lo XOR combinatorio da solo non può ricordare se la lampada era precedentemente accesa o spenta.
Lo XOR è adatto a un circuito di voto di sicurezza?
Non da solo. Lo XOR ordinario valuta soltanto stati booleani. Le applicazioni di sicurezza richiedono un’architettura di sicurezza validata, un’adeguata copertura diagnostica, temporizzazioni delle discrepanze, hardware appropriato e una verifica rispetto alla valutazione dei rischi applicabile.