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.15. In Figure A.15, 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/OrganizedBy.
Figure A.15 – ReferencesTypes Hierarchy
The base References InterfaceClass contains the Attributes shown in Table A.8.
Table A.8 – Attributes of References InterfaceClass
Attribute name |
Type |
Notes |
NodeId |
NodeId |
In instances, this attribute has no meaning and should be deleted or ignored.This Attribute only appears on InterfaceClasses that represent the forward or symmetric Reference( i.e not on inverse references). This Attribute only appears on the InterfaceClass type and is marked with the Modelling Rule “OPC:TypeOnly” (see A.11.2.2). |
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. This Attribute only appears on the InterfaceClass type and is marked with the Modelling Rule “OPC:TypeOnly” (see A.11.2.2). |
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. This Attribute only appears on the InterfaceClass type and is marked with the Modelling Rule “OPC:TypeOnly” (see A.11.2.2). |
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. This Attribute only appears on the InterfaceClass type and is marked with the Modelling Rule “OPC:TypeOnly” (see A.11.2.2). |
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. This Attribute only appears on the InterfaceClass type and is marked with the Modelling Rule “OPC:TypeOnly” (see A.11.2.2). |
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. This Attribute only appears on the InterfaceClass type and is marked with the Modelling Rule “OPC:TypeOnly” (see A.11.2.2). |
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.16 Shows that the ModellingRule for the NodeVersion Property is explicitly set to “Mandatory”.
Figure A.17 shows an example of InterfaceClasses connected in an InstanceHierarchy.
Figure A.16 – SUC with connected InterfaceClasses
Figure A.17 – InstanceHierarchy with connected InterfaceClasses