3s-software.net
DRUCKVERSION
zur Suche
zur Navigation
zum Inhalt
zum Seitenfuß
Handlings-Maschine - automatisiert mit der SoftSPS CoDeSys SP RTE
Application gallery

WeiterCoDeSys V3 – Quick Start 5/6

Programmierung der Fehlerüberwachung und der Beleuchtung

Um das Öffnen bzw. Schließen des Garagentors anzuhalten, haben wir neben der Betätigung des Tasters (bzw. dem Erreichen der Sensoren TorUnten / TorOben), die neue Variable Fehler eingeführt, die einen Fehlerfall anzeigen soll. Natürlich müssen wir diese Variable auch entsprechend ausprogrammieren.

Es liegt ein Fehler vor, wenn der Sensor MotorUeberlast auf TRUE steht. Oder aber, wenn die Länge des Vorgangs Öffnen/Schließen länger als die erfahrungsgemäßen 20s dauert.

Entsprechend fügen wir wieder ein neues Netzwerk ein und starten mit einem OR-Operator, mit dessen Hilfe wir diese beiden Fälle bearbeiten. Der Ausgang des Operators soll uns die Zwischenvariable Fehler gespeichert schreiben. D.h. wir müssen das Ende der Ausgangsleitung markieren und können dann auf der Toolbar den Button Set/Reset drücken, so dass ein ‚S’ am Ende der Leitung sichtbar wird. Das hat zur Folge, dass die Variable an anderer Stelle nur mit einem Reset, den man durch nochmaliges Drücken des Buttons erhält, wieder zurückgesetzt werden kann.



An den ersten Eingang des OR-Operators können wir nun die bereits deklarierte Sensor-Variable MotorUeberlast schreiben.

Um überprüfen zu können, ob die definierte maximale Zeitspanne für das Öffnen oder Schließen des Tors überschritten wird, benötigen wir eine Zeitüberwachung. Dafür eignet sich der Funktionsbaustein TON (Timer on Delay), den wir wieder in unserem Werkzeug-Fenster (in der Rubrik: ‚Funktionsbausteine’) finden. Diesen Funktionsbaustein instanziieren wir mit dem Namen Ueberwach.



Ein am Eingang IN anliegendes boolesches TRUE wird erst mit einer Zeitverzögerung (PT für predefined time) an den Ausgang Q geschrieben. Wechselt IN während dieser Zeitverzögerung allerdings wieder zurück auf FALSE, dann bleibt der Ausgang auf FALSE.

Wird in unserem Fall das Öffnen oder Schließen des Tors gestartet (repräsentiert über die Aktor-Variablen TorRauf / TorRunter), dann beginnt der Timer-Baustein zu arbeiten. Im Normalfall wird innerhalb von typischerweise 10 – 20s einer der beiden Sensoren TorOben oder TorUnten die Bewegung des Tors beenden, so dass die Aktor-Variablen wieder auf FALSE zurückgesetzt werden. Damit bleibt der Ausgang des Timer-Bausteins auf FALSE und meldet keinen Fehler. Erfolgt das allerdings nicht innerhalb der vorgegeben Zeit, in unserem Fall 20s, dann wird der Ausgang Q auf TRUE gesetzt und löst damit den Fehler aus. Der zweite Ausgang ET (Elapsed Time) des Bausteins gibt uns die verstrichene Zeit nach dem Start des Timers aus. Weil wir diesen Wert aber in unserem Beispiel nicht benötigen, können wir den Ausgang durch Markieren des Ausgangspins und Drücken der Entf-Taste auf der PC-Tastatur einfach löschen. Da die Zeitüberwachung gleichermaßen für das Öffnen und Schließen gilt, können wir die beiden Aktor-Variablen über einen OR-Operator an den IN-Eingang des TON-Bausteines verschalten.



Bei der Eingabe der gewünschten Zeitverzögerung ist zu beachten, dass die Angabe der Zeitspanne im IEC 61131-3-Format zu erfolgen hat: „T#“ als Präfix gefolgt von der Zeitangabe.

Zum Quittieren und Zurücksetzen des Fehlers soll der Anwender im Fehlerfall den Taster Betaetigung drücken. Um dies in unserer Applikation umzusetzen, müssen wir ein weiteres Netzwerk einfügen. Dazu verwenden wir entweder das Werkzeug-Fenster oder klicken auf das letzte Netzwerk des Bausteins. Mit rechtem Mausklick öffnet sich ein kontext-sensitives Menü, aus dem wir ‚Netzwerk einfügen (unterhalb)’ auswählen können. In dieses neue, leere Netzwerk können wir jetzt entweder über das Werkzeug-Fenster (Rubrik: ‚Generelles’), durch rechten Mausklick oder aber über die Tastenkombination „Strg+A“ eine neue Zuweisung einfügen.



Am Eingang der Zuweisung geben wir die Variable Betaetigung ein und weisen deren Wert der Variable Fehler zu. Allerdings benötigen wir hier das Rücksetzen der Variable Fehler und müssen somit den Ausgang der Zuweisung über die Toolbar, rechte Maustaste (kontext-sensitives Menü) oder die Tastenkombination ‚Strg+M’ auf ‚Reset’ R stellen.




Im letzten Netzwerk der Applikation kümmern wir uns um die Beleuchtung. Laut Aufgabenstellung soll die Beleuchtung des Torantriebs mit der Bewegung des Garagentors eingeschaltet und erst nach einer Verzögerung von z.B. 10s wieder abgeschaltet werden. Somit benötigen wir in jedem Fall wieder einen Timer-Baustein. Da es nun um das verzögerte Abschalten eines booleschen Signals geht, benötigen wir den Baustein TOF (Timer off delay). Diesen ziehen wir uns wieder aus dem Werkzeug-Fenster in ein neues Netzwerk und instanziieren ihn (z.B. mit dem Name T1). Den ET-Ausgang des Timers können wir auch in diesem Fall gleich zu Beginn bedenkenlos löschen.

Dem Ausgang Q des Bausteins weisen wir gleich die Variable Beleuchtung zu, dem Eingang PT die erwähnte Zeitverzögerung von 10s im IEC 61131-3-Format. Am Eingang IN fügen wir entweder per Werkzeug-Fenster, mit der rechten Maustaste (kontext-sensitives Menü) oder über die Tastenkombination „Strg+B“ einen neuen Baustein ein, und zwar wiederum einen OR-Operator. An dessen Eingänge verschalten wir die Aktor-Variablen TorRauf und TorRunter. Der zweite Ausgang ET (Elapsed Time) des Bausteins gibt uns die verstrichene Zeit nach dem Start des Timers aus. Weil wir diesen Wert aber in unserem Beispiel nicht benötigen, können wir den Ausgang durch Markieren des Ausgangspins und Drücken der Entf-Taste einfach löschen. Die Beleuchtung im normalen Betriebsfall ist somit ebenfalls fertig.



Um im gleichen Netzwerk auch den Fehlerfall berücksichtigen zu können, fügen wir vor der Variable Beleuchtung wiederum einen OR-Operator ein und öffnen somit einen zweiten Strang des Netzwerks. Dieser neue Strang soll nur im Fehlerfall relevant sein, während der bereits bestehende Strang nur dann relevant ist, wenn kein Fehler anliegt. Deshalb fügen wir vor die Eingänge des neuen OR-Operators jeweils einen AND-Operator ein. Beim ersten, bereits bestehenden Strang für die Beleuchtung während der normalen Bewegung wird dieser AND-Baustein einfach zwischengeschoben. Am zweiten Eingang fügen wir die Variable Fehler ein und negieren sie. Damit wird der gesamte Strang nur dann auf den Ausgang der Beleuchtung durchgeschaltet, wenn kein Fehler anliegt.

Am zweiten Strang fügen wir auf den zweiten Eingang des AND-Operators entsprechend wiederum die Variable Fehler ein, dieses Mal jedoch ohne Negation. Damit wird der Strang nur im Fehlerfall auf die Beleuchtung geschaltet. Vor dem ersten Eingang des AND-Operators müssen wir eine Blinkschaltung programmieren. Dazu fügen wir zwei TON-Bausteine hintereinander ein, so dass der Ausgang des linken TONs mit dem Eingang des rechten TONs verbunden ist und dabei invertiert wird. Die Zeitverzögerung für beide Bausteine soll 1s betragen, die Ausgänge ET können wir wieder löschen und natürlich müssen wir die Funktionsbausteine instanziieren, z.B. mit den Instanznamen T2 und T3. Somit bleibt nur noch der Eingang IN vom linken TON, den wir mit dem Ausgang des rechten TON beschalten. Dazu fügen wir den Instanznamen des rechten Bausteins ein und machen dahinter einen Punkt. CoDeSys weiß damit, dass wir eine Variable innerhalb der Datenstruktur der Funktionsblock-Instanz T3 verwenden möchten und liefert uns entsprechend die verfügbaren Variablen in einem Intellisense-Fenster.



Nachdem wir zum Erzeugen der Blinkfunktion den Ausgang Q von T3 benötigen, können wir ihn aus der Liste auswählen oder auch eintippen.

Somit haben wir die Beleuchtung für den Normal- und den Fehlerfall komplett ausprogrammiert und damit auch die gesamte Applikationsentwicklung abgeschlossen.



Im nachfolgenden YouTube-Video wird die Fehlerüberwachung sowie die Beleuchtungsprogrammierung in CoDeSys V3 vorgenommen:
(Achtung: Im Video wurde vergessen, den IN-Eingang von T3 zu invertieren)


Weiter

Was suchen sie?

Produktübersicht

CoDeSys CoDeSys Automation Platform CoDeSys Gateway Server CoDeSys SP Laufzeitsystem CoDeSys SP Safety Laufzeitsystem Safety Applikation Target- Visualisierung Treiber Webserver IEC 61131-3 Applikation PLC Handler CoDeSys OPC Server Visualisierung CoDeSys SoftMotion Module Hardware- und Feldbuskonfiguration IEC 61131-3 Quellcode Verwaltung ENI Server CoDeSys Safety
Letzte Änderung: 23.06.2010 / 17:23 Uhr
Ausgedruckt am 09.09.2010 / 07:33