XOR_6_BOOL
Einleitung
Der Funktionsblock XOR_6_BOOL ist ein generischer Baustein zur Berechnung der logischen Exklusiv-ODER-Verknüpfung (XOR) für bis zu sechs boolesche Eingangswerte. Er folgt dem IEC 61131-3 Standard und ist für den Einsatz in Steuerungs- und Automatisierungsanwendungen konzipiert. Der Baustein wartet auf ein Auslöseereignis, berechnet das Ergebnis der XOR-Operation über alle aktiven Eingänge und gibt dieses zusammen mit einem Bestätigungsereignis aus.
Schnittstellenstruktur
Der FB besitzt einen ereignisgesteuerten Ein-/Ausgangsmechanismus mit sechs booleschen Dateneingängen und einem booleschen Datenausgang.
Ereignis-Eingänge
REQ (Normal Execution Request): Dieses Ereignis löst die Berechnung aus. Beim Eintreffen von
REQwerden die Werte an den EingängenIN1bisIN6gelesen und die XOR-Operation durchgeführt.
Ereignis-Ausgänge
CNF (Execution Confirmation): Dieses Ereignis wird nach Abschluss der Berechnung ausgelöst und signalisiert, dass das Ergebnis am Ausgang
OUTbereitsteht.
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.
Daten-Ausgänge
OUT (BOOL): Das Ergebnis der XOR-Verknüpfung aller sechs Eingänge.
Adapter
Dieser Funktionsblock verfügt über keine Adapterschnittstellen.
Funktionsweise
Bei Auslösung durch das REQ-Ereignis berechnet der Baustein den logischen XOR-Wert über alle sechs Eingänge IN1 bis IN6. Die XOR-Operation ergibt genau dann TRUE (1), wenn eine ungerade Anzahl der Eingänge den Wert TRUE hat. Sind null, zwei, vier oder sechs Eingänge TRUE, ist das Ergebnis FALSE (0). Formal entspricht dies der Berechnung: OUT = IN1 XOR IN2 XOR IN3 XOR IN4 XOR IN5 XOR IN6. Nach der Berechnung wird das Ergebnis am Datenausgang OUT ausgegeben und gleichzeitig das Bestätigungsereignis CNF aktiviert.
Technische Besonderheiten
Generischer Baustein: Der FB ist als generischer Baustein gekennzeichnet (
GEN_XOR). Dies ermöglicht es, ihn in verschiedenen Kontexten wiederzuverwenden oder als Basis für spezialisierte Versionen zu nutzen.Feste Eingangsanzahl: Im Gegensatz zu Bausteinen mit variabler Eingangsanzahl besitzt
XOR_6_BOOLgenau sechs fest definierte Eingänge. Nicht benötigte Eingänge sollten auf einen definierten Logikpegel (z.B.FALSE) gesetzt werden.Package-Zuordnung: Der Baustein ist dem Package
iec61131::bitwiseOperatorszugeordnet, was seine Einordnung als bitweise/logische Operation unterstreicht.
Zustandsübersicht
Der Funktionsblock ist zustandslos (kombinatorisch). Er besitzt keinen internen Speicher. Die Ausgabe OUT ist eine reine Funktion der aktuellen Eingangswerte zum Zeitpunkt des REQ-Ereignisses. Es gibt keine Abhängigkeit von vorherigen Berechnungen oder Zuständen.
Anwendungsszenarien
Paritätsprüfung: Erkennung, ob eine ungerade Anzahl von Bedingungen in einer Gruppe von sechs Signalen aktiv ist.
Sicherheitskritische Logik: In Schaltungen, wo ein Zustand nur dann aktiv sein darf, wenn exklusive Bedingungen vorliegen (z.B. Auswahl zwischen verschiedenen, sich gegenseitig ausschließenden Betriebsmodi).
Verknüpfung von Statusbits: Kombination mehrerer Status- oder Fehlerflags zu einem zusammenfassenden „Ungerade-Paritäts“-Signal.
⚖️ Vergleich mit ähnlichen Bausteinen
XOR(2 Eingänge): Der Standard-XOR-Baustein mit nur zwei Eingängen.XOR_6_BOOLerweitert diese Funktionalität auf sechs Eingänge ohne die Notwendigkeit, mehrere 2-Eingangs-XOR-Blöcke zu verschalten. Siehe: XOR_6AND_6_BOOL/OR_6_BOOL: Ähnliche Blöcke für die logischen UND- bzw. ODER-Verknüpfungen mit sechs Eingängen. Während diese Blöcke auf „Alle“ bzw. „Mindestens eines“ testen, testetXOR_6_BOOLauf „Ungerade Anzahl“.Bausteine mit variabler Eingangsanzahl: Einige Implementierungen bieten möglicherweise einen
XOR-Block an, dem eine beliebige Anzahl von Eingängen zugewiesen werden kann.XOR_6_BOOLbietet hingegen eine explizite und feste Schnittstelle.
Fazit
Der XOR_6_BOOL ist ein spezialisierter und einfach anzuwendender Funktionsblock für die exklusive ODER-Verknüpfung von bis zu sechs booleschen Signalen. Seine fest definierte Schnittstelle und die ereignisgesteuerte Abarbeitung machen ihn gut integrierbar in 4diac IDE-basierte Applikationen. Er ist besonders nützlich in Szenarien, die eine Paritätsprüfung oder die Auswertung exklusiver Bedingungen über eine kleine, feste Anzahl von Signalen erfordern. Für Anwendungen mit einer variablen oder deutlich höheren Anzahl an Eingängen sollten alternative Lösungen in Betracht gezogen werden.