7 OPC UA DataTypes
Figure 30 shows the AAS data types which are directly derived from OPC UA data types enumeration and string. The details are defined in the following sub-sections of this chapter.

7.1 AASIdentifierTypeDataType enum value definition
Table 67 defines the AASIdentifierType data type.
| Name | Value | Description |
|---|---|---|
| IRDI | 0 | IRDI according to ISO29002-5 as an Identifier scheme for properties and classifications |
| IRI | 1 | Internationalized Resource Identifier according to RFC3305 |
| Custom | 2 | Custom identifiers like GUIDs (globally unique Identifiers) |
7.2 AASModelingKindDataType
Table 68 defines the AASModelingKindDataType data type.
| Name | Value | Description |
|---|---|---|
| Template | 0 | Hardware or software element which specifies the common attributes shared by all instances of the type [SOURCE: IEC TR 62390:2005-01, 3.1.25] |
| Instance | 1 | Concrete, clearly identifiable component of a certain template. Note: It becomes an individual entity of a template, for example a device model, by defining specific property values. Note: In an object oriented view, an instance denotes an object of a template (class). [SOURCE: IEC 62890:2016, 3.1.16 65/617/CDV] modified |
7.3 AASAssetKindDataType
Table 69 defines the AASAssetKindDataType data type.
| Name | Value | Description |
|---|---|---|
| Type | 0 | Hardware or software element which specifies the common attributes shared by all instances of the type [SOURCE: IEC TR 62390:2005-01, 3.1.25] |
| Instance | 1 | Concrete, clearly identifiable component of a certain type Note: It becomes an individual entity of a type, for example a device, by defining specific property values. Note: In an object-oriented view, an instance denotes an object of a class (of a type). [SOURCE: IEC 62890:2016, 3.1.16 65/617/CDV] |
7.4 AASKey data types
The AAS metamodel knows different ways of referencing which have to be specified in the “Keys” variable used in the AASReferenceType (6.3). The “Keys” Variable is of the data type AASKeyDataType which is a structure defined in Table 70. It indicates to which type of AAS element it is referring to (AASKeyElementDataType - Table 71), if the reference refers to a local or remote element (Local), the type of the identifier of the referred element and the identifier value. The IdType is of data type AASKeyTypeDataType (Table 72).
7.4.1 AASKeyDataType
The AASKeyDataType is defined in Table 70.
| Name | Type | Description |
|---|---|---|
| AASKeyDataType | Structure | This structure represents an AAS key. |
Type | AASKeyElementsDataType | Type of element which is referenced |
Local | Boolean | Indicates if target of reference is within own AAS (=true) or outside (=false) |
Value | String | Key to identify the target of reference |
IdType | AASKeyTypeDataType | Kind of identifier (Value) |
7.4.2 AASKeyElementsDataType
The AASKeyElementsDataType is defined in Table 71.
| Name | Value | Description |
|---|---|---|
| AccessPermissionRule | 0 | "AccessPermissionRule" |
| AnnotatedRelationshipElement | 1 | “AnnotatedRelationshipElement” |
| Asset | 2 | "Asset" |
| AssetAdministrationShell | 3 | "AssetAdministrationShell" |
| Blob | 4 | "Blob" |
| Capability | 5 | “Capability” |
| ConceptDescription | 6 | "ConceptDescription" |
| ConceptDictionary | 7 | "ConceptDictionary" |
| DataElement | 8 | "DataElement" |
| Entity | 9 | “Entity” |
| Event | 10 | "Event" |
| File | 11 | "File" |
| FragmentReference | 12 | “FragmentReference” |
| GlobalReference | 13 | "GlobalReference" |
| MultiLanguageProperty | 14 | “MultiLanguageProperty” |
| Operation | 15 | "Operation" |
| Property | 16 | "Property" |
| Range | 17 | “Range” |
| ReferenceElement | 18 | "ReferenceElement" |
| RelationshipElement | 19 | "RelationshipElement" |
| Submodel | 20 | "Submodel" |
| SubmodelElement | 21 | "SubmodelElement" |
| SubmodelElementCollection | 22 | "SubmodelElementCollection" |
| View | 23 | "View" |
7.5 AASKeyTypeDataType
The AASKeyTypeDataType is defined in Table 72.
| Name | Value | Description |
|---|---|---|
| IdShort | 0 | Identification of the element itself. Provides a unique identification for a possible event flow scheduling. |
| FragmentId | 1 | Identifier of a fragment within a file |
| Custom | 2 | Identifier is customer specific |
| IRDI | 3 | International Registration Data Identifier) is based on the international standards ISO/IEC 11179-6, ISO 29002 and ISO 6532 |
| IRI | 4 | Internationalized Resource Identifier (IRI) is the international format of Uniform Resource Identifier (URI). It is defined in RFC 3987. |
7.6 AASCategoryDataType
The CategoryDataType is defined in Table 73.
| Name | Value | Description |
|---|---|---|
| CONSTANT | 0 | Values does not change over time |
| PARAMETER | 1 | Typically once value is set, it will not change over time |
| VARIABLE | 2 | Value is calculated or changed during runtime |
| RELATIONSHIP | 3 | Relationship |
7.7 AASValueTypeDataType
The AASValueTypeDataType is defined in Table 74.
| Name | Value | Description |
|---|---|---|
| Boolean | 0 | A two-state logical value (true or false). |
| SByte | 1 | An integer value between -128 and 127. |
| Byte | 2 | An integer value between 0 and 255. |
| Int16 | 3 | An integer value between -32 768 and 32 767. |
| UInt16 | 4 | An integer value between 0 and 65 535. |
| Int32 | 5 | An integer value between -2 147 483 648 and 2 147 483 647. |
| UInt32 | 6 | An integer value between 0 and 4 294 967 295. |
| Int64 | 7 | An integer value between -9 223 372 036 854 775 808 and 9 223 372 036 854 775 807. |
| UInt64 | 8 | An integer value between 0 and 18 446 744 073 709 551 615. |
| Float | 9 | An IEEE single precision (32 bit) floating point value. |
| Double | 10 | An IEEE double precision (64 bit) floating point value. |
| String | 11 | A sequence of Unicode characters. Strings are just an array of UA_Byte. |
| DateTime | 12 | An instance in time. A DateTime value is encoded as a 64-bit signed integer which represents the number of 100 nanosecond intervals since January 1, 1601 (UTC). |
| ByteString | 13 | A sequence of octets. |
| LocalizedText | 14 | Human readable text with an optional locale identifier. |
| UtcTime | 15 | A date/time value specified in Universal Coordinated Time (UTC). |
7.8 AASPathDataType
The AASPath data type is a sub type of string and defined in Table 75.
| Attribute | Value | |||||
| BrowseName | AASPathDataType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of String Type defined in OPC 10000-3 | ||||||
7.9 AASMimeDataType
The enumeration of the AASMime is defined in Table 76.
| Attribute | Value | |||||
| BrowseName | AASMimeDataType | |||||
| IsAbstract | False | |||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Others | |
|---|---|---|---|---|---|---|
| Subtype of String Type defined in OPC 10000-3 | ||||||
7.10 AASEntityTypeDataType
The AASEntityTypeDataType is defined in Table 77.
| Attribute | Value | ||||||
| BrowseName | AASEntityTypeDataType | ||||||
| IsAbstract | False | ||||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Others | ||
|---|---|---|---|---|---|---|---|
| Subtype of Enumeration data type defined in OPC 10000-3 | |||||||
| 0:HasProperty | Variable | 0:EnumValues | 0:EnumValueType[] | 0:PropertyType | |||
The enumeration of the AASEntityType is defined in Table 78.
| Name | Value | Description |
|---|---|---|
| CoManagedEntity | 0 | Self-Managed Entities have their own AAS. This is why a reference to this asset is specified as well (Entity/asset). Additionally, further property statements (compare to [15]) can be added to the asset that are not specified in the AAS of the asset itself because they are specified in relation to the composite I4.0 Component only. |
| SelfManagedEntity | 1 | For co-managed entities there is no separate AAS. The relationships and property statements of such entities are managed within the AAS of the composite I4.0 Component. |
7.11 AASDataTypeIEC61360DataType
The AASDataTypeIEC61360DataType is defined in Table 79.
| Attribute | Value | ||||||||||
| BrowseName | AASDataTypeIEC61360DataType | ||||||||||
| IsAbstract | False | ||||||||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Others | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Subtype of Enumeration data type defined in OPC 10000-3 | |||||||||||
| 0:HasProperty | Variable | 0:EnumStrings | 0:LocalizedText [] | 0:PropertyType | |||||||
The enumeration of the AASDataTypeIEC61360 is defined in Table 80.
| Name | Value | Description |
|---|---|---|
| BOOLEAN | 0 | Date type according to IEC61360 |
| DATE | 1 | Date type according to IEC61360 |
| RATIONAL | 2 | Date type according to IEC61360 |
| RATIONAL_MEASURE | 3 | Date type according to IEC61360 |
| REAL_COUNT | 4 | Date type according to IEC61360 |
| REAL_CURRENCY | 5 | Date type according to IEC61360 |
| REAL_MEASURE | 6 | Date type according to IEC61360 |
| STRING | 7 | Date type according to IEC61360 |
| STRING_TRANSLATABLE | 8 | Date type according to IEC61360 |
| TIME | 9 | Date type according to IEC61360 |
| TIME_STAMP | 10 | Date type according to IEC61360 |
| URL | 11 | Date type according to IEC61360 |
| INTEGER | 12 | Date type according to IEC61360 |
| INTEGER_COUNT | 13 | Date type according to IEC61360 |
| INTEGER_CURRENCY | 14 | Date type according to IEC61360 |
7.12 AASLevelTypeDataType
The AASLevelTypeDataType is defined in Table 81.
| Attribute | Value | ||||||||||
| BrowseName | AASLevelTypeDataType | ||||||||||
| IsAbstract | False | ||||||||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | Others | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Subtype of Enumeration data type defined in OPC 10000-3 | |||||||||||
| 0:HasProperty | Variable | 0:EnumValues | 0:EnumValueType[] | 0:PropertyType | |||||||
The enumeration of the AASLevelType is defined in Table 82.
| Name | Value | Description |
|---|---|---|
| Min | 0 | Minimum |
| Max | 1 | Maximum |
| Num | 2 | Number |
| Type | 3 | Type |