Anweisung zum Unterdrücken von Warnungen

Syntax
(* Syntax für eine POE *)
{suppressWarning modelRuleNamespace.modelRuleId('Grund für die Unterdrückung'), scope:=element|file}
PROGRAM name1 | FUNCTION_BLOCK name2 | FUNCTION name3
...
END_PROGRAM | END_FUNCTION_BLOCK | END_FUNCTION
 
(* Syntax für einen Datentyp *)
TYPE
{suppressWarning modelRuleNamespace.modelRuleId('Grund für die Unterdrückung'), scope:=element|file}
name4 : ...;
END_TYPE
Bedeutung

eine Warnung für das nachfolgende Element unterdrücken, falls eine Regelverletzung für dieses Element beim Validieren der Anwendung festgestellt wird und diese Regelverletzung als Warnung zu melden wäre
Anweisungen zum Unterdrücken von Warnungen sind als Erweiterung zur →IEC-Norm verfügbar.

Die Anweisung {suppressWarning} kann vor diesen ST-Elementen eingefügt werden:

Syntax:

  • modelRuleNamespace.modelRuleId muss der voll qualifizierte Name einer vorhandenen Regel sein. Am besten verwenden Sie die Inhaltshilfe nach suppressWarning, um diesen voll qualifizierten Namen einzufügen. Die Liste der Inhaltshilfe enthält Name und ID pro verfügbarer Regel.

  • Nach der ID und innerhalb von () muss der Grund für die Unterdrückung angegeben werden. Dabei handelt es sich um ein STRING-Literal mit maximal 255 Zeichen. Details zum STRING-Literal: siehe unter →Zeichenfolge-Literal

  • Das optionale Schlüsselwort scope definiert den Geltungsbereich. Diese Werte sind möglich:

    • element – Die Warnung bei einer Regelverletzung wird nur für das betroffene Element (z.B. den Funktionsbaustein) unterdrückt. element ist der Standardwert und wird ohne angegebenes Schlüsselwort scope angewendet.
    • file – Die Warnungen bei einer Regelverletzung werden für alle Elemente in der Datei unterdrückt (z.B. alle Funktionsbausteine und Funktionen in der Datei).

Falls sich eine Regel auf eine Datei bezieht, hat der Wert element keine Auswirkung. Definieren Sie dann scope:=file für solche Regeln.
Beispiel: Bei der Regel ST-Objekte dürfen nur POE/Datentypen mit dem Namen des ST-Objekts enthalten wird das gesamte ST-Objekt geprüft (also bezieht sich die Regel auf eine Datei). Die Angabe scope:=element für diese Regel hat somit keine Auswirkung.

Informieren Sie sich unter "Regeln für das Validieren einer Anwendung", falls Sie Informationen zum Geltungsbereich der einzelnen Regeln benötigen.

Es ist nicht möglich, Fehler zu unterdrücken, die bei Regelverletzungen gemeldet werden. Sie können aber den ganzen Inhalt von ST-Objekten ignorieren.

Beispiel für Unterdrückung einer Warnung für einen Funktionsbaustein im ST-Objekt 'Test'
{suppressWarning com.logicals.mrc.rules.ModelRuleStObjWithResNameOnly('Der Funktionsbaustein muss einen anderen Namen als das ST-Objekt haben.'), scope:=file}
FUNCTION_BLOCK Control
...
END_FUNCTION_BLOCK

Konsequenzen der Anweisung {suppressWarning} für die betroffene POE oder den betroffenen Datentyp:

  1. Die Regelverletzung wird nicht mehr als Warnung im ST-Editor oder in der Sicht Fehler angeführt, sondern als Information.
  2. Beim Validieren der Anwendung wird die unterdrückte Warnung im dafür generierten Bericht angeführt.