OPC UA ReferenceTypes are modelled in AML as InterfaceClasses. All AML InterfaceClasses that represent OPC UA ReferenceTypes shall derive directly or indirectly from the Reference’s InterfaceClass in the ICL_http://opcfoundation.org/UA/ InterfaceClassLibrary. OPC UA ReferenceTypes that are symmetric or have the same forward and inverse name shall be represented by a single AML InterfaceClass with the same name. All other ReferenceTypes shall be represented by a pair of AML InterfaceClasses where one element of the pair represents the source endpoint, and the other represents the destination endpoint corresponding to the forward and inverse names. This pair of AML InterfaceClasses are organized in a hierarchy, see Figure A.14. In Figure A.14, the OPC UA ReferenceTypes References and HierarchicalReferences are represented by a single AML InterfaceClass, but the ReferenceType Organizes is represented by a pair of AML Organizes/OrganizeBy.
Figure A.14 – ReferencesTypes Hierarchy
The base References InterfaceClass contains the Attributes shown in Table A.7.
Table A.7 – Attributes of References InterfaceClass
Attribute name |
Type |
Notes |
InverseName |
LocalizedText |
For non-symmetric References, this is the name of the other interface class in the pair. It has no meaning for symmetric References. |
IsAbstract |
Boolean |
Indicates if the Reference is abstract according to the UA model. The default value for this attribute is FALSE. If the attribute is missing, then the default value is assumed. |
IsSource |
xs:boolean |
For non-symmetric References, TRUE shall indicate that this interface represents the source endpoint of the Reference, and FALSE shall indicate that this interface represents the destination endpoint of the Reference. It has no meaning for symmetric References. The default value for this attribute is FALSE. If the attribute is missing, then the default value is assumed. |
ModellingRule |
ModellingRuleType |
Present on the destination interface to indicate the UA ModellingRule of the destination. If missing, the ModellingRule “Optional” shall be assumed. |
RefClassConnectsToPath |
xs:string |
Indicates the AML path to the only other InterfaceClass that this interface shall be allowed to connect to. For symmetric References, this is a path to its own InterfaceClass. For non-symmetric References, this is the path to the other InterfaceClass in the pair. |
Symmetric |
Boolean |
Indicates if the Reference is symmetric according to the UA model. The default value for this attribute is FALSE. If the attribute is missing, then the default value is assumed. |
The InterfaceClasses are used in two ways:
Within an SUC to represent the UA relationships between the InternalElements of a Type within the SUC;
Within the InstanceHierarchy to show UA relationships between InternalElements.
When used within an SUC, the destination InterfaceClass contains a ModellingRule attribute that can be used to specify the UA ModellingRule used during instantiation. Figure A.15 Shows that the ModellingRule for the NodeVersion Property is explicitly set to “Mandatory”.
Figure A.16 shows an example of InterfaceClasses connected in an InstanceHierarchy.
Figure A.15 – SUC with connected InterfaceClasses
Figure A.16 – InstanceHierarchy with connected InterfaceClasses