The main structure of an AutomationML file from Figure 7 is mapped into a slightly variant structure depicted in Figure 11. The InstanceHierarchies and libraries shall be stored in common folders (AutomationMLInstanceHierarchies, AutomationMLLibraries, AutomationMLSystemUnitClassLibs, AutomationMLRoleClassLibs, AutomationMLInterfaceClassLibs).

image015.png

Figure 11 – CAEX file <-> OPC UA Types [1]

The AutomationML BaseElementTypes transformation into OPC UA Types is depicted in Figure 12, the transformation of AutomationML elements into OPC UA Types is depicted in Figure 13.

Figure 12 depicts the mapping of the relations between the main AutomationML elements (see Figure 8). The structure of the picture is not changed, so the mapping can be read directly from the graphic. Table 7 and Table 8 resume the mapping rules in a list. Basically, AutomationML InternalElements are represented by OPC UA Objects, AutomationML SystemUnitClasses and RoleClasses are represented by OPC UA ObjectTypes. Detailed definition of new ObjectTypes, ReferenceTypes and VariableTypes are given in Chapter 6.

ChildElement relations within class structures (SystemUnitClass, RoleClass) are mapped to the OPC UA ‘Organizes’ references. InternalElements which follow the ChildElement relation are referenced via ‘HasComponent’ references. The inheritance relations within SystemUnitClasses and RoleClasses are mapped to OPC UA ‘HasSubtype’ references. The internal structures of SystemUnitClasses are depicted by InternalElements which are connected via OPC UA ‘HasComponent’ references. The RefBaseClassPath relation of AutomationML is an OPC UA ‘HasTypeDefinition’ reference. The referencing of RoleClasses to InternalElements or SystemUnitClasses via SupportedRoleClass or RoleRequirement of AutomationML is done via OPC UA ‘HasAMLRoleReference’ references.

Table 7 – Element mapping

AutomationML

OPC UA

InternalElement

Object

SystemUnitClass

ObjectType

RoleClass

ObjectType

Table 8 – Relation mapping

AutomationML Source

AutomationML Target

AutomationML Relation

OPC UA Reference

Description

InternalElement

RoleClass

SupportedRoleClass

HasAMLRoleReference

Semantic similar to HasTypeDefinition

InternalElement

RoleClass

RoleRequirement

HasAMLRoleReference

Semantic similar to HasTypeDefinition

InternalElement

SystemUnitClass

RefBaseClassPath

HasTypeDefinition

InternalElement

InternalElement

HasComponent

ChildElement

SystemUnitClass

RoleClass

SupportedRoleClass

HasAMLRoleReference

Semantic similar to HasTypeDefinition

SystemUnitClass

InternalElement

HasComponent

ChildElement

SystemUnitClass

SystemUnitClass

Organizes

ChildElement

SystemUnitClass

SystemUnitClass

RefBaseClassPath

HasSubtype

RoleClass

RoleClass

Organizes

ChildElement

RoleClass

RoleClass

RefBaseClassPath

HasSubtype

image016.png

Figure 12 – AutomationML BaseElementTypes and the OPC UA Types [1]

The mappings of the AutomationML object details (see Figure 9) are depicted in Figure 13. The analogy between the two figures is obvious. Table 9 and Table 10 summarize the mapping rules in a list. AutomationML Attributes become OPC UA Variables. AutomationML InterfaceClasses are transformed into OPC UA ObjectTypes and the corresponding AutomationML ExternalInterface elements are modelled by OPC UA Objects.

The Attributes and ExternalInterfaces are referenced via ‘HasComponent’ references. The InterfaceClass is the type definition of the ExternalInterface therefore it is assigned via ‘HasTypeDefinition’ reference. Similarly to the RoleClasses and SystemUnitClasses, the relations between InterfaceClasses are mapped to ‘Organizes’ references within the XML tree structure and to ‘HasSubtype’ references concerning inheritance relation. Relations between ExternalInterfaces (AutomationML InternalLinks) are assigned via ‘HasAMLInternalLink’ reference. Details are given in Chapter 6.

Table 9 – Element mapping

AutomationML

OPC UA

InternalElement

Object

SystemUnitClass

ObjectType

RoleClass

ObjectType

InterfaceClass

ObjectType

Attribute

Variable

ExternalInterface

Object

Table 10 – Relation mapping

AutomationML Source

AutomationML Target

AutomationML Relation

OPC UA Reference

Description

InternalElement

Attribute

HasComponent

ChildElement

SystemUnitClass

Attribute

HasComponent

ChildElement

RoleClass

Attribute

HasComponent

ChildElement

InternalElement

ExternalInterface

HasComponent

ChildElement

SystemUnitClass

ExternalInterface

HasComponent

ChildElement

RoleClass

ExternalInterface

HasComponent

ChildElement

ExternalInterface

ExternalInterface

InternalLink

HasAMLInternalLink

ExternalInterface

Attribute

HasComponent

ChildElement

ExternalInterface

InterfaceClass

RefBaseClassPath

HasTypeDefinition

InterfaceClass

Attribute

HasComponent

ChildElement

InterfaceClass

InterfaceClass

RefBaseClassPath

HasSubtype

InterfaceClass

InterfaceClass

Organizes

ChildElement

image017.png

Figure 13 – AutomationML Element and the OPC UA Types [1]