6.6 ConnectionEndpointType
6.6.1 Overview
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.

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 to the PubSub Information Model.

6.6.2 ConnectionEndpointType definition
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 subclauses.
The ConnectionEndpointType is formally defined in Table 73Error! No bookmark name given..
| Attribute | Value | ||||
| BrowseName | 3:ConnectionEndpointType | ||||
| IsAbstract | True | ||||
| References |
Node
Class | 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:GeneratesEvent | ObjectType | 3:AuditConnectionCleanupEventType | Defined in 8.3 | ||
| 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.
| 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).

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.42. 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 is reset to its original value when the Status changes back to Operational. If the time delay 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). If AutomationComponentLog is supported, when a Connection is cleaned up then a LogRecord shall be generated. This LogRecord shall have the SourceNode set to the NodeId of the FunctionalEntity that the connection is in. This LogRecord shall have SourceName set to the BrowseName of the Connection that was closed. This LogRecord Message shall indicate that a timeout occurred.
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, including creation.
6.6.3 PubSubConnectionEndpointType definition
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.

The PubSubConnectionEndpointType is formally defined in Table 75 and Table 76.
| Attribute | Value | ||||
| BrowseName | 3:PubSubConnectionEndpointType | ||||
| IsAbstract | False | ||||
| References |
Node
Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of the 3:ConnectionEndpointType | |||||
| 0:HasComponent | Variable | 3:Mode | 2:PubSubConnectionEndpointModeEnum | 0:BaseDataVariableType | M |
| 0:HasComponent | Variable | 3:DataSetReaderPath | 0:String[] | 0:BaseDataVariableType | O |
| 0:HasComponent | Variable | 3:DataSetWriterPath | 0:String[] | 0:BaseDataVariableType | O |
| ConformanceUnits | |||||
|---|---|---|---|---|---|
| UAFX ConnectionEndpoint PubSub |
| 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 Subclause 10.41.
If the PubSub configuration model is exposed, the DataSetReader associated with this PubSubConnectionEndpoint is referenced directly using a ToDataSetReader Reference. Otherwise, the DataSetReader is referenced by path using DataSetReaderPath.
If the PubSub configuration model is exposed, the DataSetWriter associated with this PubSubConnectionEndpoint is referenced directly using a ToDataSetWriter Reference. Otherwise, the DataSetWriter is referenced by path using DataSetWriterPath.
DataSetReaderPath provides a path to the DataSetReader associated with this PubSubConnectionEndpoint. The path is expressed as an array of strings, starting with the <PubSubConnection>, then the <ReaderGroup> and finally the <DataSetReader>. This path reflects the hierarchy of elements inside the PubSubConfiguration2DataType structure, i.e. the Name field for PubSubConnection, ReaderGroup and DataSetReader elements.
DataSetWriterPath provides a path to the DataSetWriter associated with this PubSubConnectionEndpoint. The path is expressed as an array of strings, starting with the <PubSubConnection>, then the <WriterGroup> and finally the <DataSetWriter>. This path reflects the hierarchy of elements inside the PubSubConfiguration2DataType structure (i.e. the Name field for PubSubConnection, WriterGroup and DataSetWriter elements).
Depending on Mode, the following references shall be created:
If Mode is Publisher, only a DataSetWriter shall be referenced directly or by path.
If Mode is Subscriber, only a DataSetReader shall be referenced directly or by path.
If Mode is PublisherSubscriber, a DataSetReader and a DataSetWriter shall be referenced directly or by path.
The referenced DataSetReader shall be present if the PubSubConnectionEndpoint references InputVariables or receives a heartbeat. The referenced DataSetReader shall be associated with a SubscribedDataSet that contains all of the referenced ConnectionEndpoint InputVariables. If no InputVariables are referenced, the referenced DataSetReader shall be associated with a null DataSet (heartbeat).
The referenced DataSetWriter shall be present if the PubSubConnectionEndpoint references OutputVariables or publishes a heartbeat. The referenced DataSetWriter shall be associated with a PublishedDataSet 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 referenced 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.

For PubSubConnectionEndpoints with Mode of Subscriber, the Status shall be determined by the Status of the referenced DataSetReader according to Figure 32.

For PubSubConnectionEndpoints with Mode of Publisher, the Status shall be determined by the Status of the referenced DataSetWriter according to Figure 33.

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.
6.6.4 ClientServerConnectionEndpointType
The ClientServerConnectionEndpointType may be defined in a future version of this document.