Ü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:
- Statische Analyse:
- Funktion: Die Statische Analyse überprüft den Quellcode eines Projekts auf Abweichungen von bestimmten Kodierregeln, Namenskonventionen und unzulässigen Symbolen. Die Ausgabe des Ergebnisses erfolgt im Meldungsfenster.
- Konfiguration: Die gewünschten Kodierregeln, Namenskonventionen und unzulässigen Symbole konfigurieren Sie in den Projekteigenschaften des SPS-Projekts in den Registerkarten Regeln, Namenskonventionen und Unzulässige Symbole.
- Standard-Metriken:
- Funktion: Auf Ihren Quellcode werden Metriken angewendet, die die Eigenschaften der Software in Kennzahlen ausdrücken (z. B. Anzahl der Anweisungen oder Anteil an Kommentaren). Sie stellen ein Indiz zur Beurteilung der Softwarequalität dar. Die Ausgabe der Standard-Metriken erfolgt in der Ansicht Standard-Metriken.
- Konfiguration: Die gewünschten Metriken konfigurieren Sie in den Projekteigenschaften des SPS-Projekts in der Registerkarte Metriken.
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:
- Installation
- Konfiguration der Einstellungen, Regeln, Namenskonventionen, Metriken und unzulässigen Symbole
- Befehl 'Statische Analyse durchführen'
- Befehl 'Statische Analyse durchführen [Überprüfe alle Objekte]'
- Befehl 'Standard-Metriken anzeigen'
- Befehl 'Standard-Metriken anzeigen [Überprüfe alle Objekte]'
- Pragmas und Attribute
- Beispiele
- Automation Interface Unterstützung
![]() | 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. |
![]() | Punktuelle Ausschaltung von Prüfungen Mit Hilfe von Pragmas und Attributen können Sie Prüfungen für bestimmte Codeteile ausschalten. |
![]() | 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). |