A ConnectionEndpoint is used to represent an endpoint of a Connection between two FunctionalEntities for data exchange. It provides information about which InputVariables and/or OutputVariables are exchanged. ConnectionEndpoints reside in the ConnectionEndpoints Folder of a FunctionalEntity.
The ConnectionEndpointType is illustrated in Figure 27.
Figure 27 – ConnectionEndpointType illustration
A ConnectionEndpoint further describes the link between Variables in the FunctionalEntityType and the communication model used for exchange. Communication models can be Client Server or PubSub. This type specifies the exchanged Variables and contains the status of the Connection. Subtypes of ConnectionEndpointType provide details specific to the utilized communication model and specify how the Connection status shall be determined for a given communication model.
Figure 28 illustrates a Connection between two FunctionalEntities and the use of PubSubConnectionEndpointType to represent the exchanged Variables, as well as corresponding references, into the PubSub Information Model.
Figure 28 – Illustration of a Connection between FunctionalEntities
This ObjectType is the abstract base type of all communication model-specific ConnectionEndpointTypes. It defines the elements and behaviour that are common to all ConnectionEndpointTypes. Additional communication model-specific subtypes are defined in subsequent clauses.
The ConnectionEndpointType is formally defined in Table 71.
Table 71 – ConnectionEndpointType definition
Attribute |
Value |
||||
BrowseName |
3:ConnectionEndpointType |
||||
IsAbstract |
True |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasComponent |
Variable |
3:Status |
3:ConnectionEndpointStatusEnum |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
3:RelatedEndpoint |
2:RelatedEndpointDataType |
0:BaseDataVariableType |
M |
0:HasComponent |
Variable |
3:InputVariables |
0:NodeId[] |
0:BaseDataVariableType |
O |
0:HasComponent |
Variable |
3:OutputVariables |
0:NodeId[] |
0:BaseDataVariableType |
O |
0:HasComponent |
Variable |
3:IsPersistent |
0:Boolean |
0:BaseDataVariableType |
M |
0:HasComponent |
Variable |
3:CleanupTimeout |
0:Duration |
0:BaseDataVariableType |
M |
0:HasSubtype |
ObjectType |
3:PubSubConnectionEndpointType |
Defined in 6.6.3 |
||
ConformanceUnits |
|||||
UAFX ConnectionEndpoint Base |
The Status describes the current status of a ConnectionEndpoint. This status is illustrated by the state machine in Figure 29. The Status values are defined in the ConnectionEndpointStatusEnum (see 10.17).
Figure 29 – Status illustration
How Status is determined for a specific communication model is specified in the subtypes of ConnectionEndpointType.
The optional InputVariables reference Variables that are to have their values updated by the communication model connected to the ConnectionEndpoint. All referenced Variables shall be in the InputData of the FunctionalEntity related to the ConnectionEndpoint or a SubFunctionalEntity of it. The referenced Variables may be a subset of the Variables referenced by InputData.
The optional OutputVariables reference Variables that are to be reported by the communication model connected to the ConnectionEndpoint. All referenced Variables shall be listed in the OutputData of the FunctionalEntity related to the ConnectionEndpoint or a SubFunctionalEntity of it. The referenced Variables may be a subset of the Variables referenced by OutputData.
The communication represented by the ConnectionEndpoint shall include all referenced InputVariables and OutputVariables.
A ConnectionEndpoint shall include at least one of the following:
- 1 or more InputVariables
- 1 or more OutputVariables
RelatedEndpoint points to the related ConnectionEndpoint (i.e., the other end of the Connection). The RelatedEndpointDataType is defined in 10.38. If the ConnectionEndpoint is not exposed in the Information Model of the related connection partner, RelatedEndpoint will specify the path to the connected FunctionalEntity.
IsPersistent indicates if the ConnectionEndpoint shall be persistent. Persistent ConnectionEndpoints shall be restored following a power cycle by the AutomationComponent. The restore of a persistent ConnectionEndpoint shall include:
- ConnectionEndpoint including references to ControlGroups and communication model Objects
- Established control on related ControlGroups
- Communication model Objects
An AutomationComponent indicates support for persistent Connections; see SupportsPersistence in 6.2.6.
Non-persistent ConnectionEndpoints following a power cycle behave as if the CloseConnections Method was called with Remove set to TRUE(see 6.2.5).
The CleanupTimeout defines a time delay period before a clean-up shall occur. The time delay period starts following a status change from Operational to any other Status. The time delay period is reset to its original value when the Status changes back to Operational. If the time delay period expires, this Connection shall be closed as if the CloseConnections Method was called with Remove set to TRUE(see 6.2.5), and if Auditing is supported, an Event of AuditConnectionCleanupEventType shall be generated. Any negative number indicates that the CleanupTimeout shall not be used and no clean-up occurs. For a persistent ConnectionEndpoint, the CleanupTimeout shall be set to a negative number. A zero indicates immediate clean-up. CleanupTimeout processing may be disabled by a CloseConnections Call (see 6.2.5).
PubSubConnectionEndpointType is a subtype of the ConnectionEndpointType. It extends the abstract ConnectionEndpointType with behaviour that is specific to the OPC UA PubSub communication model.
The PubSubConnectionEndpointType is illustrated in Figure 30.
Figure 30 – PubSubConnectionEndpointType illustration
The PubSubConnectionEndpointType is formally defined in Table 72 and Table 73.
Table 72 – PubSubConnectionEndpointType definition
Attribute |
Value |
||||
BrowseName |
3:PubSubConnectionEndpointType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 3:ConnectionEndpointType |
|||||
HasComponent |
Variable |
3:Mode |
2:PubSubConnectionEndpointModeEnum |
0:BaseDataVariableType |
M |
ConformanceUnits |
|||||
UAFX ConnectionEndpoint PubSub |
Table 73 – PubSubConnectionEndpointType additional References
SourceBrowsePath |
Reference Type |
IsForward |
TargetBrowsePath |
||||||
|
3:ToDataSetReader |
True |
|
||||||
|
3:ToDataSetWriter |
True |
|
Mode defines the mode of the ConnectionEndpoint with respect to the Connection. The modes are formally defined in the PubSubConnectionEndpointModeEnum defined in Clause 10.37. They shall require the following references:
- If Mode is PublisherSubscriber, a ToDataSetReader and a ToDataSetWriter Reference are required.
- If Mode is Publisher, a ToDataSetWriter Reference is required; there shall be no ToDataSetReader set.
- If Mode is Subscriber, a ToDataSetReader Reference is required; there shall be no ToDataSetWriter set.
A PubSubConnectionEndpoint shall have at most one ToDataSetReader and at most one ToDataSetWriter Reference (see 6.2.4.3.9.2).
If present, the ToDataSetReader Reference (see 11.20) shall point to the DataSetReader that this ConnectionEndpoint is associated with. It shall be present if the PubSubConnectionEndpoint references InputVariables or receives a heartbeat. The referenced DataSetReader shall be associated with a SubscribedDataSet having the subtype TargetVariablesType that contains all of the referenced ConnectionEndpoint InputVariables. If no InputVariables are referenced, the referenced DataSetReader shall be associated with a null DataSet (heartbeat).
If present, the ToDataSetWriter Reference (see 11.21) shall point to the DataSetWriter that this ConnectionEndpoint is associated with. It shall be present if the PubSubConnectionEndpoint references OutputVariables or publishes a heartbeat. The referenced DataSetWriter shall be associated with a PublishedDataSet having the subtype PublishedDataItemsType that contains all of the referenced ConnectionEndpoint OutputVariables. If no OutputVariables are referenced, the referenced DataSetWriter shall be associated with a null DataSet to publish the heartbeat.
The Status is determined based on the Status of the referenced DataSetReader and DataSetWriter. If a required Reference (see Mode) to a DataSetReader or DataSetWriter is missing, the Status shall be Initial.
For PubSubConnectionEndpoints with Mode of PublisherSubscriber, the Status shall be determined by the Status of the referenced DataSetReader and DataSetWriter as defined in Figure 31.
Figure 31 – Status with Mode of PublisherSubscriber
For PubSubConnectionEndpoints with Mode of Subscriber, the Status shall be determined by the Status of the referenced DataSetReader according to Figure 32.
Figure 32 – Status with Mode of Subscriber
For PubSubConnectionEndpoints with Mode of Publisher, the Status shall be determined by the Status of the referenced DataSetWriter according to Figure 33.
Figure 33 – Status with Mode of Publisher
For the connection types autonomous publisher and autonomous subscriber (see 5.5.1), RelatedEndpoint Address shall be set to the Server address of the ConnectionEndpoint, the ConnectionEndpoint array shall be set to null or empty, and the ConnectionEndpointName to an empty String.
Annex E provides examples of PubSubConnectionEndpoints for the various types of Connections.
The ClientServerConnectionEndpointType may be defined in a future version of this document.