Implementierung einer XOR-Leiterlogik mit 3 Schaltern und internem Bit
Implementieren Sie in LogixPro oder RSLogix 500 eine XOR-Lichtschaltung mit 3 SPST-Schaltern und einem internen Relaisbit. Enthält Wahrheitstabellen, boolesc...
Die klassische Übung — drei SPST-Schalter steuern ein Licht so, dass jeder einzelne Schalter den Ausgang umschaltet — lässt sich auf ein dreieingängiges exklusives Oder (ungerade Parität) reduzieren. Ein Zwei-Eingänge-XOR ist ein vertrautes Paar gekreuzter XIC/XIO-Zweige. Dieses Muster durch einen dritten parallelen Zweig zu erweitern, verallgemeinert es nicht: Es implementiert eine Summe paarweiser XORs und schaltet das Licht bei drei geschlossenen Schaltern ein, obwohl die Spezifikation nur bei ungerader Parität ein Einschalten verlangt. Die akzeptierte Lösung ist ein internes Relaisbit, das A⊕B speichert, gefolgt von einer zweiten Stufe, die (A⊕B)⊕C berechnet.
Ungerade Parität über drei gehaltene Eingänge ist XOR — keine dreizweigige inklusive Struktur.
Wahrheitstabelle (1 = geschlossen)
| S1 | S2 | S3 | Licht | Parität |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | gerade |
| 0 | 0 | 1 | 1 | ungerade |
| 0 | 1 | 0 | 1 | ungerade |
| 0 | 1 | 1 | 0 | gerade |
| 1 | 0 | 0 | 1 | ungerade |
| 1 | 0 | 1 | 0 | gerade |
| 1 | 1 | 0 | 0 | gerade |
| 1 | 1 | 1 | 1 | ungerade |
Zwei-Eingangs-Grundschaltung
|--[S1 XIC]-+-[S2 XIO]-+ | | +--( Light )--| |--[S1 XIO]-[S2 XIC]---+ |
I:1/0, I:1/1 → O:2/0 in LogixPro/RSLogix-500-Simulatoren (oder BOOL-Tags in Logix Designer) zuordnen. Vier Zeilen überprüfen, bevor S3 hinzugefügt wird.
Warum der dritte parallele Zweig fehlschlägt
Y = (S1⊕S2) ∨ (S1⊕S3) ∨ (S2⊕S3) wird für die Zeile mit drei geschlossenen Schaltern wahr, weil jedes Paar unterschiedlich ist. Studierende beschreiben das Symptom als ein Licht, das „eingeschaltet bleibt“, sobald zwei Schalter geschlossen werden. Das ist ein inklusives paarweises Verhalten, kein XOR.
XOR über B3:0/0 (oder ein BOOL-Tag) kaskadieren — die Stufen nicht paarweise parallel mit OR verknüpfen.
Implementierung mit einem internen Bit
Rung 2 — S1 XOR S2 -> B3:0/0 |--[I:1/0 XIC]-+-[I:1/1 XIO]-+ | | +--( B3:0/0 )--| |--[I:1/0 XIO]-[I:1/1 XIC]---+ | Rung 3 — B3:0/0 XOR S3 -> O:2/0 |--[B3:0/0 XIC]-+-[I:1/2 XIO]-+ | | +--( O:2/0 )--| |--[B3:0/0 XIO]-[I:1/2 XIC]---+ |
Da XOR assoziativ ist, spielt die Reihenfolge der Schalter keine Rolle. In Logix Designer werden dieselben Gleichungen zu XOR_Mid := S1 XOR S2; Light := XOR_Mid XOR S3; für strukturierten Text oder identische Kontaktmuster bei BOOL-Tags. Das Zwischenbit wird in einem Programmzeilenabschnitt geschrieben und im nächsten innerhalb desselben Scans gelesen; das ist für dieses Muster beabsichtigt und stabil.
Vorgehensweise in LogixPro / RSLogix 500
- Die diskreten Eingangs- und Ausgangsmodule im Simulator bestätigen (Standardzuordnung I:1 / O:2)
- Sicherstellen, dass die Binärdatei B3 mit freien Bits vorhanden ist, oder in Logix Designer ein BOOL-Tag namens XOR_Mid erstellen
- Rung 2 aufbauen, der B3:0/0 von S1 und S2 über gekreuzte XIC/XIO-Kontakte ansteuert
- Build rung 3 driving O:2/0 from B3:0/0 and S3 using the same crossed pattern
- Erstellen Sie Kontaktplanzeile 3, die O:2/0 aus B3:0/0 und S3 ansteuert, und verwenden Sie dabei dasselbe gekreuzte Muster
- Laden Sie das Programm herunter, schalten Sie den Prozessor in den RUN-Modus und löschen Sie alle Forces, bevor Sie die Wahrheitstabelle durchlaufen
Setzen Sie jede Eingangsanzeige-LED und die Ausgangslampe einmal kurzzeitig per Force, um die Verdrahtung zu prüfen, und löschen Sie anschließend die Forces
| Adressplan und Alternativen | Plattform | Zwischenwert |
|---|---|---|
| Notizen | B3:0/0 | RSLogix 500 / SLC |
| Bit in einer Binärdatei | XOR_Mid BOOL | Programm- oder Steuerungsbereich |
| LogixPro | B3:0/0 | Kompatibel mit RSLogix-500-Laborübungen |
Optionale Diagnosefunktionen behalten beide Zwischenvariablen bei: B3:0/0 = S1 XOR S2 und B3:0/1 = mid XOR S3. Steuern Sie anschließend die Lampe über B3:0/1, damit Online-Monitore die Kette an jeder der beiden Stufen unterbrechen können. XOR-Anweisungen auf Wortebene können viele Eingänge für eine Paritätsprüfung bündeln, verschleiern jedoch das Lehrmuster für drei Schalter. Vermeiden Sie De-Morgan-Erweiterungen, die „nicht zwei beliebige Eingänge aktiv“ als eine Vielzahl von Kontakten ausdrücken – die Kaskade mit internen Bits bleibt sowohl auf Trainingsstationen als auch bei produktiven Betriebsartenschaltern die wartbare Form.
Durchlaufen Sie vor der Abnahme alle acht Paritätszeilen
- Durchlaufen Sie alle acht Zeilen der Wahrheitstabelle, nachdem alle Forces gelöscht wurden
- Bestätigen Sie, dass drei geschlossene Schalter die Lampe einschalten (ungerade Parität)
- Schalten Sie jeden Schalter einzeln um und prüfen Sie, ob der Ausgang wechselt
- Wenn die Lampe mit zwei Eingängen dauerhaft eingeschaltet bleibt, verwenden Sie weiterhin eine paarweise ODER-Logik
- Optional: Lösen Sie einen Alarm aus, wenn zwei rastende Betriebsartenschalter nach der Entprellung in realen Maschinen den Status „true“ melden
- Dokumentieren Sie die boolesche Identität (A XOR B) XOR C in den Kommentaren der Kontaktplanzeile für die nächste bearbeitende Person
Benennen Sie Zwischenvariablen nach ihrer Funktion (XOR_Mid, ModeParity) statt nach anonymen Bits, damit die nächste Änderung lesbar bleibt. Wenden Sie dieselbe Disziplin in allen Anlagen an, die unter PLC- und PAC-Systemen standardisiert sind.
Über den Autor
Mark Townsend | Leitender Automatisierungsingenieur – Allen-Bradley-Systeme
Mark Townsend ist ein leitender Automatisierungsingenieur mit mehr als 18 Jahren Erfahrung mit Allen-Bradley-Plattformen, darunter ControlLogix, CompactLogix und das ältere SLC-500. Zu seinem Arbeitsalltag gehören RSLogix-/Studio-5000-Logik sowie die Inbetriebnahme von FactoryTalk-View-HMIs in veralteten und heterogenen Anlagen.