Überblick

Mit der Integration der statischen Codeanalyse steht in TwinCAT 3.1 ein weiteres Programmierwerkzeug zur Verfügung, das den Entwicklungsprozess von SPS-Software unterstützt.

Die "Statische Codeanalyse" ist als Ergänzung des Compilers zu sehen und hilft dabei, einen besser lesbaren Code zu schreiben sowie bereits während der Programmierung potenzielle Fehlerquellen aufzudecken. Beispielsweise kann gemeldet werden, wenn eine Zeigervariable vor einer Dereferenzierung nicht auf ungleich 0 überprüft worden ist. Dadurch wird der Anwender auf möglicherweise unbeabsichtigte und fehlerhafte Implementierungen hingewiesen, sodass diese Programmstellen frühzeitig optimiert werden können.

Das Static Analysis ist als Programmierwerkzeug in TwinCAT 3 SPS integriert und überprüft den Quellcode eines SPS-Projekts auf Abweichungen von bestimmten Kodierregeln, Namenskonventionen oder unerlaubten Symbolen. Dabei wird der in den PLCopen Coding Guidelines definierte Regelsatz zugrunde gelegt, welcher um zusätzliche Prüfmöglichkeiten erweitert wird.

Die Statische Analyse kann manuell angestoßen oder automatisch mit der Codeerzeugung durchgeführt werden. Das Ergebnis der Analyse, also Meldungen bezüglich Abweichungen der Vorgaben und Regeln, gibt TwinCAT im Meldungsfenster aus. In den SPS-Projekteigenschaften definieren Sie, was im Einzelnen geprüft werden soll. Beim Konfigurieren der Regeln können Sie außerdem jeweils definieren, ob eine Regelverletzung als Fehler oder Warnung ausgegeben werden soll. Mit Hilfe von Pragmaanweisungen können Sie einzelne Teile des Codes von der Prüfung ausnehmen. Für Fehler, die vom Static Analysis auf Basis von Precompile-Informationen gemeldet werden, gibt es im ST-Editor eine Unterstützung zur unmittelbaren Fehlerbehebung (QuickFix/Precompile).

Zusätzlich dazu können Sie zur Beurteilung der Codequalität ausgewählte Metriken in einer separaten Ansicht anzeigen lassen, wobei das Static Analysis diese Metriken aus Ihrem Programmcode ermittelt. Dabei werden Kennzahlen berechnet, die die verschiedenen Programmteile charakterisieren bzw. die Eigenschaften der Software ausdrücken. Sie stellen somit ein Indiz zur Beurteilung der Softwarequalität dar. In der tabellarischen Ausgabe sind beispielsweise Metriken für die Anzahl an Anweisungen oder den Anteil an Kommentaren zu finden.

Nutzen

Die "Statische Codeanalyse" hilft dabei, einen besser lesbaren Code zu schreiben und bereits während der Programmierung potenzielle Fehlerquellen aufzudecken.

Die Missachtung einer Kodierregel deutet im Allgemeinen auf eine Implementierungsschwachstelle hin, deren Korrektur eine frühzeitige Fehlerbehebung bzw. -vermeidung ermöglicht. Die automatische Kontrolle der anwenderspezifischen Namenskonventionen sorgt darüber hinaus dafür, dass die Steuerungsprogramme hinsichtlich der Typ- und Variablennamen standardisiert entwickelt werden können. Dadurch erhalten unterschiedliche SPS-Projekte, die auf Basis der gleichen Namenskonventionen implementiert wurden, ein einheitliches Look'n'Feel, was die Lesbarkeit der Programme stark verbessert. Ergänzend dazu stellen die Metriken ein Indiz zur Beurteilung der Softwarequalität dar.

Funktionalitäten

Nachfolgend sind die Funktionalitäten von "TwinCAT 3 PLC Static Analysis" als Übersicht dargestellt:

Alternativ besteht die Möglichkeit, eine lizenzfreie Variante vom Static Analysis zu verwenden, welche einen stark reduzierten Funktionsumfang zur Verfügung stellt. Einen detaillierten Vergleich der Funktionen der lizenzfreien und der lizenzpflichtigen Variante vom Static Analysis finden Sie im Kapitel Installation.

Weiterführende Informationen zur Installation, Konfiguration und Ausführung des "Static Analysis" finden Sie auf den folgenden Seiten:

Überblick 1:

Bibliotheken

TwinCAT analysiert nur den Applikationscode des aktuellen SPS-Projekts, die referenzierten Bibliotheken bleiben unbeachtet!

Wenn Sie das Bibliotheksprojekt hingegen geöffnet haben, können Sie die enthaltenen Elemente mit Hilfe des Befehls Befehl 'Statische Analyse durchführen [Überprüfe alle Objekte]' überprüfen.

Überblick 2:

Punktuelle Ausschaltung von Prüfungen

Mit Hilfe von Pragmas und Attributen können Sie Prüfungen für bestimmte Codeteile ausschalten.

Überblick 3:

Static Analysis übers Automation Interface

Bitte beachten Sie die Möglichkeit, das Static Analysis teilweise über das Automation Interface bedienen zu können (siehe Automation Interface Unterstützung).