3s-software.net
DRUCKVERSION
zur Suche
zur Navigation
zum Inhalt
zum Seitenfuß
Steuerung einer Be- und Entlüftungsanlage
Application gallery

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:

  • Der Code-Teil des FUP-Editors, in dem wir unsere Applikation entwickelt haben, wechselt vom Editor-Modus in den Online-Modus, d.h. die aktuellen Werte aller verwendeten Variablen werden angezeigt.
  • Der Deklarationsteil aller Editoren wechselt in den Online-Modus. Auch hier können wir jetzt nicht mehr editieren, sehen jedoch sofort alle Variablenwerte und können diese auch verändern (diese Eigenschaft werden wir gleich zum Testen der Applikation verwenden).
  • Im Geräte-Baum (links) zeigt ein grünes Symbol vor dem programmierten Gerät – in unserem Fall „Device [Verbunden] (CoDeSys SP WinV3)“ – eine bestehende Verbindung zum Gerät an. Ebenso ist die gesamte Zeile grün markiert
  • Darunter ist ebenfalls die heruntergeladene Applikation grün markiert. Der Hinweis [Stop] nach der Applikation zeigt an, dass die Applikation noch nicht gestartet wurde.
  • In der Statuszeile zeigt eine rote Markierung ‚STOP’ ebenfalls an, dass die Applikation noch nicht gestartet wurde, und die Meldung ‚Programm geladen’ wird ausgegeben.

  • 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:

  • der MS Internet Explorer wandelt die Datei-Endung *.projectarchive in *.zip. Bitte ändern Sie diese Datei-Endung nach dem abgeschlossenen Download wieder auf *.projectarchive.
  • Nutzer von Mozilla Firefox müssen den Link mit der rechten Maustaste anklicken, und dann die Option "Ziel speichern unter ..." anwählen.

    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

    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: 17.08.2010 / 14:41 Uhr
    Ausgedruckt am 09.09.2010 / 07:43