Ü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
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] |
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 Beispiel: |
Benutzerdefinierte Typen | ||
Enumeration | Aufzählung | |
Structure | Struktur, Komposition aus Feldern |
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
- Es kann eine direkte Ableitung von elementaren Typen erfolgen.
- Beispiel:
TYPE RU_REAL : REAL ; END_TYPE
- Es können Untermengen (Subranges) von Typen verwendet werden.
- Beispiel:
TYPE ANALOG_DATA : INT (-4095..4095) ; END_TYPE
Program Organization Units nach IEC 61131-3
- Funktionen
- Funktionsblöcke
- Programme
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.
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 |