UND-Verknüpfung (AND) & Zuweisungen in einer Siemens SPS im TIA Portal
Christian Preis
zuletzt aktualisiert: 09. Juni 2024
Video 1: UND-Verknüpfung im TIA Portal
Die UND-Verknüpfung und die Zuweisungen gehören im TIA Portal zu den einfachen Anweisungen. Wir werden im nachfolgenden Schritt für Schritt durch den Prozess der Programmierung führen. Die Programmierung machen wir dabei direkt im OB 1 (Organisation Block 1).
Bevor Du aber OB1 öffnest, solltest Du prüfen, ob als Sprache "FUP" eingestellt ist. Dazu machst Du auf OB1 einen Rechtsklick und öffnest die "Eigenschaften" (letzter Eintrag in der Auswahl). Die Sprache muss wie in Bild 1 dargestellt, auf "FUP" (Funktionsplan) eingestellt werden.

Bild 1: Einstellung der Sprache in den Bausteineigenschaften
UND-Verknüpfung (AND)
Wir beginnen dabei mit der UND-Verknüpfung. Sollte in Deinem OB1 noch kein Netzwerk vorhanden sein, kannst Du über die entsprechende Schaltfläche in der Funktionsleiste des Programmiereditors eines einfügen (s. Bild 2). Dem Netzwerk geben wir auch gleich den Namen "UND-Verknüpfung".

Bild 2: Netzwerk einfügen
Anschließend kann per drag and drop die UND-Verknüpfung in das Programmierfenster gezogen werden. Dies kann man von drei verschiedenen Stellen aus machen. Diese sind in Bild 3 rot eingerahmt. An die rechte Seite des UND- muss noch eine "Zuweisung" hinzugefügt werden. Eine direkte Anbindung von Variablen ist an dieser Stelle nicht möglich. Die Zuweisung ziehen wir direkt an das rechte "Beinchen" des UND bis diese grün markiert wird. An dieser Stelle wird die Zuweisung dann platziert.

Bild 3: UND-Verknüpfung und Zuweisung einfügen
An die UND-Verknüpfung werden dann noch zwei SPS-Eingänge verbunden. Diese kannst Du einfach beispielhaft in der Variablentabelle anlegen. An die Zuweisung wird ein SPS-Ausgang verbunden (s. Bild 4). Mit der Zuweisung wird einer Variablen (hier: "TagOut") das Ergebnis am Box-Eingang zugewiesen.

Bild 4: UND-Verknüpfung
Mit der Anweisung "UND-Verknüpfung" werden Signalzustände zweier oder mehrerer angegebener Operanden abgefragt und entsprechend der UND-Wahrheitstabelle ausgewertet.
Beträgt der Signalzustand aller Operanden "1" (true), so ist die Bedingung erfüllt und die Anweisung liefert das Ergebnis "1". Beträgt der Signalzustand eines Operanden "0" (false), ist die Bedingung nicht erfüllt und die Anweisung erzeugt das Ergebnis "0".
Für das Beispiel aus Bild 3 heißt dies konkret. Der Ausgang "TagOut_1" wird gesetzt, wenn der Signalzustand der Operanden "TagIn_1" UND "TagIn_2" "1" ist und zurückgesetzt, wenn der Signalzustand einer der Operanden "TagIn_1" oder "TagIn_2" "0" ist.
Eine entsprechende Wahrheitstabelle würde wie folgt aussehen:

Logische Verknüpfung erweitern
Am Beispiel der UND-Verknüpfung schauen wir uns nun noch ein paar weitere Funktionen an. Als erstes erweitern wir die UND-Verknüpfung um einen weiteren Eingang. Dies kann man per drag and drop aus der Task Card Anweisungen machen oder über das gelbe Sternchen unten links in der UND-Verknüpfung (s. Bild 5). Es lassen sich so noch weitere Eingänge hinzufügen. Die Logik ist immer noch wie oben beschrieben, nur das jetzt eben auch noch der Eingang "TagIn_3" "1" sein muss, damit "TagOut_1" "1" wird.

Bild 5: UND-Verknüpfung Eingang einfügen
Die Wahrheitstabelle würde sich um einen Eingang erweitern.

Eingang invertieren
Im nächsten Schritt möchten wir den neuen Eingang TagIn_3 invertieren. Anstelle von invertieren spricht man auch von negieren. Dazu fügen wir die Anweisung "VKE invertieren" per drag and drop hinzu (s. Bild 6). Es wäre auch möglich den Eingang zu markieren und einen Doppelklick auf die Anweisung zu machen.

Bild 6: UND-Verknüpfung Eingang invertieren
Die Logik hat sich nun wie folgt geändert. Die Eingangsvariablen "TagIn_1" und "TagIn_2" müssen beide "1" sein und "TagIn_3" muss "0" sein, damit "TagOut_1" "1" wird. Durch die Negation von "TagIn_3" wird seine Verknüpfungslogik umgekehrt. D.h. wenn eine "0" ansteht, wird eine "1" als Ergebnis weitergegeben. Wenn an "TagIn_3" also eine "0" ansteht, wird durch das invertieren an die UND-Verknüpfung eine "1" weitergegeben. Die Logik ist somit erfüllt und "TagOut_1" ist "1". Die Wahrheitstabelle sieht dann wie folgt aus:

Da TagIn_3 invertiert ist, wird in der Wahrheitstabelle ein Strich über der Variablen angezeigt.
Ausgang invertieren
Die Invertierung kann man auch an anderen Stellen einfügen. Man könnte sie auch zwischen der UND-Verknüpfung und der Zuweisung platzieren (s. Bild 7). Damit würden dann alle Zuweisungen an "TagOut_1" umgekehrt.

Bild 7: UND-Verknüpfung Ausgang invertieren
In Bild 7 wurde die Invertierung an "TagIn_3" wieder entfernt. Die Wahrheitstabelle sieht dann wie folgt aus.

Zuweisung invertieren
Das gleiche Ergebnis würde man bekommen, wenn man die Zuweisung direkt invertiert. Dazu musst Du in der Zuweisung oben rechts die Auswahl öffnen (s. Bild 8) und "/=" auswählen.

Bild 8: UND-Verknüpfung Zuweisung negieren
"Zuweisung negieren" kann man auch direkt aus der Task Card Anweisungen einfügen. Dann müsste man die Änderung in der Zuweisung nicht mehr machen. Diese Änderungsmöglichkeit ist eher für nachträgliche Anpassungen gedacht.
Abzweig einfügen
Für das Beispiel möchte ich nun noch einen weiteren Ausgang mit dem Verknüpfungsergebnis der UND-Verknüpfung beschreiben (zuweisen). Dazu habe ich einen weiteren Ausgang in der Variablentabelle angelegt ("TagOut_2"). Im Programmierfenster fügen wir dann einen "Abzweig" hinzu (s. Bild 9/1). An den Abzweig kommt dann eine weitere Zuweisung (Bild 9/2). So kann man mit einer Verknüpfungslogik mehrere Zuweisungen machen.

"Abzweig" einfügen

Bild 9: UND-Verknüpfung "Abzweig" einfügen
Zuweisung als Zwischenergebnis
Man kann mit der Zuweisung auch ein Zwischenergebnis abfragen. Dazu kann man die Zuweisung zwischen zwei anderen Anweisungen platzieren (s. Bild 10). Im Beispiel unten wird "TagOut_1" "1", wenn die Eingänge an der UND-Verknüpfung "TagIn_1", "TagIn_2" und "TagIn_3" "1" sind. "TagOut_2" wird "1", wenn zusätzlich noch "TagIn_4" "1" wird.

Bild 10: "Zuweisung" zur Erfassung eines Zwischenergebnis

Christian Preis
Gründer edcon-academy seit 15 Jahren in der Automatisierungstechnik.
Beitrag teilen!