Das vielleicht wichtigste und doch schwer fassbarste Konzept, das man verstehen muss, wenn man lernt, SPS zu programmieren, ist die Beziehung zwischen dem elektrischen Status der E/A-Punkte der SPS und dem Status von Variablen und anderen „Elementen“ in ihrer Programmierung.
Dies gilt insbesondere für die Kontaktplanprogrammierung (LD), bei der das Programm selbst einem elektrischen Diagramm ähnelt.
Die Herstellung der mentalen Verbindung zwischen der „realen“ Welt der Schalter, Schütze und anderen elektrischen Geräte, die an die SPS angeschlossen sind, und der „imaginären“ Welt des SPS-Programms, das aus virtuellen Kontakten und Relais-„Spulen“ besteht, ist von größter Bedeutung.
Die erste Grundregel, die man bei der Untersuchung eines SPS-Programms mit Kontaktplan im Hinterkopf behalten sollte, ist, dass jeder im Programm angezeigte virtuelle Kontakt aktiviert wird, wenn er in seinem jeweiligen Bit einen „1“-Zustand liest, und in Ruhe ist, wenn er in seinem jeweiligen Bit (im Speicher der SPS) einen „0“-Zustand liest.
Wenn der Kontakt ein Schließer (NO) ist, öffnet er sich, wenn sein Bit 0 ist, und schließt sich, wenn sein Bit 1 ist. Wenn der Kontakt ein Öffner (NC) ist, schließt er sich, wenn sein Bit 0 ist, und öffnet sich, wenn sein Bit 1 ist.
Ein 0-Bit-Zustand bewirkt, dass sich der Kontakt in seinem „normalen“ (Ruhe-)Zustand befindet, während ein 1-Bit-Zustand den Kontakt betätigt und ihn in seinen nicht normalen (betätigten) Zustand zwingt.
Eine weitere Regel, die Sie bei der Untersuchung eines SPS-Programms mit Kontaktplan beachten sollten, ist, dass die Programmiersoftware eine Farbhervorhebung (Hinweis 1) bietet, um den virtuellen Status jedes Programmelements anzuzeigen: Ein farbiger Kontakt ist geschlossen, während ein nicht farbiger Kontakt geöffnet ist.
Während das Vorhandensein oder Fehlen eines „Schrägstrich“-Symbols den normalen Status eines Kontakts kennzeichnet, zeigt seine von der SPS-Programmiersoftware angezeigte Live-Farbhervorhebung den „leitenden“ Status der Elemente in Echtzeit an.
Hinweis 1: Es ist zu beachten, dass die Programmiersoftware in manchen Situationen die Kontakte nicht richtig einfärbt, insbesondere wenn sich ihr Status zu schnell ändert, als dass die Software-Kommunikationsverbindung mithalten könnte, und/oder wenn die Bits innerhalb eines Programmdurchlaufs mehrmals ihren Zustand ändern. Für einfache Programme und Situationen gilt diese Regel jedoch und ist eine große Hilfe für Programmieranfänger, die die Beziehung zwischen realen Bedingungen und Bedingungen in der „virtuellen“ Welt der SPS lernen.
Missverständnisse der SPS-Kontaktplanlogik
Die folgende Tabelle zeigt, wie die beiden Kontakttypen im Kontaktplanprogramm einer SPS auf Bitzustände reagieren, wobei die rote Farbe verwendet wird, um die virtuelle Leitfähigkeit jedes Kontakts anzuzeigen:
Genauso wie die Kontakte eines Druckschalters durch einen hohen Druckzustand, die Kontakte eines Niveauschalters durch einen hohen Niveauzustand und die Kontakte eines Temperaturschalters durch einen hohen Temperaturzustand aktiviert werden, so wird der virtuelle Kontakt einer SPS durch einen hohen Bitzustand aktiviert (1). Im Zusammenhang mit jedem Schalter ist ein aktivierter Zustand das Gegenteil seines normalen (Ruhe-)Zustands.
Die folgende vereinfachte Abbildung (die in diesem Diagramm gezeigte elektrische Verdrahtung ist unvollständig, der „Common“-Anschluss ist der Einfachheit halber nicht angeschlossen dargestellt.) zeigt eine kleine SPS, bei der zwei ihrer diskreten Eingangskanäle elektrisch aktiviert sind, wodurch diese beiden Bits den Status „1“ haben.
Die farblich hervorgehobenen Kontakte in der Anzeige der Programmiereditor-Software zeigen eine Sammlung von Kontakten, die an diese Eingangsbits in verschiedenen Zuständen adressiert sind (farbig = geschlossen; ungefärbt = offen).
Wie Sie sehen können, befindet sich jeder Kontakt, der an ein „gesetztes“ Bit (1) adressiert ist, in seinem aktivierten Zustand, während sich jeder Kontakt, der an ein „gelöschtes“ Bit (0) adressiert ist, in seinem normalen Zustand befindet:
Denken Sie daran, dass ein farbiger Kontakt ein geschlossener Kontakt ist. Die farbig erscheinenden Kontakte sind entweder normalerweise geschlossene Kontakte mit „0“-Bit-Zuständen oder normalerweise offene Kontakte mit „1“-Bit-Zuständen.
Es ist die Kombination aus Bitzustand und Kontakttyp (NO vs. NC), die bestimmt, ob der virtuelle Kontakt zu einem bestimmten Zeitpunkt offen (ungefärbt) oder geschlossen (gefärbt) ist.
Entsprechend ist es eine Kombination aus farbiger Hervorhebung und virtuellem Kontakttyp, die den realen Aktivierungsstatus eines bestimmten SPS-Eingangs zu einem bestimmten Zeitpunkt anzeigt.
Das Hauptproblem von Studenten/Ingenieuren beim Verstehen von SPS-Kontaktplanprogrammen besteht darin, dass sie zu stark vereinfachen und versuchen, reale Schalter, die mit der SPS verbunden sind, direkt mit ihren jeweiligen Kontaktanweisungen im SPS-Programm zu verknüpfen.
Studenten/Ingenieure denken fälschlicherweise, dass der reale Schalter, der mit der SPS verbunden ist, und der jeweilige virtuelle Schalterkontakt im SPS-Programm ein und derselbe sind, obwohl dies überhaupt nicht der Fall ist.
Vielmehr sendet der reale Schalter Strom an den SPS-Eingang, der wiederum den Zustand der in die SPS programmierten virtuellen Kontakte steuert.
Insbesondere erlebe ich, dass Studenten/Ingenieure regelmäßig den folgenden Missverständnissen erliegen:
- Irrtümlicherweise annehmen, dass der Kontaktanweisungstyp (NO vs. NC) mit dem des zugehörigen realen Schalters übereinstimmen muss
- Irrtümlich annehmen, dass die farbliche Hervorhebung einer Kontaktanweisung dem elektrischen Status des zugehörigen realen SPS-Eingangs entspricht
- Irrtümlich annehmen, dass ein geschlossener realer Schalter zu einer geschlossenen Kontaktanweisung im Live-SPS-Programm führen muss
Zur Verdeutlichung sind hier die grundlegenden Regeln, die man beim Interpretieren von Kontaktanweisungen in SPS-Programmen mit Kontaktplan beachten sollte:
- Jedes Eingangsbit im Speicher der SPS ist eine „1“, wenn sein Eingangskanal mit Strom versorgt wird, und eine „0“, wenn sein Eingangskanal nicht mit Strom versorgt wird
- Jeder im Programm angezeigte virtuelle Kontakt wird aktiviert, wenn er in seinem jeweiligen Bit einen „1“-Zustand liest, und ist in Ruhe, wenn er in seinem jeweiligen Bit einen „0“-Zustand liest
- Ein farbiger Kontakt ist geschlossen (leitet virtuellen Strom im SPS-Programm weiter), während ein nicht farbiger Kontakt geöffnet ist (blockiert virtuellen Strom im SPS-Programm)
Beim Versuch, SPS-Programme mit Kontaktplan zu verstehen, kann die Bedeutung dieser Regeln nicht überbetont.
Die Wahrheit ist, dass es eine Kausalkette – und keine direkte Äquivalenz – zwischen dem realen Schalter und dem Status des Kontaktbefehls gibt.
Der reale Schalter steuert, ob der SPS-Eingangskanal mit Strom versorgt wird oder nicht, was wiederum steuert, ob das Bit des Eingangsregisters eine „1“ oder eine „0“ ist, was wiederum steuert, ob der Kontaktbefehl aktiviert oder in Ruhe ist.
Virtuelle Kontakte im SPS-Programm werden also von ihren entsprechenden realen Schaltern gesteuert, anstatt einfach identisch mit ihren realen Gegenstücken zu sein, wie Laien gerne annehmen.
Wenn wir diesen Regeln folgen, sehen wir, dass normalerweise offene (NO) Kontaktbefehle das nachahmen, was ihre realen Schalter tun, während normalerweise geschlossene (NC) Kontaktbefehle das Gegenteil ihrer realen Gegenstücke bewirken.
Die farbliche Hervorhebung von Spulenbefehlen in einem SPS-Programm mit Kontaktplan folgt ähnlichen Regeln. Eine Spule ist „eingeschaltet“ (farbig), wenn alle Kontaktbefehle davor geschlossen (farbig) sind.
Eine farbige Spule schreibt eine „1“ in ihr entsprechendes Bit im Speicher, während eine nicht farbige Spulenanweisung eine „0“ in ihr entsprechendes Bit im Speicher schreibt. Wenn diese Bits mit realen diskreten Ausgangskanälen auf der SPS verknüpft sind, steuern ihre Zustände die reale Aktivierung von Geräten, die elektrisch mit diesen Kanälen verbunden sind.
Um diese grundlegenden Konzepte weiter zu verdeutlichen, werden wir den Betrieb eines einfachen SPS-Systems untersuchen, das eine Warnlampe aktiviert, wenn ein Prozessbehälter einem hohen Flüssigkeitsdruck ausgesetzt ist.
Die Aufgabe der SPS besteht darin, eine Warnlampe zu aktivieren, wenn der Druck im Prozessbehälter jemals 270 PSI überschreitet, und diese Warnlampe aktiviert zu halten, selbst wenn der Druck unter den Auslösepunkt von 270 PSI fällt. Auf diese Weise werden die Bediener sowohl auf vergangene als auch auf aktuelle Überdruckereignisse im Prozessbehälter aufmerksam gemacht.
120-Volt-Wechselstrom (L1 und L2) liefert elektrische Energie für den Betrieb der SPS sowie Signalpotential für die Eingangsschalter und Strom für die Warnlampe.
Zwei Schalter sind mit dem Eingang dieser SPS verbunden: ein normalerweise offener Druckknopfschalter, der als Alarmrücksetzung fungiert (durch Drücken dieses Schalters wird die Alarmlampe „entriegelt“), und ein normalerweise offener Druckschalter, der als Sensorelement für hohen Prozessbehälterdruck fungiert:
Der Rücksetzdruckknopf ist mit dem diskreten Eingang X1 der SPS verbunden, während der Druckschalter mit dem diskreten Eingang X4 verbunden ist. Die Warnlampe ist mit dem diskreten Ausgang Y5 verbunden.
Rote Anzeige-LEDs neben jedem E/A-Anschluss zeigen optisch den elektrischen Status der E/A-Punkte an, während eine rot schattierte Hervorhebung den virtuellen Stromstatus (Anmerkung 2) der „Kontakte“ und „Spulen“ im Programm der SPS anzeigt, der auf dem Bildschirm eines PCs angezeigt wird, der über ein Programmierkabel mit der SPS verbunden ist.
Wenn niemand den Rücksetzdruckknopf drückt, befindet sich dieser Schalter in seinem normalen Status, der bei einem „normalerweise offenen“ Schalter offen ist.
Das Gleiche gilt für den Druckschalter: Wenn der Prozessdruck unter dem Auslösepunkt von 270 PSI liegt, befindet sich der Druckschalter ebenfalls in seinem Normalzustand, der bei einem „normalerweise offenen“ Schalter offen ist.
Da keiner der Schalter momentan Strom leitet, werden weder die diskreten Eingänge X1 noch X4 aktiviert. Dies bedeutet, dass sich die „virtuellen“ Kontakte im SPS-Programm ebenfalls in ihrem eigenen Normalzustand befinden.
Daher ist jeder virtuelle Kontakt, der als normalerweise offen gezeichnet ist, offen (leitet keinen virtuellen Strom weiter) und jeder virtuelle Kontakt, der als normalerweise geschlossen gezeichnet ist (ein diagonaler Schrägstrich durch das Kontaktsymbol), ist geschlossen.
Aus diesem Grund sind die beiden normalerweise offenen virtuellen Kontakte X4 und Y5 nicht hervorgehoben, der normalerweise geschlossene virtuelle Kontakt X1 jedoch schon – die farbige Hervorhebung stellt die Fähigkeit dar, virtuellen Strom weiterzuleiten.
Hinweis 2: Bei einem SPS-Programmkontakt stellt die Schattierung die virtuelle „Leitfähigkeit“ dar. Bei einer SPS-Programmspule stellt die Schattierung ein gesetztes (1) Bit dar.
Wenn im Prozessbehälter ein hoher Druck (> 270 PSI) auftritt, wird der Druckschalter aktiviert und schließt seinen normalerweise offenen Kontakt. Dadurch wird der Eingang X4 auf der SPS aktiviert, der den virtuellen Kontakt X4 im Kontaktplanprogramm „schließt“.
Dadurch wird virtuelle Energie an die virtuelle „Spule“ Y5 gesendet, die sich wiederum über den virtuellen Kontakt Y5 einklinkt (Hinweis 3) und auch den realen diskreten Ausgang Y5 aktiviert, um die Warnlampe zu aktivieren:
Hinweis 3: Es ist erwähnenswert, dass es legitim ist, virtuelle Kontakte auf Ausgangsbits (z. B. Kontakt Y5) und nicht nur auf Eingangsbits zu verweisen.
Ein „virtueller Kontakt“ in einem SPS-Programm ist nichts anderes als eine Anweisung an den Prozessor der SPS, den Status eines Bits im Speicher zu lesen. Dabei spielt es keine Rolle, ob dieses Bit einem physischen Eingangskanal, einem physischen Ausgangskanal oder einem abstrakten Bit im Speicher der SPS zugeordnet ist.
Es wäre jedoch falsch, eine virtuelle Spule mit einem Eingangsbit zu verknüpfen, da Spulenanweisungen Bitwerte in den Speicher schreiben und Eingangsbits ausschließlich durch die Aktivierungszustände ihrer physischen Eingangskanäle gesteuert werden sollen.
Falls der Prozessdruck nun unter 270 PSI fällt, kehrt der Druckschalter in seinen Normalzustand (offen) zurück und schaltet so den diskreten Eingang X4 auf der SPS ab.
Aufgrund des Verriegelungskontakts Y5 im Programm der SPS bleibt der Ausgang Y5 jedoch eingeschaltet, um die Warnlampe in ihrem aktivierten Zustand zu halten:
Daher führt der Y5-Kontakt eine Einschlussfunktion aus, um das Y5-Bit gesetzt (1) zu halten, selbst nachdem der Hochdruckzustand behoben ist.
Dies ist genau dasselbe Konzept wie der „Einschluss“-Hilfskontakt in einem fest verdrahteten Motorstarterkreis, bei dem der elektromechanische Schütz sich selbst aktiviert hält, nachdem der „Start“-Druckknopfschalter losgelassen wurde.
Die einzige Möglichkeit für einen menschlichen Bediener, die Warnlampe zurückzusetzen, besteht darin, den Druckknopf zu drücken.
Dies hat zur Folge, dass Eingang X1 an der SPS aktiviert wird, wodurch der virtuelle Kontakt X1 (normalerweise geschlossen) im Programm geöffnet wird, wodurch die virtuelle Stromversorgung der virtuellen Spule Y5 unterbrochen wird, wodurch die Warnlampe ausgeschaltet und die virtuelle Stromversorgung im Programm entriegelt wird: