Kapitel 5. Entwicklungsumgebung

Mit Hilfe der Winguard-Entwicklungsumgebung können Sie eigene Prüfprogramme erstellen. Zahlreiche Werkzeuge wie zum Beispiel der integrierte Debugger oder das Guardian-Labor unterstützen Sie bei dieser Aufgabe. In diesem Kapitel werden die einzelnen Konzepte der Entwicklungsumgebung vorgestellt. Das nächste Kapitel erläutert die Verwendung des integrierten Debuggers. Weitere Werkzeuge werden im Anschluss beschrieben, das Kapitel Kapitel 9, Beschreibung der Scriptsprache gibt einen detailierten Einblick in die Skriptsprache WGScript.

5.1. Erste Schritte in der Entwicklungsumgebung

In diesem Abschnitt werden Sie mit den grundlegenden Funktionen der Entwicklungsumgebung vertraut gemacht. Anhand kurzer Beispiele werden die wichtigsten Befehle erläutert. Es wird bei allen Beispielen davon ausgegangen, dass Sie sich in der Entwicklungsumgebung befinden. Die Programme zu den Beispielen finden Sie im Winguard-Installationsverzeichnis im Unterverzeichnis Beispiele. Um nach dem Start in die Entwicklungsumgebung zu wechseln, verwenden Sie die Tastenkombination Strg-F6 oder klicken Sie auf images/ico_devenv.png in der Toolbar. Sie können aus der Entwicklungsumgebung in die Testumgebung zurückkehren indem Sie Strg-F6 drücken oder auf images/ico_testenv.png klicken.

5.1.1. Ein neues Projekt erstellen

Um ein neues Projekt zu erstellen, wählen Sie im Menü Datei den Punkt Neues Projekt oder klicken Sie images/ico_newprj.png in der Toolbar. Es öffnet sich ein Dialog in dem Sie den Speicherort und den Namen des Projektes angeben. Nach dem Erzeugen wird das Projekt geladen und die Entwicklungsumgebung zeigt den Editor des Hauptprogrammes an.

Anmerkung

Ein Winguard-Projekt besteht aus mehreren Dateien. Es empfiehlt sich daher, jedes Projekt in einem eigenen Ordner zu sichern.

5.1.2. Editieren von Projekten

Abbildung 5.1. Die Winguard-Entwicklungsumgebung
images/devenv-emptyprj.png

Nachdem ein Projekt erstellt oder geladen wurde, zeigt die Entwicklungsumgebung eine Auflistung aller verfügbaren Befehle im Befehlsbrowser (A) sowie — rechts daneben — den Skripteditor (B) an.

Abbildung 5.2. Aufgeklappte Kategorie im Befehlsbrowser (A)
images/devenv-cmdbrowser.png

Der Befehlsbrowser verwaltet die verfügbaren Befehle in Kategorien. Kategorien erkennen Sie an dem Plus links neben dem Namen. Klicken Sie das Plus an, werden alle Befehle dieser Kategorie angezeigt, zum Beispiel die Befehle Infobox, Meldungsbox, Statusleiste und TextOut in der Kategorie Ausgabe (A).

Sie können die Befehle aus dem Befehlsbrowser auf den Skripteditor ziehen. Klicken Sie dazu auf den gewünschten Befehl und halten Sie die Maustaste gedrückt. Bewegen Sie dann den Mauszeiger mit gedrückter Taste auf den Skripteditor. Eine schwarze Linie zeigt die Position an, an der der Befehl eingefügt wird. Zum Einfügen lassen Sie die Maustaste los.

Abbildung 5.3. Einstellungsdialog des Befehls Textout
images/devenv-textout.png

Viele Befehle bringen einen Einstellungsdialog mit in dem Sie die Parameter des Befehls eingeben können. Dieser Dialog wird automatisch geöffnet wenn der Befehl auf den Skripteditor gezogen wird. Um den Befehl endgültig einzufügen schließen Sie den Dialog indem Sie die Schaltfläche OK klicken. Mit der Schaltfläche Abbrechen brechen Sie den Einfügevorgang ab. Sie können den Einstellungsdialog zu einem Befehl jederzeit wieder öffnen indem Sie doppelt auf die entsprechende Zeile klicken.

5.1.3. Hallo, Welt!

Wir werden zuerst ein kleines Projekt erstellen das im Messprotokoll einen Text ausgibt.

Ein neues Projekt erstellen
Erstellen Sie wie oben beschrieben ein neues Projekt.
Einen Text ausgeben

Suchen Sie nun im Befehlsbrowser den Befehl TextOut. Dieser befindet sich in der Kategorie Ausgabe. Fügen Sie den Befehl an einer beliebigen Stelle in den Editor ein. Es öffnet sich folgender Dialog:

images/textout-hw.png

Geben Sie in der Texteingabe (A) den Text "Hallo, Welt!" ein und schließen Sie den Dialog durch Klick auf OK. Im Editor sollte jetzt eine Zeile

TextOut(Text:"Hallo, Welt!");

erscheinen.

Wird dieser Befehl beim Prüfablauf abgearbeitet erscheint im Messprotokoll der Testumgebung eine neue Zeile die den Text „Hallo, Welt!“ enthält.

Anmerkung

Soll im Prüfprogramm Text verwendet werden muss dieser immer in Anführungszeichen stehen. In Ausnahmefällen wird darauf explizit hingewiesen.

Das Projekt starten

Starten Sie das Projekt indem Sie im Menü Ausführen den Punkt Start klicken, die Taste F9 drücken oder auf images/ico_run.png klicken. Winguard schaltet automatisch in die Testumgebung und startet dann das Programm. Da nur ein Text ausgegeben wird ist das Programm recht schnell abgearbeitet. Im Messprotokoll finden Sie dann den ausgegebenen Text:

images/testenv-hallowelt.png

Anmerkung

Neben dem auszugebenden Text können Sie für den Befehl TextOut noch weitere Parameter festlegen. Eine vollständige Auflistung aller Befehle und aller Parameter finden Sie unter Kapitel 8, Befehlsreferenz.

5.1.4. Einlesen von Informationen

Mitunter ist es sinnvoll vom Bediener zusätzliche Informationen abzufragen. Dazu existiert in Winguard der Befehl InputBox.

In diesem Projekt werden wir vom Bediener die Eingabe einer Zahl verlangen. Dazu öffnen wir ein kleines Fenster in das die Zahl eingegeben werden soll. Danach geben wir die Zahl im Messprotokoll aus.

Ein neues Projekt erstellen
Erstellen Sie ein neues Projekt wie oben beschrieben.
Eine Bedienerabfrage durchführen

Suchen Sie in der Kategorie Eingabe den Befehl Inputbox und ziehen Sie diesen in den Skripteditor. Es öffnet sich folgender Einstellungsdialog:

images/inputbox-testenv.png

Füllen Sie nun den Dialog aus. Der Text den Sie unter Überschrift eintragen erscheint als Titel des Fensters. Der Eingabetext stellt die Aufforderung an den Bediener dar. Der Wert der unter Defaultwert eingetragen wird ist der Standardwert. Er wird verwendet wenn der Bediener den Dialog ohne weitere Eingabe schließt.

Der letzte Punkt gibt den Namen der Variable an, in der die Eingabe des Benutzers gespeichert wird. Eine Variable verknüpft einen Wert (hier die Eingabe) mit einem Namen (hier messwert). Variablen müssen vor ihrer Benutzung definiert werden. Jedes Projekt erhält bei Erstellung allerdings eine Menge von vordefinierten Variablen. Geben Sie die Variable Messwert in das letzte Feld ein. Eine weiterführende Erklärung zu Variablen finden Sie unter Abschnitt 5.4, „Variablen und Konstanten“.

Die Eingabe ausgeben

Fügen Sie einen TextOut-Befehl nach dem Eingabebefehl ein.

Da der Wert in der Variablen messwert gespeichert ist, müssen Sie diese als Text eintragen. Um die Ausgabe etwas interessanter zu gestalten geben Sie zusätzlich noch einen Text (wieder in Anführungszeichen) aus. Um beide Ausgaben zu verknüpfen wird der Operator + verwendet. Dieser hängt den Wert der Variablen messwert an den Text an.

images/textout-input.png
Starten Sie das Programm
Starten Sie das Programm wie im letzten Abschnitt beschrieben. Winguard wird Sie nun zur Eingabe einer Zahl auffordern und danach diese Zahl im Messprotokoll ausgeben.

5.1.5. Auswertung von Messdaten

In diesem Beispiel werden wir vom Benutzer die Eingabe einer Zahl zwischen 10 und 20 verlangen. Anschliessend überprüfen wir die Eingabe des Benutzers indem wir einen Testschritt anlegen.

Neues Projekt erstellen
Erstellen Sie ein neues Projekt.
Eingabe der Zahl
Fordern Sie den Bediener zur Eingabe einer Zahl zwischen 10 und 20 auf. Speichern Sie das Ergebnis der Eingabe in der Variablen messwert.
Auswertung der Eingabe

Suchen Sie nun in der Kategorie Auswertung den Befehl Ergebnis und fügen Sie diesen in Ihr Programm ein. Es öffnet sich folgender Dialog:

images/bsp3-erg.png

Die meisten der Einstellungen sind zur Zeit uninteressant. Tragen Sie in das Feld Text (Testschrittname) (A) den Text "Eingabe" ein. Dieser Text erscheint im Messprotokoll als Name des Testschrittes.

Geben Sie unter Ergebnis (Wert) (B) den Namen der Variablen ein, die den eingelesenen Wert enthält, also Messwert.

Nun tragen Sie die Untergrenze und die Obergrenze unter © ein. Der Wert in (B) wird dann später mit diesen Grenzen verglichen. Liegt er außerhalb der Grenzen wird der Test als fehlerhaft gewertet ansonsten gilt der Test als bestanden.

Starten des Programms
Starten Sie das Programm wie gehabt. Geben Sie in den Eingabedialog einen Wert ein, der innerhalb der Grenzen liegt, beendet der Test erfolgreich. Liegt der Wert hingegen außerhalb des erwarteten Bereichs wird der Test als fehlgeschlagen betrachtet.

5.1.6. Ablaufsteuerung

Wir wollen nun den Benutzer zu einer korrekten Eingabe zwingen. Dazu möchten wir das Eingabefenster sooft neu anzeigen, bis eine gültige Eingabe vorliegt.

Neues Projekt erstellen
Erstellen Sie wie gewohnt ein neues Projekt.
Ein Label definieren

Suchen Sie in der Kategorie Programmablauf den Befehl Label. Ziehen Sie den Befehl in den Editor und erstellen Sie ein Label mit dem Namen Einlesen.

images/bsp4-label.png

Ein Label kann von einer anderen Stelle des Programms durch Verwendung des Befehls GOTO angesprungen werden. Die Ausführung des Programms wird dann an der Position des Labels fortgesetzt.

Eingabe der Zahl
Erfragen Sie vom Benutzer die Eingabe einer Zahl größer als 10 und speichern Sie das Ergebnis in der Variablen messwert.
Überprüfung der Eingabe und Anspringen des Labels

Suchen Sie in der Kategorie Programmablauf den Befehl GOTO Label und fügen Sie diesen hinter der Eingabe ein. Es öffnet sich der Eingabedialog für den Befehl GOTO.

images/bsp4-goto.png

Die Liste (A) zeigt alle Label die angesprungen werden können. Wählen Sie hier das einzig mögliche Label Einlesen aus. Setzen Sie nun den Haken unter Bedingung und tragen Sie dann in das Eingabefeld (B) die Bedingung Messwert <= 10 ein.

Wird der Befehl ausgeführt und ist der Wert der Variablen Messwert kleiner oder gleich 10, so wird die Ausführung des Programmes am Label Einlesen fortgesetzt, d.h. der Benutzer wird erneut um eine Zahl gebeten.

Starten des Programms
Starten Sie das Programm.

Das Programm fordert solange die Eingabe einer Zahl, bis diese größer als 10 ist. Die einzige Möglichkeit das Programm ohne korrekte Eingabe zu beenden, ist im Eingabefenster die Schaltfläche Abbrechen zu klicken. In diesem Fall wird der Test allerdings als Abgebrochen gewertet.

Sie können Label immer dann verwenden, wenn der Ablauf des Prüfprogrammes nicht geradlinig sein soll, also zum Beispiel Wiederholungen enthält.

5.1.7. Ansprechen der Guardian-Hardware

Winguard wurde in erster Linie dazu entwickelt Prüfprogramme auf dem Guardian-Testsystem auszuführen. In diesem Abschnitt werden wir zuerst die Guardian-Stromversorgung einschalten und danach die ausgegebene Spannung messen. Sie benötigen ein angeschlossenes Guardian-Testsystem. Eine Anleitung zur Installation erhalten Sie unter Abschnitt 1.5, „Inbetriebnahme des Guardian-Systems“.

Ein neues Projekt erstellen
Erstellen Sie ein neues Projekt
Einschalten der Stromversorgung

Suchen Sie in der Kategorie Hardware den Befehl Netzteil und ziehen Sie ihn in den Editor. Im Einstellungsdialog tragen Sie als Spannung (A) 5 V ein. Wählen Sie über den Schalter (B), dass das Netzteil eingeschaltet werden soll und schliessen Sie den Dialog mit OK.

images/bsp5-netzteil.png
Messen der Spannung

Suchen Sie in der Kategorie Hardware den Befehl ADX-Karte und ziehen Sie ihn in den Editor. In der Standardeinstellung wird eine Spannungsmessung (DC) im Messbereich bis zu 200 mV durchgeführt. Ändern Sie den Messbereich auf 20 V (A) und schliessen Sie den Dialog mit OK.

images/bsp5-adx.png
Auswertung des Messwertes
Die Befehle zu den Guardiankomponenten legen alle Messwerte in der Variablen messwert ab. Überprüfen Sie den Wert dieser Variablen mit Hilfe des Befehls Ergebnis aus der Kategorie Auswertung. Verwenden Sie als Grenzwerte 4 und 6.
Abschalten der Spannung

Abschliessend sollten Sie die Stromversorgung wieder abschalten. Verwenden Sie dazu in der Unit FINALIZATION den Befehl Netzteil, schalten Sie diesmal jedoch den Schalter (A) auf aus.

images/bsp5-netzteilaus.png
Hardwareaufbau
Bereiten Sie nun den Guardian für die Messung vor. Verbinden Sie dazu die Ausgänge PSU1+ und PSU1- an der Frontseite des Testsystems mit den Eingängen ADX+ und ADX- (ebenfalls an der Frontseite).
Starten des Programmes
Starten Sie nun das Programm. Mit dem ersten Befehl wird eine Spannung von 5V auf der Guardian-Stromversorgung erzeugt. Diese 5V werden über die im letzten Schritt hinzugefügten Verbindungen an die Messkanäle der ADX-Karte angelegt. Mit dem Messbefehl wird diese Spannung abgefragt, um anschließend vom Befehls Ergebnis in das Messprotokoll geschrieben zu werden. Wenn Ihr Guardiansystem korrekt funktioniert sollte der Test mit Pass bewertet werden.

5.1.8. Units und Prozeduren

Ein Winguard-Prüfprogramm ist in Units und Prozeduren unterteilt. Eine Prozedur ist ein abgeschlossener Teil des Prüfprogrammes, der von anderen Teilen aufgerufen werden kann und nach dessen Abarbeitung zu der aufrufenden Stelle zurückgekehrt wird. Prozeduren werden durch ihren Namen eindeutig bestimmt. Außerdem können einer Prozedur mehrere Parameter übergeben werden, die die Art der Abarbeitung beeinflussen können.

Eine Unit fasst mehrere Prozeduren zu einer logischen Einheit zusammen. Units werden ebenfalls durch ihre Namen identifiziert.

Units und Prozeduren dienen der Organisation des Prüfprogramms und sollen die Wiederverwendbarkeit von Programmcode erleichtern. Im folgenden Beispiel werden wir eine neue Unit anlegen, in dieser Unit eine Prozedur definieren und diese dann im Hauptprogramm aufrufen. Weiterführende Informationen zu Units und Prozeduren finden Sie in den Abschnitten Abschnitt 5.2.7, „Navigation in Units und Prozeduren“ und Abschnitt 5.3, „Prozeduren“.

In diesem Beispiel erstellen wir eine Unit die eine Prozedur zur Ausgabe von Zahlen enthält. Die Zahl soll der Prozedur dabei als Parameter übergeben werden.

Neues Projekt erstellen
Erstellen Sie ein neues Projekt.
Neue Unit erstellen

Erstellen Sie eine neue Unit. Wählen Sie dazu im Menü Datei den Punkt Neue Unit oder klicken Sie auf images/ico_newunit.png. Winguard fragt Sie daraufhin nach dem Namen der neuen Unit. Geben Sie einen Namen für die neue Unit ein, zum Beispiel MeineUnit und klicken Sie OK.

images/6uup-newunit.png

Winguard erstellt daraufhin eine neue Unit und wechselt automatisch in die neue Unit. Alle Befehle die Sie jetzt erzeugen, werden in die neue Unit eingefügt.

Eine neue Prozedur erstellen

Suchen Sie in der Kategorie Unterprogramme den Befehl Neu Deklarieren und ziehen Sie ihn in die neue Unit. Es öffnet sich folgender Dialog:

images/6uup-newproc.png

Geben Sie unter (A) den Namen Ausgabe des neuen Unterprogramms ein. Klicken Sie als nächstes in das Tabellenfeld (B) und geben Sie den Namen des Parameters Wert ein. Klicken Sie auf das Tabellenfeld © um den Typ des Parameters auszuwählen. Der Typ schränkt die Art der Daten ein, die beim Aufruf der Prozedur als Parameter verwendet werden können. Wählen Sie Real um nur Zahlen als Parameter zuzulassen.

Schließen Sie nun den Dialog mit OK. Im Skripteditor erscheinen nun zwei neue Zeilen. Die Zeile procedure Ausgabe(Wert : Real); wird Prozedurkopf genannt. Sie enthält alle wichtigen Informationen zu der Prozedur wie ihren Namen und die Liste der Parameter. Die Prozedur endet mit der Zeile end procedure. Wird die Prozedur aufgerufen werden alle Zeilen zwischen dem Kopf und dem Ende der Prozedur nacheinander abgearbeitet.

Die Prozedur füllen

Ziehen Sie den Befehl TextOut der Kategorie Ausgabe zwischen den Kopf und das Ende der Prozedur.

In der Prozedur können Sie die Parameter der Prozedur wie eine gewöhnliche Variable verwenden. Erzeugen Sie nun die Ausgabe des Parameters.

images/6uup-procinner.png
Aufruf der Prozedur

Zuletzt müssen Sie die Prozedur noch aufrufen. Dazu müssen Sie zuerst in das Hauptprogramm wechseln.

images/unitbrowser.png

Mithilfe des Unitbrowsers (A) können Sie zwischen Units hin- und herschalten. Wählen Sie hier die Unit Main-Unit aus.

Suchen Sie nun den Befehl Aufruf in der Kategorie Unterprogramme und ziehen Sie ihn in den Editor.

images/6uup-proccall.png

Unter (A) finden Sie alle Prozeduren des aktuellen Projektes. Wir wählen die (einzige) Prozedur Ausgabe aus. In der Tabelle (B) werden die Parameter der aktuellen Prozedur angezeigt. In der Spalte Wert können wir den Wert des Parameters eintragen. Tragen Sie hier eine beliebige Zahl ein und schließen Sie den Dialog mit OK.

Wenn wir unser Programm ausführen erscheint im Messprotokoll die Ausgabe Die Zahl hat den Wert 12.

Wenn wir die Prozedur mehrmals in unserem Programm aufrufen reicht es aus, die Prozedur anzupassen um alle Ausgaben zu verändern. Prozeduren helfen somit Programme übersichtlich und wartbar zu halten. Um die Lesbarkeit Ihrer Programme zu erhöhen sollten Sie ihren Prozeduren „sprechende“ Namen geben, also Ausgabe statt x oder StromversorgungEinschalten statt On. Verwenden Sie in einem Programm mehrere Prozeduren, so organisieren Sie diese in Units. Vergeben Sie auch an Ihre Units sprechende Namen.