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 first introduced in the SystemUnitClass, where they would appear on an ObjectType or VariableType or an object or variable after instantiation.

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

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

OPC UA Attribute name

Included in SystemUnitClasses or Instances

Notes

NodeId

X

If the NamespaceUri portion of the NodeId or the entire NodeId is not present, then the AML object 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 AML library containing the AML object or the default OPC UA Server Namespace (depending on the context of the Node). If the NodeId is not present on an AML object, it can be derived by constructing a BrowsePath from a well-known RootNodeId as described in A.3.7. See the example in A.3.7.1.

NodeClass

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

.

BrowseName

X

If the Name sub-attribute of the BrowseName AML attribute is not present (i.e. missing or empty) in the AML, then the Name portion of the BrowseName is inferred by the AML object Name.

If the NamespaceUri sub-attribute of the BrowseName AML attribute is not present and the AML Object is contained in an AML library, the NamespaceUri portion of the BrowseName is the OPC UA Namespace referenced in the AML library definition.

If the NamespaceUri sub-attribute of the BrowseName AML attribute is not present and the AML Object is in an AML InstanceHierarchy, then the NamespaceUri portion of the BrowseName is the default OPC UA server Namespace (Namespace index equals one).

DisplayName

X

If not present in the AML, the OPC UA DisplayName is inferred by the AML object Name. If the OPC UA DisplayName is present and has multiple localizations, the localizations are mapped to additional localized sub-attributes of the DisplayName AML attribute. All DisplayNames that are present in the Server shall be present in the AML file. The DisplayName that exists in the AML file may not be present in the Server due to memory reasons.

Description

X

If not present in the AML, the OPC UA Description is inferred by the Description XML attribute in the Header of the AML object. If the OPC UA Description is present and has multiple localizations, the localizations are mapped to additional localized sub-attributes of the Description AML attribute. All Descriptions that are present in the Server shall be included in the AML file. The Description that exists in the AML file may not be present in the Server due to memory reasons.

WriteMask

X

If the WriteMask is present in the AML, it shall also be present in the Server. If sub-attributes of the WriteMask Attribute are part of the AML, their values shall match the corresponding bits in the Server. If a sub-attribute of the WriteMask is not present in the AML, then the value of the field is unknown.

UserWriteMask

UserWriteMask is never present in the AML SUC.

RolePermissions

X

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

X

If the AccessRestrictions is present in the AML, it shall also be present in the Server. If sub-attributes of the AccessRestrictions Attribute are part of the AML, their values shall match the corresponding bits in the Server. If a sub-attribute of the AccessRestrictions is not present in the AML, then the value of the field is unknown.

Executable

Executable is never present in the AML SUC.

UserExecutable

UserExecutable is never present in the AML SUC.

NOTE The X marks 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.