XOR_8_BOOL
Einleitung
Der Funktionsblock XOR_8_BOOL ist ein generischer Baustein zur Berechnung der logischen Exklusiv-ODER-Verknüpfung (XOR) über bis zu acht boolesche Eingangswerte. Er folgt dem IEC 61131-3 Standard und ist für den Einsatz in der 4diac-IDE konzipiert. Der Block führt seine Operation ereignisgesteuert aus und liefert das Ergebnis über einen einzelnen booleschen Ausgang.
Schnittstellenstruktur
Ereignis-Eingänge
REQ (Normal Execution Request): Dieses Ereignis löst die Berechnung aus. Es ist mit allen acht Dateneingängen (
IN1bisIN8) verknüpft.
Ereignis-Ausgänge
CNF (Execution Confirmation): Dieses Ereignis signalisiert den Abschluss der Berechnung. Es ist mit dem Datenausgang
OUTverknüpft.
Daten-Eingänge
IN1 (BOOL): XOR-Eingang 1.
IN2 (BOOL): XOR-Eingang 2.
IN3 (BOOL): XOR-Eingang 3.
IN4 (BOOL): XOR-Eingang 4.
IN5 (BOOL): XOR-Eingang 5.
IN6 (BOOL): XOR-Eingang 6.
IN7 (BOOL): XOR-Eingang 7.
IN8 (BOOL): XOR-Eingang 8.
Daten-Ausgänge
OUT (BOOL): Das Ergebnis der XOR-Verknüpfung aller aktiven Eingänge.
Adapter
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise
Bei Eintreffen des Ereignisses REQ liest der Funktionsblock die Werte aller acht booleschen Eingänge (IN1 bis IN8). Anschließend berechnet er das logische Exklusiv-ODER über alle diese Eingangswerte. Das Ergebnis dieser Berechnung wird am Datenausgang OUT ausgegeben und gleichzeitig wird das Bestätigungsereignis CNF gesetzt, um den Abschluss des Vorgangs zu signalisieren.
Die logische Funktion lässt sich wie folgt beschreiben:
OUT = IN1 XOR IN2 XOR IN3 XOR IN4 XOR IN5 XOR IN6 XOR IN7 XOR IN8
Ein XOR (Exklusiv-ODER) liefert genau dann TRUE (1) als Ergebnis, wenn eine ungerade Anzahl der verknüpften Eingänge TRUE (1) ist. Ist die Anzahl der wahren Eingänge gerade, ist das Ergebnis FALSE (0).
Technische Besonderheiten
Generischer Baustein: Der Block ist als generischer Baustein (
GEN_XOR) gekennzeichnet, was seine Wiederverwendbarkeit und mögliche Parametrierung für andere Datentypen andeutet. In dieser konkreten Instanz ist er jedoch auf den DatentypBOOLfestgelegt.Ereignisgesteuerte Ausführung: Die Operation wird nur bei einem eingehenden
REQ-Ereignis durchgeführt, was eine effiziente und deterministische Ablaufsteuerung ermöglicht.Feste Eingangsanzahl: Der Block bietet genau acht Eingänge. Nicht benötigte Eingänge sollten auf einen definierten logischen Wert (z.B.
FALSE) gesetzt werden.
Zustandsübersicht
Der Funktionsblock besitzt keinen internen Zustand im Sinne eines Speichers. Sein Verhalten ist rein kombinatorisch und ereignisgesteuert:
Ruhezustand: Wartet auf das Eintreffen des
REQ-Ereignisses.Berechnungszustand: Bei
REQwerden alle Eingänge gelesen und die XOR-Operation durchgeführt.Ausgabezustand: Das Ergebnis wird an
OUTausgegeben und dasCNF-Ereignis wird generiert. Anschließend kehrt der Block in den Ruhezustand zurück.
Anwendungsszenarien
Paritätsprüfung: Erkennung, ob eine ungerade Anzahl von Signalen (z.B. Fehlermeldungen, Grenzwertüberschreitungen) in einer Gruppe aktiv ist.
Umschaltlogik: Steuerung, bei der eine Aktion nur dann ausgeführt werden soll, wenn genau eines von mehreren möglichen Steuersignalen aktiv ist (z.B. Wahl zwischen manuellem und automatischem Modus).
Verschlüsselungs- und Codierungsgrundfunktionen: Als Basisbaustein für einfache kryptografische Operationen oder Fehlererkennungscodes.
Vergleich von zwei oder mehr Zuständen: Feststellung, ob sich mindestens ein Signal in einer Gruppe von seinem Sollzustand unterscheidet.
⚖️ Vergleich mit ähnlichen Bausteinen
OR_8_BOOL/AND_8_BOOL: Diese Blöcke berechnen die logische ODER- bzw. UND-Verknüpfung. Im Gegensatz zum XOR liefert ODERTRUE, wenn mindestens ein Eingang wahr ist, und UND liefertTRUEnur, wenn alle Eingänge wahr sind. XOR ist spezifischer und reagiert auf die Parität (gerade/ungerade) der wahren Eingänge.XOR(mit 2 Eingängen): Ein Standard-XOR-Block mit nur zwei Eingängen.XOR_8_BOOLerweitert diese Funktionalität auf bis zu acht Eingänge, ohne dass mehrere Blöcke verkettet werden müssen. Siehe: XOR_8Kombinatorische Logik in SFC/ST: Die Funktion könnte auch in Structured Text (ST) direkt programmiert werden (z.B.
OUT := IN1 XOR IN2 XOR ...;). Der Vorteil des FBs liegt in der standardisierten, wiederverwendbaren und grafisch darstellbaren Schnittstelle innerhalb von FBD-Netzwerken.
Fazit
Der XOR_8_BOOL ist ein spezialisierter, zuverlässiger und einfach zu verwendender Funktionsblock für logische XOR-Operationen mit bis zu acht Eingängen. Seine ereignisgesteuerte Architektur macht ihn ideal für die Integration in steuerungstypische Ablaufstrukturen der 4diac-IDE. Er eignet sich besonders für Anwendungen, bei denen die Parität von Signalgruppen von Bedeutung ist, und bietet eine klar definierte Alternative zu den grundlegenden ODER- und UND-Verknüpfungen.