Konfiguration und Programmierung
CODESYS Safety-Programmierrichtlinien > Sprachenspezifische Programmierrichtlinien
Die folgenden Programmierrichtlinien müssen für Bausteine beachtet werden:
●
Funktionen und Funktionsbausteine dürfen die globalen Anwendungszustände nicht beein-
flussen. Dies kann durch Schreibzugriff auf globale Daten und das Aufrufen von System-
komponenten erreicht werden.
●
Ein expliziter Parametertransfer wird für den Aufruf von Programmen und Funktionsbaus-
teinen bevorzugt.
Schlecht:
Inst.Param1 := 7;
Inst.Param2 := 3;
Inst();
X := (Inst.Out1 AND A) OR B;
Gut:
Inst(Param1 := 7, Param2 := 3, Out => Result);
X := (Result AND A) OR B;
●
Sämtliche Eingangsparameter sollten für einen Aufruf zugewiesen sein.
4.4.3.8
Bibliotheken
Externe Bibliotheken, die vom Hersteller des Steuerungssystems zugelassen, d. h. in die Firm-
ware des Steuerungssystems implementiert wurden, können für Sicherheitsanwendungen ver-
wendet werden.
Von den Standard-Bibliotheken in CODESYS sind nur die folgenden zugelassen:
Bibliothek
Safety_Standard.lib (früher: Stan-
dard.lib)
Anwenderbibliotheken, die vom Hersteller des Steuerungssystems oder dem Endanwender
erstellt wurden, können verwendet werden. Beim Einfügen einer Bibliothek muss geprüft
werden, ob die ausgewählte Bibliothek tatsächlich eingefügt wurde. Die entsprechende Informa-
tion wird beim Einfügen der Bibliothek angezeigt.
4.4.3.9
Ausdrücke
4.4.3.9.1
Allgemeines
Die folgenden Regeln sind bei der Programmierung von Ausdrücken für Sicherheitsanwen-
dungen zu beachten:
●
Das Mischen von verschiedenen Datentypen in einem Ausdruck ist zu vermeiden. Wenn
das Mischen unbedingt erforderlich ist, sollte stattdessen die explizite Typenkonvertierung
verwendet werden.
●
Die Komplexität der Ausdrücke sollte durch die folgenden Maßnahmen auf ein Minimum
gebracht werden:
–
–
–
–
188
Beschreibung
IEC 61131-3-Standardfunktionen:
●
Timer
●
Zähler
●
Trigger
●
Flip-Flops
●
String-Verarbeitung
Begrenzung der Verschachtelung (z. B. nicht mehr als 3 Verschachtelungsebenen) pro
Ausdruck
Nicht mehr als 10 Operatoren und 10 Operanden pro Ausdruck
Keine Anwendung von Ausdrücken in Array-Indizes bei Array-Zugriff
Keine Anwendung von Ausdrücken in Parametern für Funktionen, Funktionsbausteinen
und Programmen
3ADR025091M0108, 12, de_DE
Version (Datum)
ab 2.3 (04.10.2005)
2021/05/26