SPS-Programmierkonventionen
In der Welt der Programmiersprachen gibt es verschiedene Konventionen, die abhängig vom Tooling, Fokus und Ursprung der Programmiersprache sowie von der Branche, in der die Anwendung verwendet wird, Beachtung finden.
In Anlehnung an allgemein anerkannte Programmierrichtlinien (zum Beispiel die MISRA C++ 2008 – Guidelines[…], die Java Code Conventions, den C# Programming Guide oder PLCopen) finden Sie im Folgenden Programmierhinweise, die die Erstellung von optimalem und funktionstüchtigem SPS-Programmcode erleichtern.
Beachten Sie die SPS-Programmierkonventionen, um die folgenden Vorteile zu erreichen:
- einheitlicher Aufbau der SPS-Programme
- konsistente Benennung von Objekten, Variablen und Instanzen
- leichte Lesbarkeit und intuitive Verständlichkeit von Code und insbesondere von den Schnittstellen von Funktionsbausteinen, Methoden und Funktionen
- vereinfachte Entwicklung, Nutzung und Wartung der Programme
- erhöhte Codequalität durch die systematische und frühzeitige Vermeidung von Fehlerquellen
Neue Beckhoff TwinCAT 3 SPS Bibliotheken, Programmbeispiele und Applikationen richten sich nach diesen „TwinCAT 3 SPS-Programmierkonventionen“.
Ausnahmen:
- Tc2_MC2_xxx Bibliotheken entsprechen der PLCopen-Programmierkonvention.
- Tc2_xxx Bibliotheken entsprechen den ursprünglichen TwinCAT-2-Bibliotheken.
- Branchenspezifische Bibliotheken richten sich im Einzelfall nach dem Standard der Branche.
- Bausteine aus der IEC 61131-Norm, die Bestandteil der Bibliothek Tc2_Standard sind.
Klassifizierung
Die SPS-Programmierkonventionen sind in die folgenden Kapitel unterteilt:
Innerhalb jedes Kapitels gibt es Unterkapitel, welche wiederum eine Auflistung von Themenpunkten beinhalten.
Die einzelnen Themenpunkte sind klassifiziert als
- Vorschrift, gekennzeichnet mit [++], oder als
- Empfehlung, gekennzeichnet mit [+].
Als Vorschrift klassifizierte Themenpunkte müssen Sie zwingend umsetzen. Empfehlungen sollten möglichst immer umgesetzt werden, weil sie aus verschiedenen Gründen ratsam sind.
Statische Codeanalyse
Um das Risiko von Laufzeitfehlern zu reduzieren, sollte der Code mindestens mithilfe der kostenfreien Variante der statischen Codeanalyse (Static Analysis Light) überprüft werden. Diese ist ab TwinCAT 3.1 Build 4018 enthalten und enthält einen minimalen Umfang zur Codeüberprüfung. Mit Hilfe des vollen Funktionsumfangs von TE1200 PLC Static Analysis ist darüber hinaus eine detailliertere Überprüfung der Programmierkonventionen möglich (siehe folgenden Abschnitt).
Überprüfung der Programmierkonventionen mit Hilfe von TE1200 PLC Static Analysis
TE1200 PLC Static Analysis bietet die Möglichkeit zu vielseitigen Prüfungen des SPS-Programmcodes. Mit Hilfe dieser Funktionalitäten kann die Einhaltung vieler Vorschriften, Empfehlungen und Namenskonventionen der SPS-Programmierkonventionen überprüft werden.
Unterkapitel Programmierung
Soweit vorhanden wird zu jeder Vorschrift/Empfehlung die entsprechende Regel seitens Static Analysis genannt, mit Hilfe derer die Einhaltung der Vorschrift/Empfehlung überprüft werden kann.
Siehe auch:
- Unterkapitel Programmierung
- Funktionalität Regeln vom TE1200 PLC Static Analysis
Unterkapitel Namenskonventionen
Soweit vorhanden wird zu jeder Namenskonvention die ID des Static Analysis Konfigurationsfeldes genannt, in das der jeweilige empfohlene Namenspräfix eingetragen werden muss. Dadurch kann ein Großteil der empfohlenen Präfixe für POUs, DUTs, Variablen und Instanzen vom Static Analysis überprüft werden.
Siehe auch:
- Unterkapitel Namenskonventionen
- Funktionalität Namenskonventionen vom TE1200 PLC Static Analysis
Pragmas und Attribute
Beachten Sie auch die Möglichkeit, Static Analysis Regeln und Namenskonventionen für überprüfte Stellen, an denen eine bestimmte Regel/Namenskonvention nicht mehr gemeldet werden soll, lokal per Pragma oder Attribut zu deaktivieren (siehe auch: Kapitel Pragmas und Attribute in TE1200 PLC Static Analysis). Eine lokale Deaktivierung kommentieren Sie optimalerweise mit entsprechender Begründung.
Download Static Analysis Konfigurationsdatei
1) Vorschriften und Empfehlungen
Über den folgenden Link können Sie eine vorgefertigte Static Analysis Konfigurationsdatei herunterladen, in der die Vorschriften [++] und Empfehlungen [+] der Programmierkonventionen als Regeln aktiviert sind. Ein Verstoß gegen eine Vorschrift wird nach Ausführung des Static Analysis als Fehler ausgegeben, ein Verstoß gegen eine Empfehlung ist als Warnung klassifiziert.
2) Vorschriften, Empfehlungen und Namenskonventionen
Über den folgenden Link können Sie eine vorgefertigte Static Analysis Konfigurationsdatei herunterladen, in der die Vorschriften [++], Empfehlungen [+] und Namenskonventionen der Programmierkonventionen als Regeln aktiviert sind. Ein Verstoß gegen eine Vorschrift oder eine Namenskonvention wird nach Ausführung des Static Analysis als Fehler ausgegeben, ein Verstoß gegen eine Empfehlung ist als Warnung klassifiziert.
Weitere Regeln
Zusätzlich zu den Regeln, die innerhalb der folgenden Programmierkonventionen explizit erwähnt werden, bietet das TE1200 viele weitere nützliche Regeln, mit denen Flüchtigkeitsfehler oder allgemeine Programmierfehler frühzeitig aufgedeckt werden können. Dazu zählen u.a. die folgenden Regeln.
- SA0008: Unterbereichstypen prüfen
- SA0041: Möglicherweise schleifeninvarianter Code
- SA0044: Deklarationen mit Schnittstellenreferenz
- SA0056: Konstante außerhalb des gültigen Bereichs
- SA0059: Vergleichsoperationen, die immer TRUE oder FALSE liefern
- SA0060: Null als ungültiger Operand
- SA0062: Verwendung von TRUE und FALSE in Ausdrücken
- SA0140: Auskommentierte Anweisungen