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 element

Length in bytes

OPC UA data type

Comment

“Bit”

1

0:Boolean

“BitArea”

Specified by “BitLength” attribute

0:ByteString

“Integer8”

1

0:SByte

“Integer16”

2

0:Int16

“Integer32”

4

0:Int32

“Integer64”

8

0:Int64

“Unsigned8”

1

0:Byte

“Unsigned16”

2

0:UInt16

“Unsigned32”

4

0:UInt32

“Unsigned64”

8

0:UInt64

“Date”

7

0:DateTime

=BinaryDate

“VisibleString”

Specified by “Length” attribute

0:String

“OctetString”

Specified by “Length” attribute

0:ByteString

“Float32”

4

0:Float

“Float64”

8

0:Double

“Unsigned8+Unsigned8”

2

0:Byte

Value without status byte. Status returned with StatusCode.

“Float32+Unsigned8”

5

0:Float

“Boolean”

1

0:Boolean

“UnicodeString8”

Specified by “Length” attribute

0:NormalizedString

According to PNO-2.712, Application Layer services, the UnicodeString8 may contain characters from ISO/IEC 10646.

“61131_STRING”

Specified by “Length” attribute

0:ByteString

“61131_WSTRING”

Specified by “Length” attribute

0:ByteString

“TimeStamp”

12

GsdGenIoTimeStampDataType

“TimeStampDifference”

12

GsdGenIoTimeStampDataType

“TmeStampDifferenceShort”

8

0:UInt64

“OctetString2+Unsigned8”

3

0:ByteString

Two bytes in hexadecimal notation, plus status in hexadecimal notation. Status returned with StatusCode.

“Unsigned16_S”

2

0:UInt16

Decimal integer in range of 0 to 16383, plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.Status returned with StatusCode.

“Integer16_S”

2

0:Int16

Decimal integer in range of -8192 to 8191, plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.Status returned with StatusCode.

“Unsigned8_S”

1

0:Byte

Decimal 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” attribute

0:ByteString

List of values consisting of byte in hexadecimal notation plus status: ‘B’ = bad, ‘S’ = simulation, ‘U’ = uncertain, ‘G’ = good.Status returned with StatusCode.

“N2”

2

0:Int16

Decimal integer in range of -32768 to 32767. Interpreted as: Value / 16384 %.

“N4”

4

0:Int32

Decimal integer in range of -2147483648 to 2147483647.Interpreted as: Value / 1073741824 %.

“V2”

2

0:Boolean[16]

Bit string consisting of 16 single bits.

“L2”

2

0: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”

2

0:UInt16

Decimal integer in range of 0 to 65535.Interpreted as: 16384 × (Ta / Value).*)

“T2”

2

0:UInt16

Decimal integer in range of 0 to 65535.Interpreted as: Value × Ta. *)

“T4”

4

0:UInt32

Decimal integer in range of 0 to 4294967295.Interpreted as: Value × Ta. *)

“D2”

2

0:UInt16

Decimal integer in range of 0 to 65535.Interpreted as: Value × ( Ta / 16384). *)

“E2”

2

0:Int16

Fixed-point number. Range: -256+2-7 to 256-2-7Resolution: 2-7 (0.0078125).

“C4”

4

0:Int32

Fixed-point number. Range: -214748.3648 to 214748.3647.Resolution: 0.0001.

“X2”

2

0:Int16

Decimal integer in range of -32768 to 32767.Interpreted as: Value / 2X.

“X4”

4

0:Int32

Decimal integer in range of -2147483648 to 2147483647.Interpreted as: Value / 2X.

“Unipolar2.16”

2

0:UInt32

Fixed-point number which expresses a value in percent. Range: 0% to (400-2-14) %. Resolution: 2-14 (0.0061) %.

*): Constant sampling time Ta.