Übersicht und Mapping von OPC-UA- und CODESYS Datentypen

Um exportierte IEC-Variablen aus CODESYS im OPC-UA-Server abzubilden, muss die Kompatibilität der unterschiedlichen, verfügbaren Datentypen gewährleistet sein. In den folgenden beiden Tabellen werden Standard OPC-UA-Datentypen und Standard CODESYS Datentypen aufgeführt. In einer dritten Tabelle wird das Mapping zwischen OPC-UA- und CODESYS Datentypen dargestellt.

Standard OPC-UA-Datentypen

Standard OPC-UA-Datentypen

Datentyp

Beschreibung

Anmerkung

Logik-Typen

Boolean

Wahrheitswert

TRUE, FALSE

Integrale Typen

SByte

Vorzeichenbehafteter 8 Bit Integer

[ -128, 127 ]

Byte

Vorzeichenloser 8 Bit Integer

[ 0, 255 ]

Int16

Vorzeichenbehafteter 16 Bit Integer

[ -2^15, 2^15 - 1 ]

UInt16

Vorzeichenloser 16 Bit Integer

[ 0, 2^16 - 1 ]

Int32

Vorzeichenbehafteter 32 Bit Integer

[ -2^31, 2^31 - 1 ]

UInt32

Vorzeichenloser 32 Bit Integer

[ 0, 2^32 - 1 ]

Int64

Vorzeichenbehafteter 64 Bit Integer

[ -2^63, 2^63 - 1 ]

UInt64

Vorzeichenloser 64 Bit Integer

[ 0, 2^64 - 1 ]

Gleitkomma-Typen

Float

IEEE 754-1985 single precision floating point value

Double

IEEE 754-1985 double precision data type

String-Typen

String

Unicode-String

ByteString

Eine Folge von Byte-Werten

Zeit- und Datumstypen

DateTime

Ein Datum im gregorianischen Kalender mit Uhrzeit

UtcTime

Zeitangabe in koordinierter Weltzeit (UTC)

Alle Zeitangaben zwischen OPC-UA-Servern und -Clients sind in UTC. Clients sollten Umwandlung in lokale Zeit anbieten.

Duration

Angabe einer Zeitdauer als Gleitkommazahl

Double-Wert, der ein Zeitintervall in Millisekunden angibt. Sub-Millisekunden-Angaben können durch Brüche dargestellt werden.

TimeString

Repräsentiert einen Zeitpunkt als String konform zu ISO 8601-2000

Verwendet 24-Stunden-Uhrzeit

Einfaches Format: [hh][mm][ss]
Erweitertes Format: [hh]:[mm]:[ss]

DurationString

Repräsentiert eine Zeitdauer als String konform zu ISO 8601-2000

Format: P[n]Y[n]M[n]DT[n]H[n]M[n]S
„P“ (period) leitet die Angabe ein.

Beispiel:
„P3Y6M4DT12H30M5S“ = 3 Jahre, 6 Monate, 4 Tage, 12 Stunden, 30 Minuten, 5 Sekunden

Benutzerdefinierte Typen

Enumeration

Aufzählung

Structure

Struktur, Komposition aus Feldern

Standard CODESYS Datentypen

Standard CODESYS Datentypen

Datentyp

Beschreibung

Anmerkung

Logik-Typen

BOOL

Wahrheitswert

TRUE, FALSE

BIT

1 Bit Logikwert

1, 0

BYTE

8 Bit Logikwert

[ 16#00, 16#FF ]

WORD

16 Bit Logikwert

[ 16#0000, 16#FFFF ]

DWORD

32 Bit Logikwert

[ 16#00000000, 16#FFFFFFFF ]

LWORD

64 Bit Logikwert

[ 16#0000000000000000, 16#FFFFFFFFFFFFFFFF ]

Integrale Typen

SINT

Vorzeichenbehafteter 8-Bit-Integer

[ -128, 127 ]

USINT

Vorzeichenloser 8-Bit-Integer

[ 0, 255 ]

INT

Vorzeichenbehafteter 16-Bit-Integer

[ -2^15, 2^15 - 1 ]

UINT

Vorzeichenloser 16-Bit- Integer

[ 0, 2^16 - 1 ]

DINT

Vorzeichenbehafteter 32-Bit-Integer

[ -2^31, 2^31 - 1 ]

UDINT

Vorzeichenloser 32-Bit-Integer

[ 0, 2^32 - 1 ]

LINT

Vorzeichenbehafteter 64-Bit-Integer

[ -2^63, 2^63 - 1 ]

ULINT

Vorzeichenloser 64-Bit-Integer

[ 0, 2^64 - 1 ]

Gleitkomma-Typen

REAL

Gleitkommazahl, 32 Bit

IEC 60559 bzw. IEEE 754-2008

LREAL

Gleitkommazahl, 64 Bit

IEC 60559 bzw. IEEE 754-2008

String-Typen

STRING

Single-Byte-Zeichenkette

WSTRING

Double-Byte-Zeichenkette

Zeit- und Datumstypen

DATE

Datum

Präfix: DATE# oder D#

Beispiele: DATE#1984-06-25 oder D#1984-06-25

TIME

Zeitdauer

Präfix: TIME# oder T#

Beispiele: TIME#14ms T#14.7m T#5d_14h_12m_18s_3.5ms

LTIME

Lange Zeitdauer

TIME_OF_DAY / TOD

Tageszeit

Präfix: TIME_OF_DAY# oder TOD#

Beispiel: TIME_OF_DAY#15:36:30.123 oder TOD#15:36:30.123

DATE_AND_TIME / DT

Datumsangabe mit Uhrzeit

Präfix: DATE_AND_TIME# oder DT#

Beispiel: DATE_AND_TIME#1996-05-06-15:36:30 oder DT#1996-05-06-15: 36:30

Besonderheiten

Program Organization Units nach IEC 61131-3

 

Mapping zwischen OPC-UA- und CODESYS Datentypen

Die folgende Tabelle zeigt das Mapping zwischen den Datentypen, die für CODESYS und OPC UA verwendet werden.

Mapping zwischen OPC-UA- und CODESYS Datentypen

CODESYS Datentyp

OPC-UA-Datentyp

BOOL

Boolean

BIT

Boolean

BYTE

Byte

WORD

UInt16

DWORD

UInt32

LWORD

UInt64

SINT

SByte

USINT

Byte

INT

Int16

UINT

UInt16

DINT

Int32

UDINT

UInt32

LINT

Int64

ULINT

UInt64

REAL

Float

LREAL

Double

STRING

String

WSTRING

String

DATE

DateTime

TIME

Int64

LTIME

Int64

TIME_OF_DAY / TOD

DateTime

DATE_AND_TIME / DT

DateTime

ENUM

Enumeration

STRUCT

Structure