Codeanalyse (Static Analysis)

Mit der „Statischen Codeanalyse“ prüft TwinCAT 3 PLC vor dem Laden auf das Zielsystem, ob der Quellcode eines Projekts festgelegten Kodierrichtlinien folgt.

Die lizenzfreie Variante der statischen Codeanalyse ist das „Static Analysis Light“. Die dort konfigurierten Prüfungen werden automatisch bei jeder Codeerzeugung durchgeführt. Weiterführende Informationen Sie im Abschnitt „Static Analysis Light“.

Die lizenzpflichtige Variante der statischen Codeanalyse ist das „Static Analysis“, das verglichen mit der Light-Version über einen stark erweiterten Funktions- und Konfigurationsumfang verfügt. Die statische Codeanalyse kann manuell angestoßen oder automatisch mit der Codeerzeugung durchgeführt werden. Weiterführende Informationen zu dieser Erweiterung finden Sie in der Dokumentation „TE1200 | TC3 PLC Static Analysis“.

Static Analysis Light vs. Static Analysis Full

Nachfolgend finden Sie eine Übersicht über den unterschiedlichen Funktionsumfang der lizenzfreien und der lizenzpflichtigen Variante vom Static Analysis.

Funktionsaspekt

Static Analysis Light
(ohne TE1200-Lizenz)

Static Analysis Full
(mit TE1200-Lizenz)

Lizenz erforderlich

Nein, kostenfrei nutzbar

Ja, TE1200-Lizenz erforderlich

(Regel-) Konfiguration speichern/exportieren und laden/importieren

Nicht möglich, gekoppelt an SPS-Projekteigenschaften

Möglich

(mit Hilfe der Schaltflächen Laden/Speichern in den Einstellungen)

Kopplung der Ausführung an den Übersetzungsprozess

Ja, nicht konfigurierbar

Konfigurierbar

(mit Hilfe der Option Statische Analyse automatisch durchführen in den Einstellungen;

Manuelle Ausführung mit Hilfe des Befehls Befehl 'Statische Analyse durchführen')

Überprüfung von nicht genutzten Objekten (z.B. innerhalb eines Bibliotheksprojekts)

Nicht möglich

Möglich

(mit Hilfe des Befehls Befehl 'Statische Analyse durchführen [Überprüfe alle Objekte]')

Maximale Anzahl an berichteten Fehlern

500 (nicht konfigurierbar)

(Weiterführende Informationen zu der Bedeutung von 500 als maximale Fehleranzahl finden Sie in den Einstellungen)

Konfigurierbar

(mit Hilfe der Einstellung Maximale Anzahl an Fehlern in den Einstellungen)

Maximale Anzahl an berichteten Warnungen

Ausgabe von Warnungen nicht möglich (siehe folgende Zeile)

Konfigurierbar

(mit Hilfe der Einstellung Maximale Anzahl an Warnungen in den Einstellungen)

Regeln: Aktivierungsmöglichkeiten

  • Aktiv und Ausgabe als Fehler
  • Inaktiv
  • Aktiv und Ausgabe als Fehler
  • Aktiv und Ausgabe als Warnung
  • Inaktiv

Regeln: Umfang

7 Kodierregeln

  • SA0033: Nicht verwendete Variablen
  • SA0028: Überlappende Speicherbereiche
  • SA0006: Schreibzugriff auf mehrere Tasks
  • SA0004: Mehrfacher Schreibzugriff auf Ausgang
  • SA0027: Mehrfachverwendung des Namens
  • SA0167: Temporäre Funktionsbausteininstanzen
  • SA0175: Verdächtige Operation auf String

Mehr als 100 Kodierregeln

Regeln: Precompile-Unterschlängelung, QuickFix

Nicht verfügbar

Verfügbar

Namenskonventionen

Nicht verfügbar

Verfügbar

Metriken

Nicht verfügbar

Verfügbar

Unzulässige Symbole

Nicht verfügbar

Verfügbar

Pragmas und Attribute zur temporären Deaktivierung von Regeln

Ja, im Light-Umfang verfügbar:

  • Pragma {analysis ...}
  • Attribut {attribute 'no-analysis'}
  • Attribut {attribute 'analysis' := '...'}

Ja, im Full-Umfang verfügbar:

  • Pragma {analysis ...}
  • Attribut {attribute 'no-analysis'}
  • Attribut {attribute 'analysis' := '...'}
  • Attribut {attribute 'naming' := '...'}
  • Attribut {attribute 'nameprefix' := '...'}
  • Attribut {attribute 'analysis:report-multiple-instance-calls'}