Die XOR-Verknüpfung (Exklusiv-ODER) in FUP
Mit dem Baustein für eine XOR-Verknüpfung kann man die Signalzustände von mehreren Operanden abfragen. Bei zwei Operanden führt der Ausgang der XOR-Box das Signal 1, wenn ein Operand exklusiv der Abfrage entspricht. Anders als bei der ODER-Verknüpfung, wo auch beide Eingänge 1 sein können.
XOR-Verknüpfung mit UND- und ODER-Gliedern
Das Verhalten einer XOR-Verknüpfung kann man auch nur mit dem Einsatz von UND- und ODER-Gliedern realisieren. Da es z.B. in der Darstellungsart KOP keine XOR-Verknüpfung gibt, kann das nützlich sein.
Im Grunde benötigt man nur eine UND vor ODER-Verknüpfung. Bei den UND-Gliedern muss man die Eingänge durch Zuhilfenahme der Negation so angeben, dass die Ausgänge nur das Signal 1 haben, wenn die Exklusivität eines Eingangs gegeben ist.
XOR-Verknüpfung mit mehreren Eingängen
Interessant ist das Verhalten einer XOR-Verknüpfung mit mehreren Eingängen. In diesem Fall führt der Ausgang des XOR-Glieds nicht das Signal 1, wenn nur ein Eingangssignal exklusiv der Abfrage entspricht. Das bedeutet, wenn bei einem XOR-Glied mit 3 Eingängen, alle 3 Signale dem entsprechen, was abgefragt wird, führt der Ausgang ebenfalls das Signal 1.
Bezogen auf das Beispielprogramm auf dem Bild bedeutet das, obwohl alle 3 Eingänge das Signal 1 führen, die Eingänge somit nicht exklusiv eine 1 führen, führt der Ausgang des XOR-Glieds eine 1. Hierfür muss man die Bildung des VKE näher betrachten.
Ein VKE wird wie folgt gebildet:
- Erstabfrage, das Ergebnis wird ins VKE geschrieben
- Die nächsten Abfrageoperationen werden mit dem VKE verknüpft
Das würde bezogen auf das Beispielprogramm mit der XOR-Verknüpfung und den 3 Eingängen mit dem Signal 1 folgende Abarbeitung des Programms bedeuten (hierfür am besten in AWL umschalten):
X E0.1 //Zeile 1
X E0.2 //Zeile 2
X E0.3 //Zeile 3
= A0.1 //Zeile 4
Das VKE wird wie folgt gebildet:
- Zeile 1: Erstabfrage, Ergebnis des VKE ist 1, da der Zustand von E0.2 noch gar nicht bekannt ist und somit E0.1 exklusiv ist.
Zeile 2: Die Abfrageoperation wird jetzt mit dem VKE verknüpft. Das bedeutet, es wird in etwa abgefragt "Ist E0.2 oder das VKE exklusiv eine 1?". Da das nicht der Fall ist, weil beide eine 1 sind, springt das VKE auf 0. - Zeile 3: Jetzt wird wieder die Abfrageoperation mit dem VKE verknüpft. Es wird in etwa abgefragt "Ist E0.3 oder das VKE exklusiv eine 1?". In dieser Zeile trifft das zu. Denn, das VKE ist eine 0, der Eingangsoperand E0.3 ist eine 1 und somit exklusiv. Das VKE wird wieder auf 1 gesetzt.
- Zeile 4: Der Ausgangsoperand A0.1 erhält durch Zuweisung das Ergebnis des VKE und das ist in dem Fall eine 1.
Fazit bei mehreren Eingängen an einem XOR-Glied: Wenn man das Verhalten auf noch mehr Eingänge ausdehnt, dann muss man feststellen, dass das VKE immer dann eine 1 ist, wenn eine ungerade Anzahl der Eingänge eine 1 führen.