Annex B Data Type Mappings (Normative)

B.1 GSDML data types mapping to OPC UA data types

The data types in the GSDML file are defined in [GSDML] table 18. Table 58 defines the mapping of GSDML data types to OPC UA data types.

Table 58 – GSDML data type to OPC UA data type mapping
DataType attribute value of Ref elementLength in bytesOPC UA data typeComment
“Bit”10:Boolean
“BitArea”Specified by “BitLength” attribute0:ByteString
“Integer8”10:SByte
“Integer16”20:Int16
“Integer32”40:Int32
“Integer64”80:Int64
“Unsigned8”10:Byte
“Unsigned16”20:UInt16
“Unsigned32”40:UInt32
“Unsigned64”80:UInt64
“Date”70:DateTime=BinaryDate
“VisibleString”Specified by “Length” attribute0:String
“OctetString”Specified by “Length” attribute0:ByteString
“Float32”40:Float
“Float64”80:Double
“Unsigned8+Unsigned8”20:ByteValue without status byte. Status returned with StatusCode.
“Float32+Unsigned8”50:Float
“Boolean”10:Boolean
“UnicodeString8”Specified by “Length” attribute0:NormalizedStringAccording to PNO-2.712, Application Layer services, the UnicodeString8 may contain characters from ISO/IEC 10646.
“61131_STRING”Specified by “Length” attribute0:ByteString
“61131_WSTRING”Specified by “Length” attribute0:ByteString
“TimeStamp”12GsdGenIoTimeStampDataType
“TimeStampDifference”12GsdGenIoTimeStampDataType
“TmeStampDifferenceShort”80:UInt64
“OctetString2+Unsigned8”3

0:ByteString

Two bytes in hexadecimal notation, plus status in hexadecimal notation. Status returned with StatusCode.
“Unsigned16_S”20:UInt16Decimal integer in range of 0 to 16383, plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.
Status returned with StatusCode.
“Integer16_S”20:Int16Decimal integer in range of -8192 to 8191, plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.
Status returned with StatusCode.
“Unsigned8_S”10:ByteDecimal integer in range of 0 to 63, plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.
Status returned with StatusCode.
“OctetString_S”Specified by “Length” attribute0:ByteStringList of values consisting of byte in hexadecimal notation plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.
Status returned with StatusCode.
“N2”20:Int16Decimal integer in range of -32768 to 32767. Interpreted as: Value / 16384 %.
“N4”40:Int32Decimal integer in range of -2147483648 to 2147483647.
Interpreted as: Value / 1073741824 %.
“V2”20:Boolean[16]Bit string consisting of 16 single bits.
“L2”20:Boolean[16]Bit string consisting of 4 nibbles (range of 0 to 15). A nibble is a four-bit aggregation, or half a byte.
“R2”20:UInt16Decimal integer in range of 0 to 65535.
Interpreted as: 16384 × (Ta / Value).*)
“T2”20:UInt16Decimal integer in range of 0 to 65535.
Interpreted as: Value × Ta. *)
“T4”40:UInt32Decimal integer in range of 0 to 4294967295.
Interpreted as: Value × Ta. *)
“D2”20:UInt16Decimal integer in range of 0 to 65535.
Interpreted as: Value × ( Ta / 16384). *)
“E2”20:Int16Fixed-point number. Range:
-256+2-7 to 256-2-7
Resolution: 2-7 (0.0078125).
“C4”40:Int32Fixed-point number. Range:
-214748.3648 to 214748.3647.
Resolution: 0.0001.
“X2”20:Int16Decimal integer in range of -32768 to 32767.
Interpreted as: Value / 2X.
“X4”40:Int32Decimal integer in range of -2147483648 to 2147483647.
Interpreted as: Value / 2X.
“Unipolar2.16”20:UInt32Fixed-point number which expresses a value in percent. Range: 0% to (400-2-14) %. Resolution: 2-14 (0.0061) %.

*): Constant sampling time Ta.

B.2 BMP data type mapping to OPC UA data types.

Table 59 shows references of standard data types and profile specific data types used by PROFIdrive (see [PDP], 5.2 and 5.3). The numeric identifier is the value of the first byte of the BMP parameter description “Identifier (ID)”.

If a conversion factor and an offset are to be applied for the display value (see [PDP], 6.2.1.3, Standardisation factor and Variable attribute), the OPC UA DataType shall always be 0:Float or 0:Double.

Table 59 – BMP data type to OPC UA data type mapping
BMP data typeData type numeric identifierOPC UA DataTypeReference to definition.
Boolean10:BooleanBoolean (see PN PROTOCOL)
Integer820:SByteInteger8 (see PN PROTOCOL)
Integer1630:Int16Integer16 (see PN PROTOCOL)
Integer3240:Int32Integer32 (see PN PROTOCOL)
Integer64550:Int64Integer64 (see PN PROTOCOL)
Unsigned850:ByteUnsigned8 (see PN PROTOCOL)
Unsigned1660:UInt16Unsigned16 (see PN PROTOCOL)
Unsigned3270:UInt32Unsigned32 (see PN PROTOCOL)
Unsigned64560:UInt64Unsigned64 (see PN PROTOCOL)
FloatingPoint80:FloatFloat32 (see PN PROTOCOL)
FloatingPoint64150:DoubleFloat64 (see PN PROTOCOL)
VisibleString90:StringVisibleString (see PN PROTOCOL)
OctetString100:ByteStringOctetString (see PN PROTOCOL)
UNICODEString390:NormalizedStringUNICODEString (see PN PROTOCOL)
TimeOfDay (with date indication)12GsdGenIoTimeDataTypeTimeOfDay with date indication (see PN PROTOCOL)
TimeDifference (do not use)13-TimeDifference (see PN PROTOCOL)
Date500:DateTimeBinary Date (see PN PROTOCOL)
TimeOfDay without date indication520:UInt32TimeOfDay without date indication (see PN PROTOCOL)
TimeDifference with date indication53GsdGenIoTimeDataTypeTimeDifference with date indication (see PN PROTOCOL)
TimeDifference without date indication540:UInt32Time Difference without date indication (see PN PROTOCOL)
N2 Normalized value (16 bit)1130:Int16[PDP] sec. 5.3.2 Table 3 and Table 4
N4 Normalized value (32 bit)1140:Int32[PDP] sec. 5.3.2 Table 3 and Table 4
V2 Bit sequence1150:Boolean[16][PDP] sec. 5.3.6 and Table 10
L2 Nibble1160:Boolean[16][PDP] sec. 5.3.7 and Table 11
R2 Reciprocal time constant1170:UInt16[PDP] sec. 5.3.10 and Table 14
T2 Time constant (16 bit)1180:UInt16[PDP] sec. 5.3.8 and Table 12
T4 Time constant (32 bit)1190:UInt32[PDP] sec. 5.3.8 and Table 12
D2 Time constant1200:UInt16[PDP] sec. 5.3.9 and Table 13
E2 Fixed point value (16 bit)1210:Int16[PDP] sec. 5.3.4, Table 7 and Table 8
C4 Fixed point value (32 bit)1220:Int32[PDP] sec. 5.3.5 and Table 9
X2 Normalized value, variable (16 bit)1230:Int16[PDP] sec. 5.3.3, Table 5 and Table 6
X4 Normalized value, variable (32 bit)1240:Int32[PDP] sec. 5.3.3, Table 5 and Table 6