Anwendung in Perspektive "Debuggen" debuggen

So debuggen Sie die Anwendung für das Projekt:

  1. Öffnen Sie die →Perspektive Debuggen.
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Falls dabei Warnungen mit Enablement expression im Fehlerprotokoll angezeigt werden, ignorieren Sie diese. Siehe "Warnungen 'Enablement expression' beim Debuggen einer Anwendung" für Details.

    1. Perspektive für C-Debugging öffnen: Im Projekexplorer öffnen Sie das Kontextmenü für das Projekt, zeigen Sie auf Debug ausführen als und wählen Sie den folgenden Befehl (abhängig von der SPS):

      SPS/Zielsystem

      Befehl

      Integrierte SPS

      Instant C Debugging

      Alternative: Selektieren Sie das Projekt im Projektexplorer oder selektieren Sie das Projekt, die Konfiguration, die Ressource oder die Programminstanz in der Sicht Instanzen. Dann klicken Sie auf images/download/thumbnails/414779142/InstantDebug-version-1-modificationdate-1534423238805-api-v2.png in der Symbolleiste. Beim ersten Start der Debugging-Sitzung (pro Arbeitsbereich) erscheint ein Dialog. Wählen Sie darin Arbeitsbereicheinstellungen überschreiben und aus der Liste der Startprogramme GDB (DSF) Create Process Startprogramm, danach drücken Sie OK.

      Remote-Zielsysteme

      jenen Befehl mit dem Namen, der aufgrund der Schritte bei "Launch-Konfiguration für Remote-Zielsysteme erstellen" erstellt wurde

    2. Perspektive für ST-/FBS-Debugging öffnen: In der Sicht Instanzen öffnen Sie das Kontextmenü für eine Ressource und wählen Sie den Befehl Debugging starten. Als Rückmeldung zum Debugging-Status wird die Ressource in der Sicht Instanzen entsprechend gekennzeichnet (siehe "Perspektive für ST-/FBS-Debugging starten" für Details).

  2. Falls erforderlich, bestätigen Sie den Wechsel zur Perspektive Debuggen (drücken Sie Ja).
    Diese Perspektive erlaubt Ihnen Einblicke in die Ausführung Ihrer auf die SPS geladenen Anwendung (z.B. aufgrund der Sicht Variablen). Falls Sie Sichten der Perspektive nicht sehen, aber benötigen, setzen Sie die Perspektive auf ihr ursprüngliches Layout zurück oder öffnen Sie die Sichten wie unter "Sichten/Editoren öffnen" beschrieben.

  3. Abhängig davon, welchen Code Sie für die Debugging-Sitzung verwenden, müssen Sie einen der folgenden Schritte ausführen:

    1. Für C-Debugging: Im Menü Ausführen wählen Sie Wieder aufnehmen. Alternative: Klicken Sie auf images/download/thumbnails/409863911/Resume-version-1-modificationdate-1531310149454-api-v2.png in der Symbolleiste.
      Ergebnis: Die Anwendung wird bis zum gesetzten →Unterbrechungspunkt ausgeführt und dort angehalten.

    2. Für ST-/FBS-Debugging: Die Anwendung hat bereits beim gesetzten →Unterbrechungspunkt angehalten. In der Sicht Debuggen selektieren Sie das Element der Aufrufhierarchie, beim dem die Ausführung angehalten wurde.
      Beispiel: Bei dem Element handelt sich hier um: Counter() at program.iecst

      images/download/attachments/443056725/DebugSTSelectElement-version-2-modificationdate-1583418037284-api-v2.png
  4. In der Sicht Variablen kontrollieren Sie die aktuellen Werte der Variablen. Beispiel für Anzeige:

    images/download/attachments/443056731/DebugSTVariables-version-3-modificationdate-1584630327309-api-v2.png


    Bei Bedarf können Sie den Wert einer Variable ändern: Doppelklicken Sie auf den Wert, geben Sie den neuen Wert ein und drücken Sie die Eingabe-Taste.
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Für FBS-Objekte zeigt die Sicht zusätzlich die Ergebniswerte von →Funktionen an. Der Name ist ein interner Name, der automatisch von logi.CAD 3 generiert wird. Beispiele für solche Ergebniswerte: __6_ADD oder __13_SEL. Das obige Beispiel enthält keine Ergebniswerte, da die Abbildung für ein ST-Objekt erstellt wurde.
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Der Abschnitt Globale und externe Variable enthält nur die entsprechenden Variablen der aktuellen POE, damit der Abschnitt übersichtlich bleibt.
    images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Siehe "Beim Debuggen werden möglicherweise falsche Namen/Datentypen angezeigt" für bekannte Einschränkungen.

  5. Bei Bedarf setzen Sie neue Unterbrechungspunkte im Code oder deaktivieren/überspringen Sie Unterbrechungspunkte – wie unter "Unterbrechungspunkt im Code setzen" beschrieben.
    In der Sicht Unterbrechungspunkte sind übrigens alle gesetzten Unterbrechungspunkte sichtbar. Beispiel für die Anzeige:

    Beide Unterbrechungspunkte sind aktiviert:
    images/download/attachments/414779081/DebugSTBreakpoints-version-1-modificationdate-1534422047170-api-v2.png

    Ein Unterbrechungspunkte ist aktiviert, der andere ist deaktiviert:
    images/download/thumbnails/414779087/DebugSTBreakpoints2-version-1-modificationdate-1534422069559-api-v2.png

    Beide Unterbrechungspunkte werden übersprungen:
    images/download/thumbnails/414779093/DebugSTBreakpoints3-version-1-modificationdate-1534422093127-api-v2.png

    Falls Unterbrechungspunkte auch von anderen Projekten angezeigt werden, können Sie den Inhalt der Sicht Unterbrechungspunkte filtern, indem Sie auf images/download/thumbnails/414779130/BreakpointSelTarget-version-1-modificationdate-1534423157873-api-v2.png (Vom ausgewählten Ziel unterstützte Unterbrechungspunkte anzeigen) klicken.

  6. Um die angehaltene Debugging-Sitzung wiederaufzunehmen, wählen Sie im Menü Ausführen wieder Wieder aufnehmen und kontrollieren Sie in der Sicht Variablen wieder die aktuellen Werte der Variablen.

Gut zu wissen

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/lightbulb.svg Falls Sie eine eigene Anwendung mit zusätzlichen Deklarationen von →POE debuggen wollen, könnten die folgenden Befehle für die Schrittausführung relevant für Sie sein (ebenfalls im Menü Ausführen und in der Symbolleiste verfügbar):

Befehl


Ergebnis

Schritt hinein

images/download/thumbnails/414779119/StepInto-version-1-modificationdate-1534423093810-api-v2.png

Die Ausführung wechselt in den nächsten C-Funktionsaufruf oder Aufruf der POE hinein, der in der geraden ausgeführten Codezeile vorhanden ist.

Schritt über

images/download/thumbnails/414779114/StepOver-version-1-modificationdate-1534423045102-api-v2.png

Die Ausführung geht über den nächsten C-Funktionsaufruf oder Aufruf der POE hinweg (ohne hinein zu wechseln), der in der geraden ausgeführten Codezeile vorhanden ist.
Falls die Ausführung bei der letzten Codezeile angekommen ist, wird die Ausführung bis zum ersten Unterbrechungspunkt fortgesetzt.

Schritt zurück

images/download/thumbnails/414779109/StepReturn-version-1-modificationdate-1534423012145-api-v2.png

Die Ausführung kehrt aus der C-Funktion oder POE zurück, in die hinein gewechselt wurde – und zwar zum ersten Unterbrechungspunkt.

F alls ein Unterbrechungspunkt während der Schrittausführung entdeckt wird, wird die Ausführung bei diesem Unterbrechungspunkt angehalten und die Schrittausführung beendet. In diesem Fall wird images/download/thumbnails/414779125/BreakpointVisualize-version-1-modificationdate-1534423138107-api-v2.png am Rand des Codes oder images/download/thumbnails/414779104/BreakpointFBDVisualize-version-1-modificationdate-1534422932126-api-v2.png für das FBS-Element angezeigt.

Die Ausführung wird beim Debuggen möglichweise nicht bei jedem Unterbrechungspunkt angehalten, der für ein FBS-Element gesetzt wurde. Dieses Verhalten wird durch die Optimierung des C-Codes verursacht, der erst beim Speicherns der FBS-Logik erzeugt wird.

Beispiele für solche Unterbrechungspunkte, bei denen die Ausführung nicht angehalten wird:

  • Unterbrechungspunkt für ein Wertfeld, das dem Aufruf einer String-Funktion nachfolgt (z.B. dem Aufruf eines FIND-Bausteins)

  • Unterbrechungspunkt für ein Wertfeld, das dem Aufruf eines Systembausteins nachfolgt, bei dem Arrays mit 2 Dimensionen berechnet werden (z.B. dem Aufruf des SUB_2D_ARRAY-Bausteins)

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Falls Sie die entsprechenden Tastenkombinationen für die Schrittausführung verwenden, halten Sie die Tasten nicht kontinuierlich oder für längere Zeit gedrückt. Falls doch, kann die Abarbeitung der Unterbrechungspunkte nicht korrekt visualisiert werden.