Ü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. Das Tool ist in TwinCAT 3 SPS integriert und als Ergänzung des Compilers zu sehen.

Funktionsüberblick

Im Static Analysis sind mehr als 100 zum Teil parametrisierbare Kodierregeln implementiert, die Sie zu individuellen Regelwerken kombinieren können. In einigen Regeln werden die in "PLCopen Coding Guidelines" definierten Regelsätze berücksichtigt. 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.

Außerdem können Sie für jeden möglichen Datentyp eine Namenskonvention definieren, auf dessen Einhaltung dann geprüft wird. Darüber hinaus stehen Ihnen über 20 Metriken zur Verfügung, die den zugrundeliegenden Quellcode analysieren und charakterisieren. Bei regelmäßiger Berechnung können die Metriken Hinweise auf negative Trends und Abweichungen von Qualitätszielen geben. Die Kennzahlen 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.

Das Static Analysis 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 Pragma-Anweisungen 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).

Nutzen

Das Static Analysis hilft dabei, einen besser lesbaren Code zu schreiben sowie bereits während der Programmierung potenzielle Fehlerquellen aufzudecken. Dadurch steigt zum einen die Codequalität und zum anderen kann bei der Entwicklung von Applikationen und bei der Fehlersuche viel Zeit eingespart werden.

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-and-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).