Debugger Panel
Ein Manager kann mehrere CTRL-Skripts gleichzeitig ausführen, und es kann pro aktivem Skript auch mehrere Threads geben. Im Debugger können Sie immer ein Skript angeben, das Sie untersuchen möchten. Es kann auch ein Thread in dem selektierten Skript behandelt werden.
Öffnen Sie das CTRL-Debugger-Panel über
.Oder über das gleiche Symbol in der WinCC OA-Console. Ein Control (CTRL)- oder UI-Manager kann selektiert und debuggt werden.
Mit dem CTRL-Debugger können Skripte oder Threads debuggt werden. Die Skripte können im Debugger jedoch nicht geändert werden. Durch den Debugger kann ein Script im Script Editor bzw. ein Panel im GEDI geöffnet werden, um Scripte oder Panels zu editieren (siehe weiter unten).
ScopeLibs können nicht debugged werden!
Das Panel enthält 5 Hauptbereiche, die im Folgenden genauer beschrieben werden:
-
Fenster für die Ctrl Libraries, Skripte und Breakpoints (links)
-
Fenster für die Variablen - Lokale Variablen, Script globale Variablen, globale Variablen (unten)
-
Hilfefenster für alte Kommandos unter "Kommandozeile" (rechts unten) und Call stack (rechts unten)
-
Infofenster (rechts oben)
sowie
Da die Fenster aus Docing-Modulen bestehen, können diese frei bewegt und beliebig platziert werden.
Wenn alle Module geschlossen wurden, können einzelne Module über rechte Maustaste aktiviert werden (siehe Abbildung unterhalb):
Wenn das User Interface (oder der CTRL-Manager), das debuggt werden soll, nicht läuft, wird im Hauptfenster eine Meldung angezeigt:
Nach einem Neustart eines Managers werden alle Ansichten aktualisiert.
Achten Sie darauf, dass um einen Manager zu debuggen, der Debugger eine Verbindung zum Data- und Event-Managern benötigt. D.h. starten Sie den Debugger nicht mit der Option -n, wenn der Debugger über die Console gestartet wird.
Scriptfenster
Im Scriptfenster können Scripts und CTRL-Libraries debuggt werden. Es können Breakpoints gesetzt werden und Scripts ausgeführt werden (siehe Abbildung unterhalb). Die Schaltflächen des Debuggers werden weiter unten beschrieben.
Schaltflächen
Zudem enthält das Panel folgende Schaltflächen:
Unterbricht das Script. Es kann auch die "Pause"-Schalfläche der Tastatur verwendet werden.
Führt eine Aktion aus bzw. setzt das Script fort (Hotkey: F5)
Step into. Springt in die Funktion die gerade ausgeführt wird bzw. wenn der Code, der gerade ausgeführt wird keine Funktion enthält, wird auf die nächste Zeile gesprungen (Hotkey: F8).
Springt auf die aktuelle Zeile (Hotkey: F10).
Löscht alle Breakpoints (Hotkey: Strg + F9). Im Scriptfenster setzt F9 einen Breakpoint.
Öffnet die Onlinehilfe.
Wird der Inhalt eines Scriptes nicht im Hauptfenster angezeigt, handelt es sich um ein verschlüsseltes Script.
Wird der CTRL-Debugger einfach abgebrochen, so bleiben die zuletzt bearbeiteten Manager in ihrem Debugging-Zustand, also beispielsweise gestoppt oder im Einzelschrittmodus. Wird ein solcher Manager anschließend neu gestartet, befindet er sich jedenfalls wieder im Normalbetrieb.
Durch Klick auf ein Script oder ein Panel im Baum (siehe Abbildung Scripte in der Baumansicht) können die Ereignisse der Scripte, der Panels sowie der Grafikobjekte geöffnet werden. Für Panelscripts wird der Modulname, der Objektname sowie der Eventname unterhalb des Panelnames angezeigt. Durch Klick auf ein Ereignis (siehe Abbildung Scripte in der Baumansicht) bzw. einen Librarynamen (siehe Abbildung CTRL-Libraries in der Baumansicht) wird der Code rechts im Scriptfenster angezeigt. Der Code kann nun debuggt werden. Verwenden Sie die Schaltflächen um die Scripts zu debuggen. Beachten Sie, dass ein Script nicht hier geändert werden kann. Um ein Script zu ändern, doppelklicken Sie auf ein Script rechts oben im CTRL-Debugger-Fenster (siehe Abbildung unterhalb) und das Script wird im Script Editor geöffnet. Editieren Sie das Script direkt in der Originaldatei. Das gleiche gilt für Panels, doppelklicken Sie auf einen Panelnamen, um das Panel im GEDI zu öffnen.
Beachten Sie, dass die Originaldateien durch Doppelklick nur geöffnet werden können, wenn der CTRL-Debugger über den grafischen Editor geöffnet wurde (siehe Beschreibung am Anfang dieses Kapitels).
Ctrl Libraries, Skripte, Breakpoints
Über die drei Registerkarten kann zwischen "Ctrl Libraries", "Skripte" und "Breakpoints" gewechselt werden. Das Eingabefeld ganz links oben enthält ein Suchfeld (siehe Abbildung unterhalb). Hier kann nach Scripts, CTRL Libs oder Breakpoints gesucht werden. Es können einzelne Buchstaben als Suchkriterium verwendet werden. Die Eingabe eines einzelnen Buchstabes sucht nach dem Buchstaben in Scripts, Ctrl Libs oder Breakpoints. Es werden alle Dateien in denen der angegebene Buchstabe vorkommt, angezeigt. Das *-Zeichen nach einem Buchstaben als Suchkriterium sucht nach Dateien, die diesen Buchstaben enthalten. Die Eingabe der Buchstabenkombination ca* sucht z.B. nach Dateien, die mit der Buchstabenkombination ca* anfangen. Das Suchkriterium *ca* sucht nach allen Dateien in denen die Buchstaben "ca" hintereinander vorkommen. Ein Fragezeichen kann für ein beliebiges Zeichen verwendet werden. D.h. dass die Suche nach "ca?" ein Ergebnis mit ca + einem beliebigen anderen Zeichen liefert. In eckige Klammern [] angegebene Zeichen ersetzen eines der in Klammern angegebene Zeichen. Beachten Sie zudem, dass die Suche nicht Case Sensitiv ist und dass wenn Sie keinen Joker verwenden, der Stern * vor und nach dem Suchwort hinzugefügt wird. Wenn Sie in eine der unteren Ebenen suchen, beachten Sie, dass ein Doppelpunkt :als Trennzeichen zwischen den Ebenen verwendet werden muss. Siehe Abbildung unterhalb.
Ctrl Libraries
Die Registerkarte Ctrl Libraries enthält alle Ctrl-Libraries, die für den verwendeten UI-Manager oder CTRL-Manager geladen (verwendet) werden.
Skripte
Unter Skripte werden die Skripte für Panels des verwendeten UIs gezeigt.
Der relative Pfad wird in der Baumansicht als Tooltip angezeigt.
Breakpoints
Breakpoints können auf der gleichnamigen Registerkarte gesetzt werden. Wenn ein Breakpoint gesetzt wird, wird die Ausführung eines Scripts an der Stelle des Breakpoints gestoppt. Beachten Sie, dass die Breakpoints erst durch das Aktualisieren im Baum angezeigt werden. Die Breakpoints werden nach Zeilennummern angelegt, d.h. z.B. Breakpoint "29" bedeutet ein Breakpoint auf der Zeile 29. Klick auf den Breakpoint springt auf die Zeile wo der Breakpoint gesetzt wurde. Wenn das Script im Baum (siehe Abbildung unterhalb) selektiert wird, wird die erste Zeile des Scriptes selektiert. Nach Breakpoints kann auch gesucht werden. Siehe die Beschreibung der Suchfunktion.
Lokale Variablen, Skript globale Variablen, Globale Variablen
Im unteren Bereich des Panels werden Lokale Variablen, Script globale Variablen, globale Variablen angezeigt. Diese können hier auch editiert werden. D.h. Sie können Werte für die Variablen setzen (siehe zweite Abbildung unterhalb). Beachten Sie, dass Konstanten nicht angezeigt werden.
Wenn Sie neue Werte für ein Script über z.B. PARA setzen, klicken Sie im Fenster "Lokale Variablen/Skript globale Variablen/Globale Variablen" auf aktualisieren , damit die Werte aktualisiert werden.
Kommandozeile
Rechts unten im Panel werden die Kommandos sowie die Variablen für den CTRL-Debugger angezeigt. Die Variablen bleiben aus Kompatibilitätsgründen erhalten. Es können die Befehle verwendet werden. Klicken Sie auf die I-Schaltfläche oder geben Sie h ein und es werden die möglichen Befehle angezeigt (siehe erste Abbildung unterhalb). Doppelklicken Sie auf ein Kommando und das Kommando wird übernommen und kann verwendet werden.
Call stack
Das Fenster Call stack gibt Informationen über das Script das gerade ausgeführt wird, aus:
-
Welche Funktion läuft gerade
-
Auf welcher Zeile wird das Script gerade ausgeführt
-
In welchem Panel läuft das Script
-
Das Objekt (wenn es sich um ein Panelscript handelt) für das der Code gesetzt wurde
-
Im welchem Modul läuft das Script
Im Folgenden wurde für die Funktion dpSet auf der Zeile 28 im "clicked"-Ereignis sowie auf der Zeile 31 im "trend"-Panel ein Breakpoint gesetzt. Das Panel wurde über QuickTest geöffnet. Im Call stack werden diese Informationen angezeigt, d.h. die Funktion, die gerade ausgeführt wird, das Modul in dem das Panel geöffnet wurde, das Objekt für welches das Script gesetzt wurde, sowie die Zeile wo das Script gerade ausgeführt wird.
Infofenster "Datei:"
Im Infofenster wird der Name des Scriptes oder des Panels angezeigt. Links neben dem Panelnamen wird der Objektname angezeigt. Siehe folgende Abbildung:
Um ein Script zu ändern, doppelklicken Sie auf ein Script rechts oben im Infofenster des CTRL-Debuggers und das Script wird im Script Editor geöffnet. Editieren Sie das Script direkt in der Originaldatei. Das gleiche gilt für Panels, doppelklicken Sie auf einen Panelnamen, um das Panel im GEDI zu öffnen (siehe Abbildung oberhalb).