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 .

Table 11 - CAEXBasicObjectType Definition
Attribute Value
BrowseNameCAEXBasicObjectType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Inherit the components of the BaseObjectType
HasPropertyVariableVersionStringPropertyTypeMandatory
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 .

Table 12 - CAEXFileType Definition
Attribute Value
BrowseNameCAEXFileType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Inherit the components of the CAEXBasicObjectType
HasComponentObjectInstanceHierarchiesFolderTypeMandatory
HasComponentObjectInterfaceClassLibsFolderTypeMandatory
HasComponentObjectRoleClassLibsFolderTypeMandatory
HasComponentObjectSystemUnitClassLibsFolderTypeMandatory
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 .

Table 13 - CAEXObjectType Definition
Attribute Value
BrowseNameCAEXObjectType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Inherit the components of the CAEXBasicObjectType
HasPropertyVariableIDStringPropertyTypeMandatory
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 .

Table 14 - AutomationMLBaseInterface Definition
Attribute Value
BrowseNameAutomationMLBaseInterface
IsAbstractFalse
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 .

Table 15 - AutomationMLBaseRole Definition
Attribute Value
BrowseNameAutomationMLBaseRole
IsAbstractFalse
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 .

Table 16 - AutomationMLBaseSystemUnit Definition
Attribute Value
BrowseNameAutomationMLBaseSystemUnit
IsAbstractFalse
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.

Table 17 - HasAMLRoleReference
Attribute Value
BrowseNameHasAMLRoleReference
InverseNameIsSupportedRole
SymmetricFalse
IsAbstractFalse
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.

Table 18 - HasAMLInternalLink
Attribute Value
BrowseNameHasAMLInternalLink
InverseNameHasAMLInternalLink
SymmetricTrue
IsAbstractFalse
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 .

Table 19 - AMLBaseVariableType Definition
Attribute Value
BrowseNameAMLBaseVariableType
IsAbstractFalse
ValueRank-1
DataTypeBaseDataType
References NodeClass BrowseName DataType TypeDefinition ModellingRule
Inherit the components of the BaseVariableType
HasPropertyVariableIDStringPropertyTypeOptional
HasPropertyVariableVersionStringPropertyTypeOptional
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.

Table 20 – Mapping of XML data types to OPC UA BaseTypes

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).

Figure 20 – AutomationML information model structure in OPC UA

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.

Table 21 - AutomationMLFiles Instance Definition
Name TypeDefinition
AutomationMLFilesFolderType
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.

Table 22 - AutomationMLInstanceHierarchies Instance Definition
Name TypeDefinition
AutomationMLInstanceHierarchiesFolderType
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.

Table 23 - AutomationMLLibraries Instance Definition
Name TypeDefinition
AutomationMLLibrariesFolderType
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.

Table 24 - InterfaceClassLibs Instance Definition
Name TypeDefinition
InterfaceClassLibsFolderType
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.

Table 25 - RoleClassLibs Instance Definition
Name TypeDefinition
RoleClassLibsFolderType
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.

Table 26 - SystemUnitClassLibs Instance Definition
Name TypeDefinition
SystemUnitClassLibsFolderType