The OPC UA metamodel uses the concept of NodeClasses to define sets of primitive attributes that are present on different types of nodes in the UA address space. This NodeClass concept is not mapped directly in AutomationML. Instead, the relevant attributes are introduced in the SystemUnitClass, where they would first appear on an ObjectType or VariableType.

In OPC UA, the attributes that appear on a type are different from the attributes that appear on an instance of that type (although there is a large overlap). In AutomationML, the SystemUnitClasses contain the union of the relevant attributes for both the type and instance. This simplification leads to the possibility of attributes appearing in AML that make no sense. In this case, they should ideally be deleted, and if not deleted, they should be ignored. For example, in OPC UA, the ObjectType and VariableType NodeClasses contain an attribute IsAbstract that indicates if direct instances of that type are allowed. In AutomationML, the IsAbstract attribute could appear on both types and instances, but if it appears on an instance, it has no meaning and thus should be deleted (ideally by the engineering tool without user interaction) or at least ignored.

The attributes defined on the SystemUnitClasses are almost always optional and can be deleted in cases where there is no desire to configure a specific value. When such attributes are not present in the SystemUnitClass or an AML instance, but the attributes are required in OPC UA, then the rules stated in this document will be used to set appropriate values as noted.

The OPC UA Base NodeClass contains a set of attributes that appear on all OPC UA Nodes. In AML, their equivalent may appear in the SystemUnitClasses UaMethodNodeClass, BaseObjectType and BaseVariableType according to the mapping defined in Table A.4.

Table A.4 – Mapping UA Base NodeClass attributes to SUC UaMethodNodeClass, BaseObjectType and BaseVariableType attributes

Attribute name

May be included in SystemUnitClass and/or instances

Notes

NodeId

The NodeId attribute may be present in the AML SUC or instance if it is known when the AML is produced; however, it may be omitted if unknown. If the NamespaceURI portion of the NodeId or the entire NodeId is not present, then the SUC contains an AML attribute UaNodeNamespaceUri that represents the OPC UA Namespace of the corresponding OPC UA Node. If the NodeId and UaNodeNamespaceUri are empty or not present, then the presumed value is either the OPC UA Namespace referenced by the SUC library containing the SUC or the default OPC UA Server Namespace (depending on the context of the Node).

NodeClass

NodeClass is never present in the AML SUC. The appropriate UA NodeClass is inferred by the SUC, and the OPC UA Namespace referenced by the SUC library containing the SUC.

BrowseName

ü

If not present in the AML SUC, the OPC UA BrowseName is inferred by the AML object Name, and the NamepaceURI is either the OPC UA Namespace referenced by the SUC library containing the SUC or the default OPC UA Server Namespace (depending on the context of the Node).

DisplayName

ü

If not present in the AML SUC, the OPC UA DisplayName is inferred by the AML object Name.

Description

ü

If not present in the AML SUC, the OPC UA Description is inferred by the AML object’s Description Attribute in the Header.

WriteMask

ü

If not present in the AML SUC, the attribute is also omitted in OPC UA.

UserWriteMask

UserWriteMask is never present in the AML SUC.

RolePermissions

ü

If not present in the AML SUC, the attribute is also omitted in OPC UA.

UserRolePermissions

UserRolePermissions is never present in the AML SUC.

AccessRestrictions

ü

If not present in the AML SUC, the attribute is also omitted in OPC UA.

Executable

Executable is never present in the AML SUC.

UserExecutable

UserExecutable is never present in the AML SUC.

NOTE The checkmarks in Table A.4 indicate all of the OPC attributes allowed in the AML mapping, however the SUCs in the AML Libraries described in Annex B through Annex E may only contain a chosen subset. Engineering tools are free to delete any unused attributes or add any allowed attributes as needed.