Skip to main content

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.

Tabelle 7. IEC Standard-Datentypen

Datentyp

Bitlänge

Wertebereich

Beschreibung

BOOL

1

0,1

0 entspricht FALSE

1 entspricht TRUE

DINT

32

-2.147.483.648 … 2.147.483.647

INT

16

-32.768 … 32.767

TIME

32

0 … 2.147.483,647 s

Zeitdauer

WORD

16

0 … 65.535

(16#00 … 16#FFFF)



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 .

Tabelle 8. SAFE-Datentypen

Datentyp

Bitlänge

Wertebereich

Beschreibung

SAFEBOOL

1

0,1

0 entspricht FALSE

1 entspricht TRUE

SAFEDINT

32

-2.147.483.648 … 2.147.483.647

SAFEINT

16

-32.768 … 32.767

SAFETIME

32

0 … 2.147.483,647 s

SAFEWORD

16

0 … 65.535

(16#00 … 16#FFFF)



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 SafetyEllipsesButton.png geöffnet wird, ausgewählt werden. Bei bereits deklarierten Variablen wird die Eingabehilfe des Datentyps wie folgt geöffnet:

  1. Wählen Sie im Deklarationsfenster die Typ-Zelle der entsprechenden Variable aus.

  2. Klicken Sie in der Auswahlliste des Typs auf das Symbol .

Abbildung 47. Deklarationsfenster: Auswahlliste des Typs
Deklarationsfenster: Auswahlliste des Typs


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.