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 utilised 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 to 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 73.
Table 73 – 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:HasComponent |
Variable |
3:ConnectionManagerApplicationUri |
0:String |
0:BaseDataVariableType |
O |
0:HasComponent |
Object |
5:Diagnostics |
|
5:FunctionalGroupType |
O |
0:HasSubtype |
ObjectType |
3:PubSubConnectionEndpointType |
Defined in 6.6.3 |
||
ConformanceUnits |
|||||
UAFX ConnectionEndpoint Base |
The components of the ConnectionEndpointType have additional subcomponents, which are defined in Table 74.
Table 74 – ConnectionEndpointType additional subcomponents
BrowsePath |
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Others |
5:Diagnostics |
0:HasComponent |
Variable |
3:CreationTime |
0:DateTime |
0:BaseDataVariableType |
O |
5:Diagnostics |
0:HasComponent |
Variable |
3:ModificationTime |
0:DateTime |
0:BaseDataVariableType |
O |
|
|
|
|
|
|
|
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 indicate 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 the FunctionalEntity. 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 the FunctionalEntity. 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 restoration 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).
The ConnectionManagerApplicationUri can be used to identify the ConnectionManager that created this ConnectionEndpoint. The ConnectionManagerApplicationUri shall be set to the ApplicationUri in the ApplicationDescription associated with the Client connection from the ConnectionManager that established this Connection. If the ConnectionManager is local to this AutomationComponent (no Client connection), this shall be set to the ApplicationUri associated with the local ConnectionManager.
The CreationTime provides the timestamp associated with the creation of this ConnectionEndpoint.
The ModificationTime provides the timestamp associated with any modification of this ConnectionEndpoint. This timestamp shall be set on creation, enabling, and disabling.
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 75 and Table 76.
Table 75 – 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 76 – 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.42. 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.21) shall point to the DataSetReader with which this ConnectionEndpoint is associated. 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.22) shall point to the DataSetWriter with which this ConnectionEndpoint is associated. 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 the Mode value 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.