This section defines the ReferenceTypes that are inherent to the present companion specification. Figure 27 describes informally the hierarchy of these Reference Types. OPC UA Reference Types are defined in OPC 10000-3.
Figure 27 – Reference Type Hierarchy
The defined non-Hierarchical References are essential to the semantics of the model. When the underlying system changes, the underlying system shall update the references consequently in the OPC UA model.
For instance, let us consider a filter combiner with machine modules A, B, C where the product flows from A to B to C. In this scenario, the non-hierarchical reference FlowsTo points from A to B, from B to C. If the machine module B is removed and replaced by machine module D, then the underlying system shall remove the non-hierarchical references FlowsTo A to B, B to C and create non-hierarchical FlowsTo references A to D, D to C.
The OPC UA Reference Type FlowsTo is used to describe the flow of product from one OPC UA Object to another OPC UA Object. More specifically, the Reference connects the product output of a suitable TMC object to the next downstream suitable TMC object. The TMC objects suitable for the FlowsTo Reference Type are:
The OPC UA Reference Type FlowsTo allows any topology including loops, fan in and fan out. The InverseName is FlowsFrom.
The OPC UA Reference Type IsControlledBy is used to link the controlled machine module to the controlling device. More specifically, the OPC UA Reference Type IsControlledBy connects an OPC UA object of type MachineModuleType to an OPC UA object of type ControlsHWType.
The OPC UA Reference Type IsControlledBy allows to connect to at most one OPC UA object of type ControlsHWType. The InverseName is Controls.
The OPC UA Reference Type IsInstalledOn is used to link the installed software package to the hardware hosting the software package. More specifically, the OPC UA Reference Type IsInstalledOn connects an OPC UA object of type ControlsSWType to an OPC UA object of type ControlsHWType.
The OPC UA Reference Type IsInstalledOn allows to connect to at most one OPC UA object of type ControlsHWType. The InverseName is Hosts.
The OPC UA Reference Type Precedes is used to create an ordering among objects when the Reference Type FlowsTo does not resolve ambiguity. More specifically, the OPC UA Reference Type Precedes connects an upstream OPC UA object to a downstream OPC UA object.
The OPC UA Reference Type Precedes does not allow loops. The InverseName is IsPrecededBy.
The OPC UA Reference Type TriggersRejection is used to identify the causal link between product defect sensing and product rejection. More specifically, the OPC UA Reference Type TiggersRejection connects an OPC UA object of type DefectDetectionSensorType to an OPC UA object of type MaterialRejectionTrap Type that is triggered by the defect sensor.
The InverseName is TriggeredByDetection.
The OPC UA Reference Type ConnectsTo is used to describe the control networks connecting control devices. More specifically, the OPC UA Reference Type ConnectsTo connects objects of type ConnectionPointType belonging to objects of type ControlsHWType.
The OPC UA Reference Type ConnectsTo is Symmetric.
The OPC UA ReferenceType HasUIShapeSelector is used to provide conditional visibility for the images contained in the UIResources Folder Object as defined in 6.16.3.5. More specifically, the ReferenceType HasUIShapeSelector is intended to point from an object of type UIInformationType to a variable.
For example, the FilterTipperAttacher Object of type MachineModuleType contains the object UIInfo of type UIInformationType. There is a reference of type HasUIShapeSelecto r from UIInfo to the variable State contained in the LiveStatus object of the FilterTipperAttacher. The folder UIInfo contains several images named Running.svg, Stopped.svg, etc.
The visualisation OPC UA Client will display the image Running.svg when State=Running, the image Stopped.svg when State=Stopped and so on.
The OPC UA ReferenceType IsDisplayedBy is used to link an Object or Variable that has to be visualised to a component of an Object of type UserInterfaceType to specify where/how it shall be visualised. See the Object Type UserInformationType for additional clarifications in 6.17.