Debugging

Überblick

Um mögliche Programmierfehler zu überprüfen, können Sie die Debugging-Funktion verwenden.

Zu Testzwecken kann eine Applikation auch im Simulationsmodus ohne Verbindung zu einem realen Zielgerät ausgeführt werden. Zwar ist es bei einer Simulation nicht notwendig, eine Verbindung mit Hardware herzustellen, doch gibt es Beschränkungen, die eventuell ein Online-Debugging erforderlich machen.

Haltepunkte zum Forcieren von Ausführungsstopps

Ein Haltepunkt, der in einem Anwendungsprogramm festgelegt wurde, stoppt die Programmausführung. Die Variablenwerte können dann am aktuellen Ausführungspunkt gesehen werden. Die aktuelle Position über die Aufrufliste präziser ermittelt werden.

Nur der Debug-Task, der den Haltepunkt erreicht hat, wird gestoppt. Die anderen Tasks werden weiterhin ausgeführt. Die möglichen Haltepunktepositionen sind vom entsprechenden Programmeditor abhängig. In jedem Fall befindet sich ein Haltepunkt am Ende einer POU.

HINWEIS: Die Ein-/Ausgänge, die von der Debug-Task gehandhabt werden, werden bei einem Stopp am Haltepunkt nicht aktualisiert. Dies gilt auch, wenn die Option E/A aktualisieren im Stop auf der Registerkarte SPS-Einstellungen [ALLGEMEIN] des Geräteeditors aktiviert ist.

Im Kapitel Haltepunkt-Befehle finden Sie Erläuterungen zu Befehlen, die Haltepunkte betreffen. Das Dialogfeld HaltepunkteSoMMenu/index.htm bietet einen Überblick über alle Haltepunkte und ermöglicht es Ihnen, Haltepunkte hinzuzufügen, zu entfernen und zu ändern.

Bedingte Haltepunkte

Der Stopp am Haltepunkt kann von den folgenden Bedingungen abhängen:

  • Zu diesem Zeitpunkt ist ein bestimmter Boolean-Ausdruck TRUE.

  • Welche Zyklusnummer läuft.

  • Welche Task ausgeführt wird.

  • Wann der Wert einer Variablen geändert wird (Datenhaltepunkt).

Das Deklarieren eines bestimmten Debug-Tasks kann verhindern, dass verschiedene Tasks von der Fehlerprüfung betroffen sind (siehe Haltepunkte und schrittweises Ausführen in Applikationen mit multiplen Tasks (Abschnitt))

Ausführungspunkte

Im Online-Modus können Sie im Dialogfeld HaltepunkteSoMMenu/index.htm einen Haltepunkt ändern und ihn zu einem Ausführungspunkt machen. Das Programm stoppt dann nicht an dieser Position, sondern die Codeverarbeitung wird initiiert.

Symbole

Symbol

Beschreibung

Haltepunkt aktiviert.

Haltepunkt deaktiviert.

Der Haltepunkt wurde auf eine andere Instanz des Funktionsbausteins gesetzt, der im Editor geöffnet ist.

Stopp bei Haltepunkt.

Bedingter Haltepunkt ist aktiviert.

Bedingter Haltepunkt ist deaktiviert.

Ausführungspunkt aktiviert.

Ausführungspunkt deaktiviert.

Bedingter Ausführungspunkt ist aktiviert.

Bedingter Ausführungspunkt ist deaktiviert.

Aktuelle Schrittposition.

Durch einen gelben Pfeil vor der entsprechenden Zeile und einem gelben Schatten hinter der betroffenen Operation angezeigt.

Datenhaltepunkt ist aktiviert.

Datenhaltepunkt ist deaktiviert.

Stopp bei Datenhaltepunkt.

Datenausführungspunkt ist aktiviert.

Datenausführungspunkt ist deaktiviert.

Stopp bei Datenausführungspunkt.

Bedingter Datenausführungspunkt ist aktiviert.

Bedingter Datenhaltepunkt ist aktiviert.

Schrittweises Ausführen des Programms

Die Einzelschrittausführung ermöglicht das kontrollierte Ausführen eines Anwendungsprogramm für Debugging-Zwecke. Bevor Sie Einzelschrittbefehle verwenden können, muss das Programm an einem vorgegebenen Programmschritt, beispielsweise beim Einstellen eines Haltepunkts, angehalten werden. Im Wesentlichen werden Anweisungen dabei schrittweise ausgeführt: per Einzelschritt, Prozedurschritt oder Ausführen bis Rücksprung. Eine Beschreibung der verschiedenen Einzelschrittbefehle finden Sie im Kapitel Haltepunktebezogene Befehle.

EcoStruxure Machine Expert bietet die folgenden Einzelschrittfunktionen:

  • Befehl EinzelschrittSoMMenu/index.htm: Ausführung eines einzelnen Schritts. Gilt auch für in einem Schritt aufgerufene POUs.

  • Befehl ProzedurschrittSoMMenu/index.htm: Ausführung eines einzelnen Schritts. POUs werden in einem Schritt vollständig ausgeführt.

  • Befehl Ausführen bis Rücksprung SoMMenu/index.htm: Wenn das Applikationsprogramm keine Aufrufe enthält,, wird ein Rücksprung zum Start der Applikation ausgeführt.

  • Befehl Ausführen bis CursorSoMMenu/index.htm: Ausführung des Programms bis zu einer definierbaren temporären Position.

  • Befehl Nächste Anweisung festlegenSoMMenu/index.htm: Definition der nächsten auszuführenden Anweisung.

  • Befehl Nächste Anweisung anzeigenSoMMenu/index.htm: Sprung zu der im nächsten Schritt auszuführenden Anweisung.

  • Ansicht AufruflisteSoMMenu/index.htm: Diese Ansicht zeigt die zurzeit erreichte Schrittposition zusammen mit dem gesamten Aufrufpfad an.

Die möglichen Stopp-Positionen bei der schrittweisen Ausführung eines Applikationsprogramms sind vom Editor-Typ abhängig. Die aktuelle Position ist mit einem gelben Pfeil gekennzeichnet.

Die Ansicht AufrufbaumSoMMenu/index.htm zeigt die Position des Funktionsbausteins in der Aufrufstruktur eines Applikationsprogramms an, selbst vor der Kompilierung der Applikation.

Beispiel für eine Einzelschrittoperation

Ab dem Haltepunkt können Sie jede einzelne Befehlszeile mit dem Einzelschrittbefehl ausführen.

Einzelschritt, Beispiel

Datenhaltepunkte

Datenhaltepunkte ermöglichen Ihnen den Stopp der Programmausführung bei der Änderung eines Variablenwerts.

Diese Funktion ist nicht für alle unterstützten Steuerungen verfügbar. Weitere Informationen finden Sie im Programmierhandbuch Ihrer Steuerung..

Wie viele Datenhaltepunkte Sie definieren können, ist von der verwendeten Steuerung abhängig. Wenn Sie versuchen, einen Datenhaltepunkt festzulegen, obwohl die maximal zulässige Anzahl bereits erreicht wurde, wird eine entsprechende Meldung ausgegeben.

Für Datenhaltepunkte stehen wie für herkömmliche Haltepunkte folgende Optionen zur Verfügung:

  • Verknüpfung des Stopps am Datenhaltepunkt mit einer zusätzlichen Bedingung (siehe Bedingte Haltepunkte.

  • Neudefinition eines Datenhaltepunkts als Datenausführungspunkt, an dem das Programm nicht stoppt, sondern spezifischen Code verarbeitet (siehe Ausführungspunkte).

Haltepunkte und Einzelschrittausführung in Applikationen mit mehreren Tasks

Es kann nicht für mehrere Tasks gleichzeitig ein Debugging durchgeführt werden. Während Sie mit einer Tasks mit Haltepunkten oder Einzelschrittausführung arbeiten, werden die Haltepunkte in anderen Tasks ignoriert.

Wenn ein Haltepunkt von mehreren Tasks erreicht werden kann, da die POU von mehreren Tasks verwendet wird, wird nur die zuerst ausgeführte Task angehalten. Berücksichtigen Sie dies bei der Einzelschrittausführung oder beim Fortsetzen des Debugging nach einem Halt. Wenn nur eine bestimmte Task (Debug-Task) betroffen sein soll, können Sie dies in den Eigenschaften der Haltepunktbedingung angeben (Dialogfeld Haltepunkte > Neuer Haltepunkt, Registerkarte Bedingung).

Ablaufsteuerung für das Anzeigen exakter Werte bei der Verarbeitung

Sie können die Ablaufsteuerung aktivieren, um Teile der Applikation, die bereits abgelaufen sind, nachzuverfolgen. Im Gegensatz zur Standardüberwachung, die nur den Variablenwert zwischen zwei Zyklen anzeigt, enthält die Ablaufsteuerung den Wert für jeden Verarbeitungsschritt zum Zeitpunkt seiner Wiedergabe. Siehe auch die Beschreibung der Durchflussregelung in der Online-Hilfe zu Menübefehlen.

Variablenwerte beim Ausführungsstopp

Bei jedem Ausführungsstopp zeigt EcoStruxure Machine Expert die Variablenwerte des aktuellen Zyklus (Überwachung) an. Um die aktuelle Position zu bestimmen, können Sie die Aufrufreihenfolge als Variable wiedergeben. Siehe auch die Beschreibung der Aufrufliste in der Online-Hilfe zu Menübefehlen.