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.

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.

The CAEXBasicObjectType is formally defined in Table 11 .

Table 11 - CAEXBasicObjectType Definition

Attribute

Value

BrowseName

CAEXBasicObjectType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Inherit the components of the BaseObjectType

HasProperty

Variable

Version

String

PropertyType

Mandatory

Version provides the version number for the CAEXBasicObjectType

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.

The CAEXFileType is formally defined in Table 12 .

Table 12 - CAEXFileType Definition

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

The InstanceHierarchies folder includes all CAEX InstanceHierarchies of a CAEX file.

The InterfaceClassLibs folder includes all CAEX InterfaceClassLibs of a CAEX file.

The RoleClassLibs folder includes all CAEX RoleClassLibs of a CAEX file.

The SystemUnitClassLibs folder includes all CAEX SystemUnitClassLibs of a CAEX file.

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.

The CAEXObjectType is formally defined in Table 13 .

Table 13 - CAEXObjectType Definition

Attribute

Value

BrowseName

CAEXObjectType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Inherit the components of the CAEXBasicObjectType

HasProperty

Variable

ID

String

PropertyType

Mandatory

ID provides a unique ID of the CAEXObjectType which shall be in form of a UUID.

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.

The AutomationMLBaseInterface is formally defined in Table 14 .

Table 14 - AutomationMLBaseInterface Definition

Attribute

Value

BrowseName

AutomationMLBaseInterface

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Inherit the components of the CAEXObjectType

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.

The AutomationMLBaseRole is formally defined in Table 15 .

Table 15 - AutomationMLBaseRole Definition

Attribute

Value

BrowseName

AutomationMLBaseRole

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Inherit the components of the CAEXObjectType

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.

The AutomationMLBaseSystemUnit is formally defined in Table 16 .

Table 16 - AutomationMLBaseSystemUnit Definition

Attribute

Value

BrowseName

AutomationMLBaseSystemUnit

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Inherit the components of the CAEXObjectType

Following the AutomationML specific OPC UA definitions will be listed.

The HasAMLRoleReference is a concrete ReferenceType that can be used directly. It is a subtype of NonHierarchicalReference.

The HasAMLRoleReference is formally defined in Table 17.

Table 17 - HasAMLRoleReference

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.

The HasAMLInternalLink is a concrete ReferenceType that can be used directly. It is a subtype of NonHierarchicalReference.

The HasAMLInternalLink is formally defined inTable 18.

Table 18 - HasAMLInternalLink

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.

The AMLBaseVariableType defines all general characteristics of AutomationML attributes. All other AutomationML attributes derive from it.

The AMLBaseVariableType is formally defined in Table 19 .

Table 19 - AMLBaseVariableType Definition

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

ID provides a unique ID of the AMLBaseVariableType which shall be in form of a UUID.

Version provides the version number for the AMLBaseVariableType

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

image024.png

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

image025.jpg

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

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

AutomationMLFiles

FolderType

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

AutomationMLInstanceHierarchies

FolderType

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

AutomationMLLibraries

FolderType

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

InterfaceClassLibs

FolderType

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

RoleClassLibs

FolderType

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

SystemUnitClassLibs

FolderType