Skip to main content

Regelverletzungen im ST-Code schnell beheben

Im Dialog Einstellungen Statische Analyse unter der Registerkarte Regeln können Sie für ST-Code Regeln aktivieren, deren Einhaltung auf Basis von Precompile-Informationen geprüft wird. Für das Auffinden solcher Regelverletzungen ist dabei kein expliziter Aufruf der statischen Codeanalyse nötig. Die Einhaltung der Regeln wird im aktiven ST-Editor während der Vorkompilierung und nach einer erfolgreichen Kompilierung geprüft. Wenn eine Regelverletzung auftritt, wird diese im ST-Editor sofort durch Unterringelung angezeigt. Zusätzlich erscheinen im Meldungsfenster in der Ansicht Vorkompilierung Fehlermeldungen oder Warnungen.

Eine Anleitung dazu: Einhaltung der definierten Namenskonventionen überprüfen

Zur schnellen Fehlerbehandlung gelangen Sie dann entweder im ST-Editor mit Klick auf den unterringelten Code und dann auf das Glühbirnensymbol _cds_icon_light_bulb.png, oder über im Meldungsfenster über die Schaltfläche _cds_icon_three_dots.png in der Fehlermeldungszeile. Jeweils erhalten Sie die passenden Befehle für eine Reaktion auf die Regelverletzung.

Zur schnellen Fehlerbehebung (Quickfix) werden je nach Fehler folgende Befehle angeboten:

  • Fehlermeldung/Warnung ignorieren

    Der Befehl bewirkt, dass automatisch Pragmas oder Attribute in den Code eingefügt werden, die eine Prüfung der dazugehörigen Regel für diese Codezeile ausschließen.

  • Fehlermeldung/Warnung global für <programming objekt name> ignorieren

    Der Befehl bewirkt, dass automatisch ein Attribut an den Beginn des Deklarationsteils des Programmierobjekts eingefügt wird. Dann wird eine Prüfung der dazugehörigen Regel für dieses Programmierobjekt ausgeschlossen.

  • Befehl mit einem Vorschlag, wie der ST-Code zu ändern ist, um die Regelverletzung zu vermeiden (Quickfix). Beispielsweise SA0168: Zuweisung ‚enum1 := 5‘ entfernen

  • Prüfung ausschalten

    Der Befehl bewirkt, dass die Überprüfung der dazugehörigen Regel in den Einstellungen deaktiviert wird.

Tipp

Sie können die Auswirkungen, die der Aufruf eines der Befehle bewirkt hat, rückgängig machen. Klicken Sie dafür zunächst in die Ansicht Geräte (oder alternativ in die Ansicht POUs). Dann wird der Befehl Undo aktiviert.

Regeln aktivieren

  1. Wählen Sie den Befehl Erstellen → Statische Analyse → Einstellungen. Wechseln Sie zur Registerkarte Regeln.

    Sie erhalten eine Auflistung aller möglichen Regelüberprüfungen. Sie sind in Baumstruktur in thematischen Kategorien angeordnet. Die „Regelnummer“ ist jeweils in runden Klammern hinzugefügt. Sie können die Regeln filtern, nach Optionen sortieren oder als Liste darstellen.

  2. Klicken Sie auf den Filter Strukturierte Ansicht auf das Symbol _san_icon_structured_view.png und wählen Sie die Option Strukturiert nach dem Zeitpunkt der Ausführung.

    Die Regeln, die auch während der Vorkompilierung überprüft werden können, erscheinen unter dem Knoten Ausgeführt während der Vorkompilierung und nach einer erfolgreichen Kompilierung. Das sind die Regeln, die in der Spalte Vorkompilierung mit einem Haken gekennzeichnet sind. In der Spalte links daneben können Sie nun die Regel für die Prüfung aktivieren.

    _san_img_quick_fix_rules.png
  3. Klicken Sie in der Zeile der Regel (168) auf das Kontrollkästchen, so dass der Zustand von „roter Haken“ nach „gelber Haken“ nach „kein Haken“ wechselt.

    Ein roter Haken bedeutet, dass die Regelverletzung als Fehlermeldung ausgegeben wird. Ein gelber Haken bedeutet, dass die Regelverletzung als Warnung ausgegeben wird. Kein Haken bedeutet, dass die Regel nicht überprüft wird.

    Die aktivierten Regeln werden nun überprüft und bei Verletzung im Code gekennzeichnet und im Meldungsfenster angezeigt.

Regelverletzungen im Meldungsfenster anzeigen

  1. Wählen Sie den Befehl Ansicht → Meldungen.

    Das Meldungsfenster öffnet sich.

  2. Wählen Sie im Meldungsfenster in der Auswahlliste die Kategorie Vorkompilierung.

    Nur in dieser Kategorie werden die Regelverletzungen angezeigt, die während der Vorkompilierung und nach einer erfolgreichen Kompilierung ermittelt wurden und die Sie dann mit Quickfix beheben können. Dazu erhalten Sie über die Schaltfläche _cds_icon_three_dots.png die passenden Befehle.

    _san_img_precompile_messages.png

Schnelle Fehlerbehebung durchführen

In den Einstellungen ist die Regel 168 aktiviert und im ST-Editor wird eine Regelverletzungen angezeigt.

Voraussetzung: Im ST-Code ist (mindestens) eine Zeile unterkringelt und im Meldungsfenster wird die dazugehörige SA-Nummer ausgegeben.

  1. Klicken Sie auf die unterkringelte Codezeile.

    Das Symbol _cds_icon_light_bulb.png erscheint.

  2. Klicken Sie auf das Glühbirnen-Symbol.

    Ein Fenster mit Menübefehlen für die Fehlerbehandlung erscheint.

    _san_img_quick_fix_commands_.png
  3. Sie wollen den Fehler beheben. Wählen Sie deshalb den Befehl Zuweisung ‚enum1 := GVL.CONST‘.

    Die Codezeile wird nun automatisch, so wie im Befehl angezeigt, geändert. Der Fehler ist behoben.

Der dritte Befehl enthält einen Vorschlag, wie der Fehler durch eine Codeänderung gefixt werden kann, abhängig von der Regelverletzung.

Die gleiche Fehlerbehandlung ist über einen Klick auf die Schaltfläche _cds_icon_three_dots.png in der Fehlermeldungszeile im Meldungsfenster möglich.

Überprüfung der Regel für eine Codezeile deaktivieren

In den Einstellungen ist die Regel (168) aktiviert und im ST-Editor wird eine Regelverletzungen angezeigt.

Voraussetzung: Im ST-Code ist (mindestens) eine Zeile unterkringelt und im Meldungsfenster wird die dazugehörige SA-Nummer ausgegeben.

  1. Klicken Sie auf in die unterkringelte Codezeile.

    Das Symbol _cds_icon_light_bulb.png erscheint.

  2. Klicken Sie auf das Glühbirnen-Symbol.

    Ein Fenster mit Menübefehlen für die Fehlerbehandlung erscheint.

    _san_img_quick_fix_commands_.png
  3. Sie wollen den Fehler nicht beheben. Deshalb wählen Sie den Befehl Fehlermeldung/Warnung ignorieren.

    Die Codezeile wird nun automatisch mit Pragmas versehen. Die Pragmas bewirken, dass die Zeile für die betroffene Regel nicht mehr geprüft wird. Es wird keine Fehlermeldung oder Warnung ausgegeben.

    _san_img_no_message.png

Den Befehl zum Deaktivieren der Regelprüfung für die betroffene Codezeile finden Sie auch über die Schaltfläche _cds_icon_three_dots.png in der Fehlermeldungszeile im Meldungsfenster.

Überprüfung der Regel für ein Programmierobjekt deaktivieren

In den Einstellungen ist die Regel 168 aktiviert und im ST-Editor wird eine Regelverletzungen angezeigt.

Voraussetzung: Im ST-Code ist (mindestens) eine Zeile unterkringelt und im Meldungsfenster wird die dazugehörige SA-Nummer ausgegeben.

  1. Klicken Sie auf in die unterkringelte Codezeile.

    Das Symbol _cds_icon_light_bulb.png erscheint.

  2. Klicken Sie auf die Glühbirne.

    Ein Fenster mit Menübefehlen für die Fehlerbehandlung erscheint.

    _san_img_quick_fix_commands_.png
  3. Sie wollen, dass das Programmierobjekt nicht auf die angegebene Regel überprüft wird. Deshalb wählen Sie den zweiten Befehl Fehlermeldung/Warnung global für PLC_PRG ignorieren.

    Die Deklaration des Objekts wird nun automatisch mit einem Attribut versehen. Das Attribut bewirkt, dass für das Objekt die betroffene Regel nicht mehr geprüft wird. Es wird keine Fehlermeldung oder Warnung ausgegeben.

    _san_img_no_message_in_pou.png

Den Befehl zum Ignorieren der Meldung finden Sie auch über die Schaltfläche _cds_icon_three_dots.png in der Fehlermeldungszeile im Meldungsfenster.

Überprüfung der Regel generell deaktivieren

In den Einstellungen ist die Regel 168 aktiviert und im ST-Editor wird eine Regelverletzungen angezeigt.

Voraussetzung: Im ST-Code ist (mindestens) eine Zeile unterringelt und im Meldungsfenster wird die dazugehörige SA-Nummer ausgegeben.

  1. Klicken Sie auf in die unterkringelte Codezeile.

    Das Symbol _cds_icon_light_bulb.png erscheint.

  2. Klicken Sie auf die Glühbirne.

    Ein Fenster mit Menübefehlen für die Fehlerbehandlung erscheint.

    _san_img_quick_fix_commands_.png
  3. Sie wollen, dass die angezeigte Regel nicht mehr überprüft wird. Deshalb wählen Sie den vierten Befehl Prüfung ausschalten.

    In den Einstellungen der Statischen Analyse wird die Regel deaktiviert.

  4. Wählen Sie den Befehl Erstellen → Statische Analyse → Einstellungen . Wechseln Sie zur Registerkarte Regeln.

    Die Regel 168 ist deaktiviert.

    _san_img_deactivated_rule.png

Den Befehl zum globalen Deaktivieren der Prüfung finden Sie auch über die Schaltfläche _cds_icon_three_dots.png in der Fehlermeldungszeile im Meldungsfenster.