Jump to content
  • Sign in to follow this  

    Kontakte und Spulen in der SPS-Kontaktplanlogik

       (0 reviews)

    leizuofa

    Die elementarsten Objekte in der Kontaktplanprogrammierung sind Kontakte und Spulen, die die Kontakte und Spulen elektromechanischer Relais nachahmen sollen.

    Kontakte und Spulen sind diskrete Programmierelemente, die mit booleschen Variablenzuständen (1 und 0; ein und aus; wahr und falsch) umgehen.

    Jeder Kontakt in einem Kontaktplan-SPS-Programm stellt das Lesen eines einzelnen Bits im Speicher dar, während jede Spule das Schreiben eines einzelnen Bits im Speicher darstellt.

    Diskrete Eingangssignale an die SPS von realen Schaltern werden von einem Kontaktplanprogramm durch Kontakte gelesen, die auf diese Eingangskanäle verweisen.

    In älteren SPS-Systemen hat jeder diskrete Eingangskanal eine bestimmte Adresse, die auf die Kontakte innerhalb dieses Programms angewendet werden muss.

    In modernen SPS-Systemen hat jeder diskrete Eingangskanal einen vom Programmierer erstellten Tag-Namen, der auf die Kontakte innerhalb des Programms angewendet wird.

    Ebenso müssen diskrete Ausgangskanäle – die im Kontaktplan durch Spulensymbole referenziert werden – eine Art Adress- oder Tag-Namensetikett tragen.

    Zur Veranschaulichung stellen wir uns den Aufbau und die Programmierung eines redundanten Flammensensorsystems vor, das den Status einer Brennerflamme mithilfe von drei Sensoren überwacht.

    Der Zweck dieses Systems besteht darin, einen „brennenden“ Brenner anzuzeigen, wenn mindestens zwei der drei Sensoren eine Flamme anzeigen.

    Wenn nur ein Sensor eine Flamme anzeigt (oder wenn kein Sensor eine Flamme anzeigt), erklärt das System den Brenner als nicht brennend.

    Der Status des Brenners wird durch eine Lampe sichtbar angezeigt, die für menschliche Bediener im Kontrollraumbereich leicht sichtbar ist.

    Die Verkabelung unseres Systems ist im folgenden Diagramm dargestellt:

    5-1.jpg

    Jeder Flammensensor gibt ein Gleichspannungssignal aus, das die Erkennung einer Flamme am Brenner anzeigt, entweder eingeschaltet (24 Volt Gleichstrom) oder ausgeschaltet (0 Volt Gleichstrom).

    Diese drei diskreten Gleichspannungssignale werden von den ersten drei Kanälen der diskreten Eingangskarte der SPS erfasst.

    Die Kontrollleuchte ist eine 120-Volt-Glühbirne und muss daher von einer diskreten Wechselstrom-Ausgangskarte gespeist werden, die hier im letzten Steckplatz der SPS gezeigt wird.

    Um das Kontaktplanprogramm lesbarer zu machen, werden wir jedem Eingangs- und Ausgangsbit in der SPS Tag-Namen (symbolische Adressen) zuweisen, die das reale Gerät in einem leicht verständlichen Format beschreiben.

    Wir werden die ersten drei diskreten Eingangskanäle als IN-Sensor A, IN-Sensor B und IN-Sensor C und den Ausgang als OUT-Brenner angezündet kennzeichnen.

    Hier wird ein Kontaktplanprogramm gezeigt, um zu bestimmen, ob mindestens zwei der drei Sensoren eine Flamme erkennen, wobei die Tag-Namen auf jeden Kontakt und jede Spule verweisen:

    5-2.jpg

    Reihengeschaltete Kontakte in einem Kontaktplandiagramm führen die logische UND-Funktion aus, während parallele Kontakte die logische ODER-Funktion ausführen. Dieses Zwei-aus-Drei-Flammenerkennungsprogramm könnte also verbal wie folgt beschrieben werden:

    „Brenner brennt, wenn entweder A und B oder B und C oder A und C“

    Eine alternative Möglichkeit, dies auszudrücken, ist die Verwendung der Notation der Booleschen Algebra, wobei Multiplikation die UND-Funktion und Addition die ODER-Funktion darstellt:

    Brenner_brennt = AB + BC + AC

    Eine weitere Möglichkeit, diese logische Beziehung darzustellen, ist die Verwendung von Logikgattersymbolen:

    5-3.jpg

    Um zu veranschaulichen, wie dieses Programm funktionieren würde, betrachten wir einen Fall, in dem die Flammensensoren B und C Flammen erkennen, Sensor A jedoch nicht (Anmerkung 1).

    Dies stellt einen Zwei-aus-Drei-Gutzustand dar, und daher würden wir erwarten, dass die SPS die Kontrollleuchte „Brenner brennt“ wie programmiert einschaltet.

    Aus der Perspektive des SPS-Racks würden wir die Anzeige-LEDs für die Sensoren B und C auf der diskreten Eingangskarte leuchten sehen, ebenso wie die Anzeige-LED für den Ausgangskanal der Lampe:

    Hinweis 1: Der wahrscheinlichste Grund, warum einer von zwei Flammensensoren das Vorhandensein einer Flamme nicht erkennt, ist eine Art Fehlausrichtung oder Verschmutzung des Flammensensors.

    Tatsächlich ist dies ein guter Grund für die Verwendung eines 2-aus-3-Flammenerkennungssystems anstelle eines Simplex-Detektorschemas (1-aus-1): um das System toleranter gegenüber gelegentlichen Sensorproblemen zu machen, ohne die Brennersicherheit zu beeinträchtigen.

    5-4.jpg

    Diese beiden aktivierten Eingangskanäle „setzen“ Bits (Status 1) im Speicher der SPS, die den Status der Flammensensoren B und C darstellen. Das Bit des Flammensensors A ist „frei“ (Status 0), da sein entsprechender Eingangskanal stromlos ist.

    Die Tatsache, dass die LED des Ausgangskanals aktiviert ist (und die Kontrollleuchte „Brenner leuchtet“), zeigt uns, dass das SPS-Programm das entsprechende Bit im Ausgangsspeicherregister der SPS auf den Zustand „1“ „gesetzt“ hat.

    Eine Anzeige der Bits des Eingangs- und Ausgangsregisters zeigt die Zustände „gesetzt“ und „zurückgesetzt“ für die SPS zu diesem Zeitpunkt:

    5-5.jpg

    Bei der Untersuchung des Kontaktplanprogramms mit aktivierter Statusanzeige sehen wir, dass nur das mittlere Kontaktpaar „virtuelle Energie“ an die Ausgangsspule weiterleitet:

    5-6.jpg

    Denken Sie daran, dass der Zweck eines Kontakts in einem SPS-Programm darin besteht, den Status eines Bits im Speicher der SPS zu lesen.

    Diese sechs „virtuellen Kontakte“ lesen die drei Eingangsbits, die den drei Flammensensoren entsprechen.

    Jeder normalerweise offene „Kontakt“ wird „geschlossen“, wenn sein entsprechendes Bit den Wert 1 hat, und wird „geöffnet“ (in seinen Normalzustand übergehen), wenn sein entsprechendes Bit den Wert 0 hat.

    Somit sehen wir hier, dass die beiden Kontakte, die Sensor A entsprechen, ohne Hervorhebung erscheinen (was keine „Leitfähigkeit“ im virtuellen Relaiskreis darstellt), weil das Bit für diesen Eingang zurückgesetzt (0) ist.

    Die beiden Kontakte, die Sensor B entsprechen, und die beiden Kontakte, die Sensor C entsprechen, erscheinen alle hervorgehoben (was „Leitfähigkeit“ im virtuellen Schaltkreis darstellt), weil ihre Bits beide gesetzt (1) sind.

    Denken Sie auch daran, dass der Zweck einer Spule in einem SPS-Programm darin besteht, den Status eines Bits in den Speicher der SPS zu schreiben.

    Hier setzt die „aktivierte“ Spule das Bit für den SPS-Ausgang 0 auf einen „1“-Zustand, wodurch der reale Ausgang aktiviert und elektrische Energie an die Lampe „Brenner leuchtet“ gesendet wird.

    Beachten Sie, dass die Farbhervorhebung nicht anzeigt, dass ein virtueller Kontakt virtuellen Strom leitet, sondern lediglich, dass er Strom leiten kann. Eine farbliche Hervorhebung um eine virtuelle Spule herum zeigt jedoch das Vorhandensein von virtueller „Leistung“ an dieser Spule an.

    Kontakte und Relais sind nicht nur für die Implementierung einfacher Logikfunktionen nützlich, sondern können auch Verriegelungsfunktionen ausführen.

    Eine sehr häufige Anwendung in industriellen SPS-Systemen ist ein verriegelndes Start-/Stopp-Programm zur Steuerung von Elektromotoren mittels Tastschaltern.

    Wie zuvor wird diese Funktionalität anhand eines hypothetischen Beispielschaltkreises und -programms veranschaulicht:

    5-7.jpg

    In diesem System sind zwei Tastschalter an diskrete Eingänge einer SPS angeschlossen, und die SPS wiederum aktiviert die Spule eines Motorschützrelais über einen ihrer diskreten Ausgänge.

    Ein Überlastkontakt ist direkt in Reihe mit der Schützspule geschaltet, um einen Überstromschutz für den Motor zu bieten, selbst im Falle eines SPS-Fehlers, bei dem der diskrete Ausgangskanal aktiviert bleibt (Anmerkung 2). Das Kontaktplanprogramm für dieses Motorsteuerungssystem würde folgendermaßen aussehen:

    Hinweis 2: Es ist zwar möglich, den Überlastkontakt mit einem der diskreten Eingangskanäle der SPS zu verbinden und dann einen virtuellen Überlastkontakt in Reihe mit der Ausgangsspule zu programmieren, um den Motor im Falle einer thermischen Überlastung zu stoppen, aber diese Strategie würde darauf beruhen, dass die SPS eine Sicherheitsfunktion ausführt, die wahrscheinlich besser von fest verdrahteten Schaltkreisen ausgeführt wird.

    5-8.jpg

    Durch Drücken der „Start“-Taste wird der diskrete Eingangskanal 6 der SPS aktiviert, wodurch der virtuelle Kontakt im SPS-Programm mit der Bezeichnung „IN switch Start“ „geschlossen“ wird.

    Der normalerweise geschlossene virtuelle Kontakt für Eingangskanal 7 (die „Stop“-Taste) ist standardmäßig bereits geschlossen, wenn die „Stop“-Taste nicht gedrückt wird, und daher wird die virtuelle Spule „mit Strom versorgt“, wenn die „Start“-Taste gedrückt wird, die „Stop“-Taste jedoch nicht.

    Beachten Sie, dass der versiegelte Kontakt genau dieselbe Bezeichnung trägt wie die Spule: OUT-Schütz. Zunächst mag es seltsam erscheinen, dass sowohl ein Kontakt als auch eine Spule in einem SPS-Programm die gleiche Bezeichnung haben (Hinweis 3), da Kontakte am häufigsten mit Eingängen und Spulen mit Ausgängen verknüpft sind. Dies ergibt jedoch durchaus Sinn, wenn Sie die wahre Bedeutung von Kontakten und Spulen in einem SPS-Programm erkennen: als Lese- und Schreibvorgänge für Bits im Speicher der SPS.

    Die Spule mit der Bezeichnung „OUT-Schütz“ schreibt den Status dieses Bits, während der Kontakt mit der Bezeichnung „OUT-Schütz“ den Status desselben Bits liest. Der Zweck dieses Kontakts besteht natürlich darin, den Motor im „Ein“-Zustand zu verriegeln, nachdem ein menschlicher Bediener seinen Finger vom „Start“-Druckknopf genommen hat.

    Hinweis 3: Ein sehr verbreitetes Missverständnis unter Schülern, die zum ersten Mal die Programmierung von SPS-Kontaktplänen lernen, besteht darin, Kontakte immer mit SPS-Eingängen und Spulen mit SPS-Ausgängen zu verknüpfen. Daher erscheint es seltsam, wenn ein Kontakt die gleiche Bezeichnung wie ein Ausgang trägt. Dies ist jedoch eine falsche Zuordnung. In Wirklichkeit sind Kontakte und Spulen Lese- und Schreibanweisungen, und daher ist es möglich, dass die SPS als Teil einer Logikfunktion eines ihrer eigenen Ausgangsbits liest. Wirklich seltsam wäre es, eine Spule mit einer Eingangsbitadresse oder einem Tag-Namen zu kennzeichnen, da die SPS nicht in der Lage ist, den tatsächlichen Aktivierungsstatus von Eingangskanälen elektrisch einzustellen.

    Diese Programmiertechnik wird als Feedback bezeichnet, wobei eine Ausgangsvariable einer Funktion (in diesem Fall ist die Feedbackvariable OUT-Schütz) auch ein Eingang für dieselbe Funktion ist.

    Der Feedbackpfad ist bei der Kontaktplanprogrammierung implizit und nicht explizit, wobei der einzige Hinweis auf Feedback der gemeinsame Name von Spule und Kontakt ist.

    Andere grafische Programmiersprachen (wie Funktionsblöcke) können Feedbackpfade als Verbindungslinien zwischen Funktionsausgängen und -eingängen anzeigen, aber diese Fähigkeit ist im Kontaktplan nicht vorhanden.

    Eine schrittweise Abfolge, die den Betrieb und Status dieses einfachen Programms zeigt, veranschaulicht, wie der Einschließkontakt durch einen Start- und Abschaltzyklus des Motors funktioniert:

    5-9.jpg

    Diese Sequenz hilft, die Auswertungs- oder Scanreihenfolge eines Kontaktplanprogramms zu veranschaulichen. Die SPS liest einen Kontaktplan von links nach rechts und von oben nach unten, in derselben allgemeinen Reihenfolge, wie ein Mensch Sätze und Absätze in englischer Sprache liest.

    Gemäß der Norm IEC 61131-3 muss ein SPS-Programm jedoch alle Eingänge (Kontakte) einer Funktion auswerten (lesen), bevor der Status des Ausgangs einer Funktion (Spule oder Spulen) bestimmt wird.

    Mit anderen Worten: Die SPS trifft keine Entscheidung darüber, wie der Zustand einer Spule eingestellt wird, bis alle Kontakte, die diese Spule mit Strom versorgen, gelesen wurden.

    Sobald der Status einer Spule in den Speicher geschrieben wurde, werden alle Kontakte mit demselben Tag-Namen mit diesem Status auf nachfolgenden Sprossen im Programm aktualisiert.

    Schritt 5 in der vorherigen Sequenz ist besonders anschaulich. Wenn der menschliche Bediener die Drucktaste „Stopp“ drückt, wird der Eingangskanal für den IN-Schalter „Stopp“ aktiviert, wodurch der normalerweise geschlossene virtuelle Kontakt „IN-Schalter „Stopp““ „geöffnet“ wird.

    Beim nächsten Scan dieses Programms wertet die SPS alle Eingangskontakte (IN-Schalter Start, IN-Schalter Stopp und OUT-Schütz) aus, um ihren Status zu überprüfen, bevor entschieden wird, welcher Status in die OUT-Schützspule geschrieben werden soll.

    Da die SPS erkennt, dass der IN-Schalter Stopp-Kontakt durch die Aktivierung seines jeweiligen diskreten Eingangskanals zwangsweise geöffnet wurde, schreibt sie einen „0“- (oder „Falsch“-)Zustand in die OUT-Schützspule.

    Der OUT-Schütz-Rückmeldekontakt wird jedoch erst beim nächsten Scan aktualisiert, weshalb er in Schritt 5 immer noch farblich hervorgehoben ist.

    Ein potenzielles Problem bei diesem System ist, dass der menschliche Bediener im Falle eines „offenen“ Verdrahtungsfehlers in einem der Druckknopfschalterkreise die Kontrolle über den Motor verliert.

    Wenn beispielsweise ein Draht von einem Schraubkontakt für den „Start“-Druckknopfschalterkreis abfiel, konnte der Motor nicht gestartet werden, wenn er bereits gestoppt war.

    Ebenso konnte der Motor nicht gestoppt werden, wenn ein Draht von einem Schraubkontakt für den „Stop“-Druckknopfschalterkreis abfiel, wenn er bereits lief.

    In beiden Fällen wirkt sich eine unterbrochene Kabelverbindung genauso aus wie der „normale“ Status des Druckknopfschalters, der den Motor in seinem aktuellen Zustand hält.

    Bei manchen Anwendungen wäre dieser Fehlermodus kein schwerwiegendes Problem. Bei vielen Anwendungen ist es jedoch ziemlich gefährlich, einen laufenden Motor zu haben, der nicht gestoppt werden kann.

    Aus diesem Grund ist es üblich, Motor-Start-/Stopp-Systeme etwas anders zu konstruieren als hier gezeigt.

    Um mit unserer SPS ein „Fail-Stop“-Motorsteuerungssystem zu bauen, müssen wir zuerst den Druckknopfschalter neu verdrahten, um seinen normalerweise geschlossenen (NC) Kontakt zu verwenden:

    5-10.jpg

    Dadurch bleibt der diskrete Eingangskanal 7 aktiviert, wenn der Druckknopf nicht gedrückt ist. Wenn der Bediener den „Stopp“-Druckknopf drückt, wird der Kontakt des Schalters zwangsweise geöffnet und Eingangskanal 7 wird stromlos.

    Wenn ein Draht von einer Schraubklemme im „Stopp“-Schaltkreis abfällt, wird Eingangskanal 7 genauso stromlos, als ob jemand den „Stopp“-Druckknopf gedrückt hätte, wodurch der Motor automatisch abgeschaltet wird.

    Damit das SPS-Programm mit dieser neuen Schalterverdrahtung richtig funktioniert, muss der virtuelle Kontakt für den IN-Schalter „Stopp“ von einem normalerweise geschlossenen (NC) in einen normalerweise offenen (NO) geändert werden:

    5-11.jpg

    Wie zuvor ist der virtuelle Kontakt des IN-Schalters „Stopp“ im „geschlossenen“ Zustand, wenn niemand den „Stopp“-Schalter drückt, wodurch der Motor jederzeit gestartet werden kann, wenn der „Start“-Schalter gedrückt wird.

    In ähnlicher Weise öffnet sich der virtuelle Kontakt des IN-Schalters „Stopp“, wenn jemand den „Stopp“-Schalter drückt, wodurch verhindert wird, dass virtueller „Strom“ zur OUT-Schützspule fließt.

    Obwohl dies eine sehr gängige Methode zum Aufbau von SPS-gesteuerten Motor-Start-/Stopp-Systemen ist – mit einem NC-Druckknopfschalter und einem virtuellen NO-„Stopp“-Kontakt –, finden Studenten, die neu in der SPS-Programmierung sind, diese logische Umkehrung oft verwirrend.

    Der vielleicht häufigste Grund für diese Verwirrung ist ein Missverständnis des „normalen“ Konzepts für Schaltkontakte, seien sie real oder virtuell. Der virtuelle Kontakt des Schalters „IN“ ist so programmiert, dass er normalerweise offen (NO) ist, befindet sich aber normalerweise im geschlossenen Zustand.

    Denken Sie daran, dass der „normale“ Status eines Schalters sein Status im Ruhezustand ohne Stimulation ist, nicht unbedingt sein Status, während sich der Prozess im „normalen“ Betriebsmodus befindet.

    Der „normalerweise offene“ virtuelle Kontakt „IN“ ist normalerweise im geschlossenen Zustand, da sein entsprechender Eingangskanal normalerweise aktiviert ist, was auf den normalerweise geschlossenen Druckknopfschalterkontakt zurückzuführen ist, der echte elektrische Energie an den Eingangskanal weiterleitet, wenn niemand den Schalter drückt.

    Nur weil ein Schalter als normalerweise offen konfiguriert ist, bedeutet das nicht unbedingt, dass er normalerweise im offenen Zustand ist! Der Status eines Schaltkontakts, ob real oder virtuell, ist eine Funktion seiner Konfiguration (NO gegenüber NC) und des auf ihn angewendeten Stimulus.

    Ein weiteres Problem im Zusammenhang mit realen Verdrahtungsproblemen ist, was dieses System tun wird, wenn der Spulenkreis des Motorschützes aus irgendeinem Grund geöffnet wird.

    Ein offener Stromkreis kann entstehen, wenn ein Draht von einer Schraubklemme fällt, oder er kann auftreten, weil der thermische Überlastkontakt aufgrund eines Übertemperaturereignisses ausgelöst wird. Das Problem mit unserem Motor-Start-/Stopp-System ist, dass es den tatsächlichen Status des Schützes nicht „kennt“.

    Mit anderen Worten: Die SPS „denkt“, dass der Schütz jedes Mal aktiviert wird, wenn der diskrete Ausgangskanal 2 aktiviert wird, aber das muss nicht der Fall sein, wenn ein offener Fehler im Spulenkreis des Schützes vorliegt.

    Dies kann zu einem gefährlichen Zustand führen, wenn der offene Fehler im Spulenkreis des Schützes später behoben wird. Stellen Sie sich einen Bediener vor, der den „Start“-Schalter drückt, aber feststellt, dass der Motor nicht startet.

    Er fragt sich, warum das so sein könnte, und schaut sich das Überlastrelais an, um zu sehen, ob es ausgelöst wurde. Wenn der Motor ausgelöst wird und der Bediener die „Reset“-Taste an der Überlastbaugruppe drückt, startet der Motor sofort, da der diskrete Ausgang der SPS nach dem Drücken des „Start“-Schalters die ganze Zeit über aktiviert geblieben ist.

    Dass der Motor sofort nach dem Zurücksetzen der thermischen Überlastung startet, kann für das Betriebspersonal eine Überraschung sein und könnte sehr gefährlich sein, wenn sich zufällig jemand in der Nähe der motorbetriebenen Maschine befindet, wenn diese startet.

    Sicherer wäre ein Motorsteuerungssystem, das sich weigert, „einzurasten“, wenn der Schütz nicht tatsächlich aktiviert wird, wenn der „Start“-Schalter gedrückt wird. Damit dies möglich ist, muss die SPS den Status des Schützes irgendwie erkennen können.

    Um die SPS über den tatsächlichen Status des Schützes zu informieren, können wir den Hilfsschalterkontakt mit einem der ungenutzten diskreten Eingangskanäle der SPS verbinden, wie folgt:

    5-12.jpg

    Jetzt kann die SPS den Echtzeitstatus des Schützes über Eingangskanal 5 erfassen.

    Wir können das SPS-Programm so ändern, dass es diesen Status erkennt, indem wir diesem Eingang einen neuen Tag-Namen zuweisen (IN Schütz Aux) und einen normalerweise offenen virtuellen Kontakt dieses Namens als Seal-In-Kontakt anstelle des OUT Schütz-Bits verwenden:

    5-13.jpg

    Wenn der Schütz jetzt aus irgendeinem Grund nicht aktiviert wird, wenn der Bediener den „Start“-Schalter drückt, wird der Ausgang der SPS nicht verriegelt, wenn der „Start“-Schalter losgelassen wird.

    Wenn der offene Fehler im Spulenkreis des Schützes behoben ist, startet der Motor nicht sofort, sondern wartet, bis der Bediener den „Start“-Schalter erneut drückt, was ein viel sichereres Betriebsmerkmal als zuvor ist.

    Eine spezielle Klasse virtueller „Spulen“, die in der SPS-Kontaktplanprogrammierung verwendet wird und die Erwähnung verdient, ist die „Latching“-Spule. Diese gibt es normalerweise in zwei Formen: als Set-Spule und als Reset-Spule.

    Anders als eine normale „Ausgabe“-Spule, die bei jedem Programmdurchlauf positiv in ein Bit im Speicher der SPS schreibt, schreiben „Set“- und „Reset“-Spulen nur dann in ein Bit im Speicher, wenn sie durch virtuelle Energie aktiviert werden. Andernfalls darf das Bit seinen letzten Wert behalten.

    Ein sehr einfaches Motor-Start-/Stopp-Programm könnte mit nur zwei Eingangskontakten und zwei dieser Latching-Spulen geschrieben werden (beide tragen denselben Tag-Namen und schreiben in dasselbe Bit im Speicher):

    5-14.jpg

    Beachten Sie die Verwendung eines normalerweise offenen (NO) Druckknopfschalterkontakts (wieder!), ohne Hilfskontakt, der der SPS eine Statusanzeige des Schützes liefert. Dies ist ein sehr minimales Programm, das ausschließlich zum Zweck der Veranschaulichung der Verwendung von „Set“- und „Reset“-Latching-Spulen in der SPS-Kontaktplanprogrammierung gezeigt wird.

    „Set“- und „Reset“-Spulen (bezeichnet als „Latch“- und „Unlatch“-Spulen) sind Beispiele für das, was in der Welt der SPS-Programmierung als remanente Anweisungen bekannt ist. Eine „remanente“ Anweisung behält ihren Wert, nachdem sie im „Schaltkreis“ des Kontaktplans praktisch „stromlos“ gemacht wurde.

    Eine Standardausgangsspule ist nicht remanent, was bedeutet, dass sie nicht „verriegelt“, wenn sie stromlos gemacht wird. Das Konzept von remanenten und nicht remanenten Anweisungen wird erneut auftauchen, wenn wir uns mit der SPS-Programmierung befassen, insbesondere im Bereich der Timer.

    Normalerweise versuchen wir, mehrere Spulen mit derselben Bezeichnung in einem SPS-Kontaktplanprogramm zu vermeiden. Da jede Spule eine „Schreib“-Anweisung darstellt, stellen mehrere Spulen mit demselben Namen mehrere „Schreib“-Operationen für dasselbe Bit im Speicher der SPS dar.

    Hier gibt es bei verriegelnden Spulen keinen Konflikt, da jede der Spulen nur dann in das OUT-Schützbit schreibt, wenn ihr jeweiliger Kontakt aktiviert wird. Solange nur einer der Drucktastenschalter gleichzeitig betätigt wird, gibt es keinen Konflikt zwischen den gleichnamigen Spulen.

    Dies wirft die Frage auf: Was würde passieren, wenn beide Drucktastenschalter gleichzeitig gedrückt würden? Was würde passieren, wenn sowohl die „Set“- als auch die „Reset“-Spulen gleichzeitig „aktiviert“ würden? Das Ergebnis ist, dass das OUT-Schützbit zuerst „gesetzt“ (auf den Wert 1 geschrieben) und dann „zurückgesetzt“ (auf den Wert 0 geschrieben) würde, und zwar in dieser Reihenfolge, in der die beiden Sprossen des Programms von oben nach unten gescannt würden.

    SPS aktualisieren ihre diskreten E/A-Register normalerweise nicht, während sie das Kontaktplanprogramm scannen (dieser Vorgang findet entweder vor oder nach jedem Programmscan statt), sodass der tatsächliche Status des diskreten Ausgangskanals der ist, der ihm durch den letzten Schreibvorgang angezeigt wurde, in diesem Fall „Reset“ (0 oder Aus).

    Auch wenn der diskrete Ausgang aufgrund der widersprüchlichen Schreibvorgänge der „Set“- und „Reset“-Spulen nicht „durcheinander“ ist, könnten andere Sprossen des Programms, die zwischen den „Set“- und „Reset“-Sprossen geschrieben wurden, durcheinander geraten.

    Stellen Sie sich beispielsweise einen Fall vor, in dem es andere Programmsprossen nach den „Set“- und „Reset“-Sprossen gab, die den Status des OUT-Schützbits aus irgendeinem Grund lasen.

    Diese anderen Sprossen würden tatsächlich „verwirrt“ werden, weil sie das OUT-Schützbit im „gesetzten“ Zustand sehen würden, während der eigentliche diskrete Ausgang der SPS (und alle Sprossen nach der „Reset“-Sprosse) das OUT-Schützbit im „Reset“-Zustand sehen würden:

    5-15.jpg

    Mehrere (nicht remanente) Ausgangsspulen mit derselben Speicheradresse sind aus diesem Grund fast immer ein Programmier-Fauxpax, aber selbst remanente Spulen, die für die Verwendung in passenden Paaren ausgelegt sind, können Probleme verursachen, wenn die Auswirkungen einer gleichzeitigen Aktivierung nicht vorhergesehen werden.

    Mehrere Kontakte mit identischen Adressen sind überhaupt kein Problem, da mehrere „Lese“-Operationen für dasselbe Bit im Speicher niemals einen Konflikt verursachen.

    Der SPS-Programmierstandard IEC 61131-3 spezifiziert Übergangserkennungskontakte sowie die üblicheren „statischen“ Kontakte. Ein Übergangserkennungskontakt wird nur für die Dauer eines Programmdurchlaufs „betätigt“, selbst wenn sein entsprechendes Bit aktiv bleibt.

    Im IEC-Standard sind zwei Arten von Kontaktplankontakten zur Übergangserkennung definiert: einer für positive Übergänge und einer für negative Übergänge.

    Das folgende Beispiel zeigt einen Schaltplan, ein Kontaktplanprogramm und ein Zeitdiagramm, die demonstrieren, wie jeder Typ von Kontakt zur Übergangserkennung funktioniert, wenn er durch ein reales (elektrisches) Eingangssignal an einen diskreten Kanal stimuliert wird:

    5-16.jpg5-17.jpg

    Wenn der Druckknopfschalter gedrückt und der diskrete Eingang aktiviert wird, blinkt die erste Prüflampe für genau einen Scan des SPS-Programms „ein“ und kehrt dann in den ausgeschalteten Zustand zurück.

    Der positive Übergangskontakt (mit dem Buchstaben „P“ darin) aktiviert die Spule OUT test1 nur während des Scans, in dem er den Status des IN-Testübergangs von „falsch“ auf „wahr“ erkennt, obwohl der Eingang nach diesem Übergang für viele Scans aktiviert bleibt.

    Wenn umgekehrt der Druckknopfschalter losgelassen wird und der diskrete Eingang stromlos wird, blinkt die zweite Prüflampe genau für einen Scan des SPS-Programms „ein“ und kehrt dann in den ausgeschalteten Zustand zurück.

    Der negative Übergangskontakt (mit dem Buchstaben „N“ darin) aktiviert die Spule OUT test2 nur während des Scans, bei dem er den Status des IN-Testübergangs von „wahr“ auf „falsch“ sieht, obwohl der Eingang nach diesem Übergang für viele Scans stromlos bleibt:

    Es ist zu beachten, dass die Dauer eines einzelnen SPS-Programmscans normalerweise sehr kurz ist: gemessen in Millisekunden. Wenn dieses Programm tatsächlich in einer echten SPS getestet würde, würden Sie wahrscheinlich keine der Prüflampen aufleuchten sehen, da jeder Impuls so kurzlebig ist.

    Übergangskontakte werden normalerweise immer dann verwendet, wenn eine Anweisung nach einem „auslösenden“ Ereignis nur einmal ausgeführt werden soll, anstatt diese Anweisung immer wieder auszuführen, solange der Ereignisstatus „wahr“ bleibt.

    Kontakte und Spulen stellen nur die grundlegendsten Anweisungen in der SPS-Programmiersprache mit Kontaktplan dar.

    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


×
×
  • Create New...