Datentypen
In CODESYS Safety Extension wird durch die Datentypen zwischen nicht-sicherheitsbezogenen Daten (die IEC Standard Datentypen) und sicherheitsbezogenen Daten (mit Präfix SAFE
) unterschieden. Beim Mappen von Eingangs- und Ausgangskanälen haben solche von sicheren Feldgeräten immer einen Typ SAFExxx
und solchen von nicht-sicheren Feldgeräten immer einen nicht-SAFE
-Typ. Die Überprüfung der PLCopen Verknüpfungsregeln für SAFEBOOL
Daten und analoger Verknüpfungsregeln für die anderen SAFEXXX
-Datentypen ist Teil des Check gegen Fehlerbedingungen im Programmiersystem.
Datentyp | Bitlänge | Wertebereich | Beschreibung |
---|---|---|---|
|
|
|
|
|
|
| |
|
|
| |
|
|
| Zeitdauer |
|
|
( |
Tipp
Die Datentypen BYTE
, DWORD
, SAFEBYTE
und SAFEDWORD
können nur in den Logischen E/As auftreten und in Extended-Level Programmen als Kanalvariablen (Kategorie: globale Variablen, Deklaration als VAR_EXTERNAL
) verwendet werden .
Datentyp | Bitlänge | Wertebereich | Beschreibung |
---|---|---|---|
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
( |
Tipp
Der Datentyp REAL
ist in der Safety-Programmierung nicht zulässig. Wenn er er dennoch verwendet wird, führt dies zu einem Übersetzungsfehler.
Benutzerdefinierte Datentypen
Die Datentyp-Kategorie Benutzerdefinierte Typen enthält Funktionsbausteine der Sicherheitsapplikation und die Bibliotheken. Diese Kategorie kann in der Eingabehilfe, die im Dialog Variablendeklaration einfügen durch Aktivierung der Schaltfläche geöffnet wird, ausgewählt werden. Bei bereits deklarierten Variablen wird die Eingabehilfe des Datentyps wie folgt geöffnet:
Wählen Sie im Deklarationsfenster die Typ-Zelle der entsprechenden Variable aus.
Klicken Sie in der Auswahlliste des Typs auf das Symbol ….

Allgemeine Regeln für die Typisierung
INT-Polymorphie
Ein Wert vom Typ INT
oder SAFEINT
hat immer auch den Typ DINT
bzw. SAFEDINT
. Die Verknüpfung von INT
und DINT
führt zu einem DINT
-Wert (int
+ dint
hat den Typ DINT
).
SAFE-Polymorphie
Ein Wert vom Typ SAFEXXX
hat immer auch den Typ XXX
, d. h. ein Wert hoher Integrität kann immer auch als Wert niedriger Integrität verwendet werden. Das heißt, die in der PLCopen erwähnte Konvertierungsfunktion SAFEBOOL_TO_BOOL
ist in CODESYS Safety Extension implizit, und wird nicht explizit hingeschrieben.
SAFE-Konstanten
Konstanten sind immer Werte höchster Integrität (also SAFEXXX
). Auf Grund der SAFE
-Polymorphie können sie immer noch als normale Werte dienen. Man spart sich also zwei unterschiedliche Arten von Werten (safebool#1
neben bool#1
). bool#1
ist SAFEBOOL
(und BOOL
); analoges gilt für die anderen Literalkonstanten.
SAFE-Herabstufung
Die allgemeine Regel bei der Verknüpfung von Werten ist: Wenn und nur wenn alle Operanden einen SAFE
-Typ haben, dann hat das Ergebnis einen SAFE
-Typ
Ausnahme: SAFEBOOL
AND
BOOL hat den Wert SAFEBOOL
.