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 GEDI > Tools > CTRL Debugger.

Abbildung 1. Tools-Menü im GEDI

Oder über das gleiche Symbol in der WinCC OA-Console. Ein Control (CTRL)- oder UI-Manager kann selektiert und debuggt werden.

VORSICHT: Wird das CTRL Debugger Panel über die Console gestartet, wird ein neues UI gestartet. D.h. man benötigt dafür eine freie UI-Lizenz. Beachten Sie zudem, dass, wenn Sie das CTRL Debugger Panel über die Console starten, Sie sich zuerst einloggen müssen.
Einschränkung: Der Debbuger kann nicht über die Konsole gestartet werden, wenn SSA aktiviert ist.
Anmerkung: Um einen Manager zu debuggen, muss dieser laufen.
Wichtig: Skripte eines Panels sind nur dann im Debugger verfügbar, wenn die Skripte einmal aufgerufen wurden, während der Debugger aktiv ist.
Abbildung 2. CTRL Debugger - Managerauswahl

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).

VORSICHT:

ScopeLibs können nicht debugged werden!

Das Panel enthält 5 Hauptbereiche, die im Folgenden genauer beschrieben werden:

sowie

Da die Fenster aus Docing-Modulen bestehen, können diese frei bewegt und beliebig platziert werden.

Abbildung 3. CTRL-Debugger - UI-Manager
Abbildung 4. CTRL-Debugger - CTRL-Manager
Anmerkung:

Wenn alle Module geschlossen wurden, können einzelne Module über rechte Maustaste aktiviert werden (siehe Abbildung unterhalb):

Abbildung 5. CTRL- Debugger, Aktiviere einzelne Module

Wenn das User Interface (oder der CTRL-Manager), das debuggt werden soll, nicht läuft, wird im Hauptfenster eine Meldung angezeigt:

Abbildung 6. Fehlermeldung, wenn der Manager, der debuggt werden soll, nicht läuft

Nach einem Neustart eines Managers werden alle Ansichten aktualisiert.

VORSICHT:

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.

Abbildung 7. CTRL-Debugger: Scriptfenster

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.

Anmerkung:

Wird der Inhalt eines Scriptes nicht im Hauptfenster angezeigt, handelt es sich um ein verschlüsseltes Script.

Anmerkung:

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.

Abbildung 8. CTRL Debugger - Doppelklick auf den Scriptnamen öffnet das Script im Script Editor
VORSICHT:

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.

Abbildung 9. Doppelpunkt als Trennzeichen zwischen den Ebenen
Abbildung 10. Doppelpunkt als Trennzeichen zwischen den Ebenen

Ctrl Libraries

Die Registerkarte Ctrl Libraries enthält alle Ctrl-Libraries, die für den verwendeten UI-Manager oder CTRL-Manager geladen (verwendet) werden.

Abbildung 11. CTRL-Libraries in der Baumansicht

Skripte

Unter Skripte werden die Skripte für Panels des verwendeten UIs gezeigt.

Abbildung 12. Scripte in der Baumansicht

Der relative Pfad wird in der Baumansicht als Tooltip angezeigt.

Abbildung 13. Mehrere Module gleichzeitig geöffnet (PARA-Modul)

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.

Abbildung 14. Breakpoints in der Baumansicht
Abbildung 15. Suche nach Breakpoint 5

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.

Anmerkung:

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.

Abbildung 16. Globale Variablen
Abbildung 17. Setze eine lokale Variable

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.

Abbildung 18. Kommandozeile, alte Kommandos
Abbildung 19. Kommandozeile, Variablen

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.

Abbildung 20. Breakpoints 28 und 31
Abbildung 21. Das Ereignis "Clicked" wird ausgeführt. Das Pfeil-Symbol zeigt die Zeile, die gerade ausgeführt wird, an
Abbildung 22. Call stack

Infofenster "Datei:"

Im Infofenster wird der Name des Scriptes oder des Panels angezeigt. Links neben dem Panelnamen wird der Objektname angezeigt. Siehe folgende Abbildung:

Abbildung 23. Infofenster

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).

VORSICHT: Bei einem User Interface werden Skripts erst angezeigt, nachdem sie zum ersten Mal ausgeführt werden. Erst nach dem Ausführen sind die Skripts dem CTRL-Interpreter bekannt und werden als "vorhanden" angezeigt. Skripts können auch wieder aus der Liste der debuggbaren Programmquellen verschwinden (z.B. wenn ein Panel geschlossen wird)!
Anmerkung: 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.
Anmerkung: Das Kapitel CTRL-Debugger Skript Debugging Beispiele bietet Tipps um ein Script zu debuggen.