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.
| 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-7 Resolution: 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.