CoDeSys V3 - Quick Start 6/6
Testen der Applikation
Nachdem wir unsere Garagentor-Applikation vollständig ausprogrammiert haben, wollen wir sie
natürlich auch testen. Hierbei fehlt uns allerdings die reale Physik, d.h. wir haben keine realen
Aktoren und Sensoren anliegen, so dass wir diese von Hand simulieren müssen. Dabei hilft uns
CoDeSys jedoch durch die integrierten Debugging-Möglichkeiten.
Zunächst jedoch müssen wir
uns auf die Steuerung einloggen und dabei den erzeugten Code auf das Gerät laden. CoDeSys erzeugt
bei diesem Vorgang durch integrierte Compiler für die unterschiedlichsten CPU- und
Betriebssystem-Plattformen aus dem grafischen Code des FUP-Bausteins echten Maschinencode. In
unserem Fall verwenden wir als Gerät die SoftSPS auf unserem PC, die wir ja bereits bei der
Projekt-Konfiguration am Anfang angebunden haben ( siehe Projekt-Konfiguration - später könnten wir diese Applikation aber
natürlich auch auf einer anderen SPS laufen lassen).
Wir loggen uns also mit dem Befehl
„Einloggen“ im Menü „Online“ auf die Steuerung ein. CoDeSys prüft zunächst, ob bereits eine
Applikation auf unserem Zielgerät (SoftSPS) läuft und wenn ja, welche. Beim ersten Download unserer
Applikation öffnet sich dann ein Dialogfenster mit der Abfrage „Applikation existiert nicht auf
der Steuerung. Soll die Applikation angelegt und geladen werden?“
Wenn wir diese Abfrage
bestätigen, übersetzt CoDeSys den programmierten Applikationscode und beginnt den Download-Vorgang.
Die einzelnen Schritte und deren Fortschritt kann man währenddessen anhand der Statusleiste unten
links verfolgen.
Sobald der Download-Vorgang abgeschlossen ist geschieht folgendes:
Sollte die Online-Verbindung nicht wie dargestellt möglich sein, so überprüfen wir zunächst einmal
die Kommunikationseinstellungen, wie am Ende der Projekt-Konfiguration beschrieben.
Sollten wir bei der Programmierung
syntaktische Fehler gemacht haben, so dass der Applikationscode nicht übersetzt werden kann, so
meldet sich CoDeSys mit einer Dialogbox:
„Es gab Übersetzungsfehler. Möchten Sie sich
einloggen, ohne das Programm zu laden?“
Hier brechen wir mit ‚Nein’ ab und suchen und
beheben zunächst den oder die Fehler. Dazu listet CoDeSys im Meldungsfenster (meist unten
angeordnet), den oder die gefundenen Fehler mit ihrer Fundstelle auf. Am besten ist es, die Fehler
(bzw. allgemeiner die Meldungen) nacheinander abzuarbeiten. CoDeSys unterstützt uns dabei mit der
Taste F4, die alle Meldungen von oben nach unten abarbeitet und bei jeder Meldung auch
direkt die zugehörige Fehlerstelle im Applikationscode anzeigt.
Wir
prüfen den Applikationscode bei Fehlern anhand der Programmierschritte noch einmal und korrigieren
die gefundenen Fehler. Ein typischer Fehler wäre z.B. ein offener Eingang an einem FUP-Baustein.
Wenn wir einen Fehler gefunden und behoben haben, so können wir durch neuerliches Drücken der F4
ggf. zum nächsten Fehler springen.
Wenn wir alle Fehler behoben haben oder aber auch
wenn wir testen wollen, ob unsere Fehlerbehebung den erwünschten Erfolg gehabt hat, können wir
durch Drücken der F11-Taste den Übersetzungsvorgang starten, ohne dass der übersetzte Code
anschließend sofort auf die Steuerung geladen wird. Im Idealfall erscheint die
Meldung:
„Übersetzung abgeschlossen – 0 Fehler, 0 Warnung“.
Mit ‚Online/Einloggen'
oder durch Drücken des Buttons
in der
Symbolleiste, können wir uns dann wieder auf die Steuerung einloggen.
Zum Testen der
Applikation müssen wir diese zunächst starten. Das können wir über das Menü ‚Online/Start’/
‚Application [Device: SPS-Logik]‘ oder über die F5-Taste. Damit ändert sich die
Statusanzeige hinter der Applikation im Gerätebaum auf [run], bzw. auf LÄUFT in der Statuszeile. Im Applikationscode selbst, d.h.
im Baustein PLC_PRG sind nach dem ersten Starten alle booleschen Variablen auf FALSE
gesetzt, lediglich der Blinker für die Fehlermeldung im letzten Netzwerk wechselt im
Sekunden-Rhythmus von TRUE auf FALSE und
umgekehrt.
Zum Testen der Funktionalität unserer Applikation müssen wir die in der Variablen-Deklaration festgelegten
globalen Variablen verändern, allen voran den Taster Betaetigung, aber wegen der fehlenden
Physik auch die Sensoren TorOben, TorUnten und MotorUeberlast. Daher öffnen
wir die angelegte Variablenliste ’SimulationsSignale’ und bedienen die Applikation direkt in dieser
Liste.
Durch Klicken in die Spalte ‚Vorbereiteter Wert’ können wir die booleschen
Variablenwerte verändern.
Achtung:
Wenn so ein geänderter Wert vorbereitet wurde, ist er noch NICHT auf die
Steuerung geschrieben worden. Es könnte ja sein, dass innerhalb eines Steuerungszyklus mehrere
Werte gleichzeitig geändert werden müssen, um Schäden an der Maschine oder im Prozess zu vermeiden.
Deshalb muss man zum Schreiben des Werts auf die Steuerung noch den Befehl ‚Online/Werte’ schreiben
oder die Tastenkombination „Strg + F7“ ausführen.
Sobald wir den geänderten
Wert für die Betaetigung auf die Steuerung geschrieben haben, sollte das Garagentor schließen, und
zwar deshalb, weil nach dem ersten Download alle Variablenwerte der Applikation auf 0 bzw. FALSE
gesetzt werden, sofern im Deklarationsteil kein anderer Ursprungswert festgelegt
wurde.
Dass sich das Garagentor schließt, sieht man daran, dass die Ausgangsvariable TorRunter,
die ja den Garagentor-Antrieb zum Schließen bringt, von der Applikation auf TRUE geschaltet wurde. Gleichzeitig wird wie gewünscht die Beleuchtung ebenfalls
auf TRUE gesetzt.
Um den Ablauf richtig
nachvollziehen zu können, müssen wir jetzt manuell die Betaetigung zurück auf FALSE
setzen und auch das Erreichen des unteren Sensors TorUnten dadurch simulieren, dass wir
die entsprechende Variable auf TRUE setzen (und
anschließend wieder auf FALSE). Damit wird der Aktor TorRunter von der Applikation
sofort wieder zurück auf FALSE gesetzt – das Schließen des Tors ist beendet. Nach Ablauf
der Zeitverzögerung für die Beleuchtung wird auch diese Variable von der Applikation wieder
zurück auf FALSE gesetzt.
Wir können jetzt durch neuerliches „Drücken“ des Tasters,
sprich durch Wert-Veränderung der Variable Betaetigung, den Ablauf zum Öffnen des Tors
testen. Alles sollte sich entsprechend dem Schließen verhalten, aber natürlich mit den Variablen
für das Öffnen des Tors: TorRauf und TorOben.
Wenn wir jetzt den Ablauf,
gleichgültig ob für das Öffnen oder Schließen des Garagentors, nicht durch manuellen
Zustandswechsel der Sensor-Variablen TorUnten oder TorOben beenden, wird von der
Applikation nach Ablauf der Zeitverzögerung ein Fehler erkannt: Der Aktor TorRunter oder
TorRauf wird sofort auf FALSE gesetzt und die Beleuchtung beginnt im
Sekunden-Takt zu blinken – zwischen TRUE und FALSE.
Mit neuerlichem „Drücken des Tasters“, d.h. durch Setzen der Variable Betaetigung, wird der
Fehler quittiert und das Blinken der Beleuchtung wird von der Applikation beendet. Wir
befinden uns wieder im Ausgangszustand. Zum Testen des Fehlers bei MotorUeberlast müssen wir
noch während der Phase des Schließens oder Öffnens diese Variable manuell auf TRUE setzen. Auch hierbei sollte die Bewegung des Garagentors sofort
unterbrochen und der Fehler durch das Blinken der Beleuchtung angezeigt
werden.
Das, was wir Ihnen hier schriftlich beschrieben haben, können Sie sich auch
gleich wieder als YouTube-Video ansehen. Die beste Qualität erhalten Sie übrigens, wenn Sie im
YouTube-Fenster unten nach dem Starten des Films zunächst den Button
drücken (so dass das
Zeichen HD weiß auf rotem Hintergund erscheint) und anschließend
für eine
Vollbilddarstellung drücken.
Zum Abschluß dieser Serie können Sie sich das gesamte Projekt als CoDeSys V3 - Projektarchiv
herunterladen.
Extrahieren Sie das Projektarchiv in CoDeSys V3 über
"Datei/Projektarchiv/Archiv extrahieren".
Bitte beachten Sie:
Wir haben zwei Versionen des Projekts für Sie vorbereitet:
1. Die Original-Version, so wie wir das Projekt im Rahmen der Webseite und der YouTube-Videos vorgestellt haben:
Download des Project-Archivs
Sie können dieses Projekt testen, wie wir es auf dieser Webseite und innerhalb des Videos beschrieben haben.
2. Die Original-Version mit integrierter Garagen-Simulation.
Download des Project-Archivs
Innerhalb dieses Projekts realisiert der identische Code die Steuerung des Garagentors, jedoch simuliert ein zweiter Programmbaustein die Garage. Anhand einer einfachen Visualisierung können Sie die Applikation bequemer testen. Kleiner Tipp: Mit Klick auf die Reifen können Sie das Auto bewegen.
Es ist uns bewußt, dass man die Simulation und die Visualisierung noch optimieren kann - viel Spaß dabei :-).
Was suchen sie?
Produktübersicht



