6 AutomationML Base Types OPC UA Model
6.1 ObjectTypes
6.1.1 General
The property ID of the ObjectType nodes describes a unique identifier.
The property Version of the ObjectType nodes consists of organizational information about the state of the version.
6.1.2 CAEXBasicObjectType
6.1.2.1 General
The CAEXBasicObjectType defines all general characteristics of a CAEX element. All other CAEX elements derive from it. The CAEXBasicObjectType inherits all Properties of the BaseObjectType.
6.1.2.2 ObjectType Definition
The CAEXBasicObjectType is formally defined in Table 11 .
| Attribute | Value | ||||
| BrowseName | CAEXBasicObjectType | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the BaseObjectType | |||||
| HasProperty | Variable | Version | String | PropertyType | Mandatory |
6.1.2.3 ObjectType Description
6.1.2.3.1 Version
Version provides the version number for the CAEXBasicObjectType
6.1.3 CAEXFileType
6.1.3.1 General
The CAEXFileType defines all general characteristics of a CAEX file and includes all CAEX libraries and instance hierarchies. The CAEXFileType inherits all properties of the CAEXBasicObjectType.
6.1.3.2 ObjectType Definition
The CAEXFileType is formally defined in Table 12 .
| Attribute | Value | ||||
| BrowseName | CAEXFileType | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the CAEXBasicObjectType | |||||
| HasComponent | Object | InstanceHierarchies | FolderType | Mandatory | |
| HasComponent | Object | InterfaceClassLibs | FolderType | Mandatory | |
| HasComponent | Object | RoleClassLibs | FolderType | Mandatory | |
| HasComponent | Object | SystemUnitClassLibs | FolderType | Mandatory | |
6.1.3.3 ObjectType Description
6.1.3.3.1 InstanceHierarchies
The InstanceHierarchies folder includes all CAEX InstanceHierarchies of a CAEX file.
6.1.3.3.2 InterfaceClassLibs
The InterfaceClassLibs folder includes all CAEX InterfaceClassLibs of a CAEX file.
6.1.3.3.3 RoleClassLibs
The RoleClassLibs folder includes all CAEX RoleClassLibs of a CAEX file.
6.1.3.3.4 SystemUnitClassLibs
The SystemUnitClassLibs folder includes all CAEX SystemUnitClassLibs of a CAEX file.
6.1.4 CAEXObjectType
6.1.4.1 General
The CAEXObjectType defines all general characteristics of a CAEX object. All other CAEX objects derive from it. The CAEXObjectType inherits all Properties of the CAEXBasicObjectType.
6.1.4.2 ObjectType Definition
The CAEXObjectType is formally defined in Table 13 .
| Attribute | Value | ||||
| BrowseName | CAEXObjectType | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the CAEXBasicObjectType | |||||
| HasProperty | Variable | ID | String | PropertyType | Mandatory |
6.1.4.3 ObjectType Description
6.1.4.3.1 ID
ID provides a unique ID of the CAEXObjectType which shall be in form of a UUID.
6.1.5 AutomationMLBaseInterface
6.1.5.1 General
The AutomationMLBaseInterface defines all general characteristics of a CAEX InterfaceClass object. All other InterfaceClass objects derive from it. The CAEXObjectType inherits all Properties of the CAEXObjectType.
6.1.5.2 ObjectType Definition
The AutomationMLBaseInterface is formally defined in Table 14 .
| Attribute | Value | ||||
| BrowseName | AutomationMLBaseInterface | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the CAEXObjectType | |||||
6.1.6 AutomationMLBaseRole
6.1.6.1 General
The AutomationMLBaseRole defines all general characteristics of a CAEX RoleClass object. All other RoleClass objects derive from it. The AutomationMLBaseRole inherits all Properties of the CAEXObjectType.
6.1.6.2 ObjectType Definition
The AutomationMLBaseRole is formally defined in Table 15 .
| Attribute | Value | ||||
| BrowseName | AutomationMLBaseRole | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the CAEXObjectType | |||||
6.1.7 AutomationMLBaseSystemUnit
6.1.7.1 General
The AutomationMLBaseSystemUnit defines all general characteristics of a CAEX SystemUnitClass object. All other SystemUnitClass objects derive from it. The CAEXObjectType inherits all Properties of the CAEXObjectType.
6.1.7.2 ObjectType Definition
The AutomationMLBaseSystemUnit is formally defined in Table 16 .
| Attribute | Value | ||||
| BrowseName | AutomationMLBaseSystemUnit | ||||
| IsAbstract | False | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the CAEXObjectType | |||||
6.2 ReferenceTypes
Following the AutomationML specific OPC UA definitions will be listed.
6.2.1 HasAMLRoleReference
6.2.1.1 General
The HasAMLRoleReference is a concrete ReferenceType that can be used directly. It is a subtype of NonHierarchicalReference.
6.2.1.2 ObjectType Definition
The HasAMLRoleReference is formally defined in Table 17.
| Attribute | Value | ||
| BrowseName | HasAMLRoleReference | ||
| InverseName | IsSupportedRole | ||
| Symmetric | False | ||
| IsAbstract | False | ||
| References | NodeClass | BrowseName | Comment |
|---|---|---|---|
| Subtype of NonHierarchicalReference ReferenceType defined in OPC 10000-5 | |||
This ReferenceType is used to describe a SupportedRoleClass or RoleRequirement relation in AutomationML.
The SourceNode of this ReferenceType shall be an object.
The TargetNode of this ReferenceType shall be a subtype of AMLRoleClass.
6.2.2 HasAMLInternalLink
6.2.2.1 General
The HasAMLInternalLink is a concrete ReferenceType that can be used directly. It is a subtype of NonHierarchicalReference.
6.2.2.2 ReferenceType Definition
The HasAMLInternalLink is formally defined inTable 18.
| Attribute | Value | ||
| BrowseName | HasAMLInternalLink | ||
| InverseName | HasAMLInternalLink | ||
| Symmetric | True | ||
| IsAbstract | False | ||
| References | NodeClass | BrowseName | Comment |
|---|---|---|---|
| Subtype of NonHierarchicalReference ReferenceType defined in OPC 10000-5 | |||
This ReferenceType is used to describe an InternalLink relation in AutomationML.
The SourceNode of this ReferenceType shall be an object which is derived from the AutomationMLBaseInterface or one of its subtypes.
The TargetNode of this ReferenceType shall be an object which is derived from the AutomationMLBaseInterface or one of its subtypes.
6.3 VariableTypes
6.3.1 AMLBaseVariableType
6.3.1.1 General
The AMLBaseVariableType defines all general characteristics of AutomationML attributes. All other AutomationML attributes derive from it.
6.3.1.2 VariableType Definition
The AMLBaseVariableType is formally defined in Table 19 .
| Attribute | Value | ||||
| BrowseName | AMLBaseVariableType | ||||
| IsAbstract | False | ||||
| ValueRank | -1 | ||||
| DataType | BaseDataType | ||||
| References | NodeClass | BrowseName | DataType | TypeDefinition | ModellingRule |
|---|---|---|---|---|---|
| Inherit the components of the BaseVariableType | |||||
| HasProperty | Variable | ID | String | PropertyType | Optional |
| HasProperty | Variable | Version | String | PropertyType | Optional |
6.3.1.3 VariableType Description
6.3.1.3.1 ID
ID provides a unique ID of the AMLBaseVariableType which shall be in form of a UUID.
6.3.1.3.2 Version
Version provides the version number for the AMLBaseVariableType
6.4 Mapping of AutomationML XML DataTypes to OPC UA DataTypes
The mapping of AutomationML XML DataTypes to OPC UA DataTypes is described in Table 20.

6.4.1 OPC UA Objects used to organize the address space structure
The access to the model is split up into an AutomationML specific entry possibility and an OPC UA specific entry possibility. The organizational nodes facilitate the navigation (browse) to elements. Figure 20 depicts an example address space. Different colours represent different nodesets as explained in chapter 5.2.1.
For users familiar with OPC UA, objects and object types can be accessed via the classical UA way (Objects folder and ObjectTypes folder). The global instance view can be reached via the Objects node and a specific node called AutomationMLInstanceHierarchies of type FolderType. The global type view can be reached via the ObjectTypes node and the corresponding AutomationML-specific object types.
The file view is dedicated to AutomationML users who are looking for a direct AutomationML view/representation. This is realized by the node of type FolderType named AutomationMLFiles below the Objects node. This node organizes all File_xyz nodes where File_xyz stands for the AML file name.
The File_xyz node consists of nodes of type FolderType called
InstanceHierarchies(for AutomationML InstanceHierarchy elements),
RoleClassLibs (for AutomationML RoleClassLibrary elements),
SystemUnitClassLibs (for AutomationML AutomationML SystemUnitClassLibrary elements), and
InterfaceClassLibs (for AutomationML InterfaceClassLibrary elements).
Below File_xyz all references must be browsable bidirectionally (isForward = False).

The naming for the AutomationML specific nodes is as follows: AutomationMLFiles, AutomationMLLibraries, AutomationMLInstanceHierarchies, CAEXBaseType are entry points into the hierarchies. They include AutomationML or CAEX in their browse names. Everything below these nodes does not need an AutomationML or CAEX prefix anymore, e.g. RoleClassLibs.
Be careful: The representation of the inheritance hierarchy is confusing if more than one file and AML base libraries are included in one OPC UA address space (with different nodesets).
6.4.1.1 Instances and entry points
6.4.1.1.1 AutomationMLFiles
This Instance is a child of Objects. It is defined in Table 21 .
The AutomationMLFiles folder represents a browse entry point when looking for AutomationML files in the OPC UA information model.
| Name | TypeDefinition |
| AutomationMLFiles | FolderType |
6.4.1.1.2 AutomationMLInstanceHierarchies
This Instance is a child of Objects. It is defined in Table 22 .
The AutomationMLInstanceHierarchies folder represents a browse entry point when looking for AutomationML InstanceHierarchies in the OPC UA information model.
| Name | TypeDefinition |
| AutomationMLInstanceHierarchies | FolderType |
6.4.1.1.3 AutomationMLLibraries
This Instance is a child of Objects. It is defined in Table 23 .
The AutomationMLLibraries folder represents a browse entry point when looking for AutomationML libraries in the OPC UA information model.
| Name | TypeDefinition |
| AutomationMLLibraries | FolderType |
6.4.1.1.4 InterfaceClassLibs
This Instance is a child of AutomationMLLibraries. It is defined in Table 24 .
The InterfaceClassLibsfolder represents a browse entry point when looking for AutomationML InterfaceClassLibs in the OPC UA information model.
| Name | TypeDefinition |
| InterfaceClassLibs | FolderType |
6.4.1.1.5 RoleClassLibs
This Instance is a child of AutomationMLLibraries. It is defined in Table 25 .
The RoleClassLibsfolder represents a browse entry point when looking for AutomationML RoleClassLibs in the OPC UA information model.
| Name | TypeDefinition |
| RoleClassLibs | FolderType |
6.4.1.1.6 SystemUnitClassLibs
This Instance is a child of AutomationMLLibraries. It is defined in Table 26 .
The SystemUnitClassLibsfolder represents a browse entry point when looking for AutomationML SystemUnitClassLibs in the OPC UA information model.
| Name | TypeDefinition |
| SystemUnitClassLibs | FolderType |