This section describes DataTypes that can be used to serialize the Objects that compose a ConnectionConfigurationSet (see 6.8 and 6.10) into a single structure (ConnectionConfigurationSetDataType). The ConnectionConfigurationSetDataType may, for example, be used for persisting a ConnectionConfigurationSet, for storing it within a File (see F.2), or for maintaining the configuration of a ConnectionManager (see F.3).

For the base principles used for the mapping, see clause F.1.2.

Figure F.1 depicts the different components of the ConnectionConfigurationSetDataType and their relation to each other.

image150.png

Figure F.1 – ConnectionConfigurationSet serialization

References between Objects in different Object lists are mapped using an array index field for the related structure array. For example, the AutomationComponentConfigurationDataType has ServerAddressIndex that contains an index into the ServerAddress in the ConnectionConfigurationSetConfDataType. Indices are defined as Int32; a negative number indicates no Reference exists.

OPC UA uses Namespaces, and in a defined scope, all identifiers (NodeId, QualifiedName) use a NamespaceIndex instead of a NamespaceUri. The scope has a NamespaceArray with URIs where the NamespaceIndex is defined as an index into this array. For a Server, the scope is the complete Server. For a UANodeSet XML file, it is the file.

A ConnectionConfigurationSet (see 6.8.2) contains node identifiers related to different scopes, as illustrated in Figure F.2. In this illustration, the ConnectionConfigurationSet contains information for two different Servers. Node identifiers in the Information Model for the ConnectionManager (i.e., an instance of ConnectionConfigurationSetType) use PortableNodeIdentifier (see 10.32) to support the resolution for the dedicated scope (see also 13.3).

image151.png

Figure F.2 – Scopes within a ConnectionConfigurationSet

To reduce the overall size of the DataTypes defined in this Clause (i.e. ConnectionConfigurationSetConfDataType), NodeId, AliasName and RelativePath are used instead of their portable version. The scope of those identifiers is defined by the related ServerAddressConfDataType structure containing a Namespace array. The NamespaceIndex of a node identifier is used as an index into the Namespace array of the related ServerAddressConfDataType.

A ConnectionManager can map NodeId and RelativePath  contained in the DataTypes to their portable versions using the NamespaceUri from the Namespace array when it loads the ConnectionConfigurationSet from the data structure.

There is no generic DataType defined to represent a SelectionListType Variable. A generic definition would create additional overhead since the values may have different DataTypes.

To simplify the handling of SelectionListType, each Variable that is of SelectionListType is mapped to:

  • A Structure field with the corresponding DataType representing the current value. The field name is constructed from the Variable name (<Variable name>).
  • A Structure field with an array of the corresponding DataType representing the additional selection options (selectable values associated with the selection list – the list may contain only the current value if this selection list currently does not provide for modifications). The field name is constructed from the Variable name with ‘Selection’ suffix (<Variable name>Selection).
  • A Structure field with DataType Boolean indicates if the list of selectable values is enterable by a Client. The field is omitted if the specification requires that RestrictToList is set to TRUE (i.e. no values can be entered; only a selection is possible). The field name is constructed from the Variable name with ‘Modify’ suffix (<Variable name>Modify).

Structured DataTypes may only be extended by subtyping. This is a problem if Structures are embedded into other Structures, e.g., the ConnectionConfigurationSet-related Structure has an array of AutomationComponent related Structures. Therefore, each Structure has an additional field with an array of KeyValuePairs that may be used for potential future standardized or vendor-specific extensions.

ConnectionConfiguration and communication flow-related configuration Structures use Structures with optional fields to handle the optional Variables.

In other configuration Structures, AllowSubtypes is needed. Since AllowSubtypes cannot be combined with IsOptional, optional handling is done with empty arrays or null values for the used DataType.

This Structure DataType is used to hold the information for a ConnectionConfigurationSet.

It is semantically equivalent to the ConnectionConfigurationSetType as defined in 6.8.2 with the exception that the elements ConnectionConfigurationSetStateMachine, Edit, and Lock as defined in the ConnectionConfigurationSetType are not part of this DataType. If this DataType is converted to an Object, the ConnectionConfigurationSetStateMachine shall be in State Ready, the Edit shall be set to False, and the Lock shall be assigned to the ConnectionManager.

The ConnectionConfigurationSetConfDataType is formally defined in Table F.1.

Table F.1 – ConnectionConfigurationSetConfDataType structure

Name

Type

Description

Allow Subtypes

ConnectionConfigurationSetConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

BrowseName

0:String

String part of the BrowseName of the ConnectionConfigurationSet.

False

ConnectionConfigurationSetFolder

0:String[]

Optional path of the ConnectionConfigurationSet folder used to group ConnectionConfigurationSets where each entry in the String array represents one level in the folder hierarchy.

If no grouping is needed, the parameter is a null or empty String array.

False

Connections

4:ConnectionConfigurationConfDataType[]

A list of Connection configurations to be established.

False

CommunicationFlows

4:CommunicationFlowConfigurationConfDataType[]

A list of communication model-specific configurations to apply to Connections.

True

ServerAddresses

4:ServerAddressConfDataType[]

A list of addressing information for AutomationComponents.

False

AutomationComponentConfigurations

4:AutomationComponentConfigurationConfDataType[]

A list of AutomationComponents used for Connection establishment.

False

RollbackOnError

0:Boolean

Indicates the behaviour that should be followed when there is an error on Connection establishment. If this Property is TRUE and an error occurs during the Connection establishment sequence, processing of the set will stop, and all established Connections that are part of this set shall be closed.

False

SecurityKeyServer

4:SecurityKeyServerAddressConfDataType

The location of the SKS to be used for PubSub security configuration of this ConnectionConfigurationSet, including SecurityGroups and PubSubKeyPushTargets.

If the optional SKS configuration is to be omitted, the field shall be set to null.

False

Version

0:UInt32

The version of the ConnectionConfigurationSet.

False

ConnectionConfigurationSetProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the ConnectionConfigurationSet.

False

The ConnectionConfigurationSetConfDataType representation in the AddressSpace is formally defined in Table F.2.

Table F.2 – ConnectionConfigurationSetConfDataType definition

Attribute

Value

BrowseName

4:ConnectionConfigurationSetConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This Structure DataType holds the information for a Connection configuration.

It is semantically equivalent to the ConnectionConfigurationType as defined in 6.10.2, except that the element ProcessingResult, as defined in the ConnectionConfigurationType, is not part of this DataType. If this DataType is converted to an Object, the ProcessingResult shall be set to Good.

The ConnectionConfigurationConfDataType is formally defined in Table F.3.

Table F.3 – ConnectionConfigurationConfDataType structure

Name

Type

Description

Optional

ConnectionConfigurationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

BrowseName

0:String

BrowseName of the ConnectionConfiguration

False

Endpoint1

4:ConnectionEndpointConfigurationConfDataType

The configuration information for the first endpoint of the Connection.

False

Endpoint2

4:ConnectionEndpointConfigurationConfDataType

The configuration information for the optional second endpoint of the Connection.

True

ConnectionProperties

0:KeyValuePair[]

The KeyValuePair array provides additional optional properties to configure the ConnectionConfigurationSet.

True

The ConnectionConfigurationConfDataType representation in the AddressSpace is formally defined in Table F.4.

Table F.4 – ConnectionConfigurationConfDataType definition

Attribute

Value

BrowseName

4:ConnectionConfigurationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This Structure DataType holds the information for a ConnectionEndpoint configuration, including its parameters.

It is semantically equivalent to the ConnectionEndpointConfigurationType as defined in 6.11.2 and the ConnectionEndpointParameterType as defined in 6.12.2.

The ConnectionEndpointConfigurationConfDataType is formally defined in Table F.5.

Table F.5 – ConnectionEndpointConfigurationConfDataType structure

Name

Type

Description

Optional

ConnectionEndpointConfigurationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

FunctionalEntityNode

4:NodeIdentifier

FunctionalEntityNode specifies the identifier of the FunctionalEntity to configure for the Connection.

If a RelativePath is specified, the path shall be relative to FxRoot.

False

FunctionalEntityNodeSelection

4:NodeIdentifier[]

Selection list options for FunctionalEntityNode.

True

FunctionalEntityNodeModify

0:Boolean

Flag indicating if the FunctionalEntityNode options can be modified.

True

Name

0:String

BrowseName of the ConnectionEndpoint to create in the AutomationComponent.

False

NameSelection

0:String[]

Selection list options for the endpoint name.

True

NameModify

0:Boolean

Flag indicating if the Name options can be modified.

True

ConnectionEndpointTypeId

0:NodeId

ConnectionEndpointTypeId specifies the well-known NodeId of the type definition, which shall be used to create the ConnectionEndpoint. This can be any of the subtypes of the ConnectionEndpointType (for example, PubSubConnectionEndpointType).

False

InputVariableIds

4:NodeIdentifier[]

InputVariableIds specifies a list of node identifiers to be used as inputs. If InputVariableIds is present, it shall contain at least one element.

If the array is null or empty, the optional InputVariableIds node is not available.

If a RelativePath is specified, the path shall be relative to the FunctionalEntityNode specified in the ConnectionEndpointConfigurations.

True

OutputVariableIds

4:NodeIdentifier[]

OutVariableIds specifies a list of node identifiers to be used as outputs. If OutputVariableIds is present, it shall contain at least one element.

If the array is null or empty, the optional OutputVariableIds node is not available.

If a RelativePath is specified, the path shall be relative to the FunctionalEntityNode specified in the ConnectionEndpointConfigurations.

True

IsPersistent

0:Boolean

IsPersistent, if TRUE, specifies the created ConnectionEndpoint shall be persistent.

False

CleanupTimeout

0:Duration

CleanupTimeout specifies the value to be used for the clean-up timeout. A negative number indicates an infinite timeout. A zero indicates an immediate clean-up.

False

IsPreconfigured

0:Boolean

IsPreconfigured, if TRUE, specifies the ConnectionEndpoint is preconfigured.

False

CommunicationLinks

0:Structure

CommunicationLinks specifies the configuration data related to this ConnectionEndpoint within the CommunicationModelConfiguration.

If this field is set, it shall contain a subtype of 2:Communication LinkConfigurationDataType.

True

PreconfiguredPublishedDataSet

0:String

If it is not an empty string, it specifies the name of a preconfigured PublishedDataSet to be used for connecting the OutputVariables.

True

PublishedDataSetData

0:PublishedDataSetDataType

If not null, specifies a PublishedDataSet to be used for connecting the OutputVariables.

True

PreconfiguredSubscribedDataSet

0:String

If it is not an empty string, it specifies the name of a preconfigured StandaloneSubscribedDataSet to be used for connecting the InputVariables.

True

SubscribedDataSetData

0:StandaloneSubscribedDataSetDataType

If not null, specifies a SubscribedDataSet to be used for connecting the InputVariables.

True

ExpectedVerificationVariables

NodeIdentifierValuePair[]

Specifies the Variables and values to be verified.

If a RelativePath is specified as Key, the path shall be relative to FunctionalEntityNode.

If the array is null or empty or the field is not present, no Variables are verified.

True

ControlGroups

NodeIdentifier[]

Specifies the ControlGroups to be controlled.

If a RelativePath is specified as Key, the path shall be relative to FunctionalEntityNode.

If the array is null or empty or the field is not present, no ControlGroups are controlled.

True

ConfigurationData

NodeIdentifierValuePair[]

Specifies the parameters to apply for the configuration of the FunctionalEntityNode.

If a RelativePath is specified as Key, the path shall be relative to FunctionalEntityNode.

If the array is null or empty or the field is not present, no parameters are set.

True

EndpointProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the endpoint.

True

AutomationComponentIndex

0:Int32

Reference to the related AutomationComponent in the AutomationComponentConfigurations array of the connection set structure.

False

OutboundFlowIndex

0:Int32

Reference to the related communication flow in the CommunicationFlows array of the connection set structure.

Any negative number indicates that no outbound is configured.

True

InboundFlowIndex

0:Int32 [2]

Reference to the related communication flow in the CommunicationFlows array (Publisher configuration) of the connection set structure (first index in the array) and to the contained SubscriberConfiguration (second in index in the array).

True

The ConnectionEndpointConfigurationConfDataType representation in the AddressSpace is formally defined in Table F.6.

Table F.6 – ConnectionEndpointConfigurationConfDataType definition

Attribute

Value

BrowseName

4:ConnectionEndpointConfigurationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This abstract Structure DataType holds the information for an information flow.

It is semantically equivalent to the CommunicationFlowConfigurationType as defined in 6.13.2.

The CommunicationFlowConfigurationConfDataType is formally defined in Table F.7.

Table F.7 – CommunicationFlowConfigurationConfDataType structure

Name

Type

Description

Optional

CommunicationFlowConfigurationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

BrowseName

0:String

BrowseName of the information flow.

False

FlowProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the flow.

True

The CommunicationFlowConfigurationConfDataType representation in the AddressSpace is formally defined in Table F.8.

Table F.8 – CommunicationFlowConfigurationConfDataType definition

Attribute

Value

BrowseName

4:CommunicationFlowConfigurationConfDataType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This Structure DataType contains the configuration needed for both the publishing and subscribing of an information flow.

It is semantically equivalent to the PubSubCommunicationFlowConfigurationType as defined in 6.13.2.

The PubSubCommunicationFlowConfigurationConfDataType is formally defined in Table F.9.

Table F.9 – PubSubCommunicationFlowConfigurationConfDataType structure

Name

Type

Description

Optional

PubSubCommunicationFlowConfigurationConfDataType

Structure

Subtype of CommunicationFlowConfigurationConfDataType defined in F.1.4

Address

4:AddressSelectionDataType

Address specifies the destination network address to be used for transmission of NetworkMessages by the Publisher of the information flow.

True

TransportProfileUri

0:String

Optional TransportProfileUri specifies the transport protocol mapping and the message mapping to be used. If TransportProfileUri is omitted, the default transport protocol for the Address shall be used.

True

TransportProfileUriSelection

0:String[]

Selection list options for TransportProfileUri.

True

TransportProfileUriModify

0:Boolean

Flag indicating if the TransportProfileUri options can be modified.

True

HeaderLayoutUri

0:String

Optional HeaderLayoutUri specifies the UADP header formats for both NetworkMessages and DataSetMessages. If HeaderLayoutUri is omitted, a fixed layout for periodic data shall be used.

True

HeaderLayoutUriSelection

0:String[]

Selection list options for HeaderLayoutUri.

True

HeaderLayoutUriModify

0:Boolean

Flag indicating if the HeaderLayoutUri options can be modified.

True

PublishingInterval

0:Duration

PublishingInterval specifies the interval to be used for publishing NetworkMessages.

True

PublishingIntervalSelection

0:Duration[]

Selection list options for PublishingInterval.

True

PublishingIntervalModify

0:Boolean

Flag indicating if the PublishingInterval options can be modified.

True

Qos

4:CommunicationFlowQosDataType

The optional Qos specifies the Quality of Service to be used for the information flow.

True

QosSelection

4:CommunicationFlowQosDataType[]

Selection list options for Qos.

True

QosModify

0:Boolean

Flag indicating if the Qos options can be modified.

True

SecurityMode

0:MessageSecurityMode

The optional SecurityMode specifies the security mode to be used for the information flow.

True

SecurityModeSelection

0:MessageSecurityMode[]

Selection list options for SecurityMode.

True

SecurityModeModify

0:Boolean

Flag indicating if the SecurityMode options can be modified.

True

SecurityGroupId

0:String

The optional SecurityGroupId specifies the security group to be used for the information flow.

True

SecurityGroupIdSelection

0:String[]

Selection list options for SecurityGroupId.

True

SecurityGroupIdModify

0:Boolean

Flag indicating if the SecurityGroupId options can be modified.

True

SubscriberConfigurations

4:SubscriberConfigurationConfDataType[]

Defines the configuration for Subscriber(s) of the information flow.

True

The PubSubCommunicationFlowConfigurationConfDataType representation in the AddressSpace is formally defined in Table F.10.

Table F.10 – PubSubCommunicationFlowConfigurationConfDataType definition

Attribute

Value

BrowseName

4:PubSubCommunicationFlowConfigurationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 4:CommunicationFlowConfigurationConfDataType defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This structure DataType describes the Subscriber-specific information for the Subscriber of an information flow.

It is semantically equivalent to the SubscriberConfigurationType as defined in 6.13.3.3.

The SubscriberConfigurationConfDataType is formally defined in Table F.11.

Table F.11 – SubscriberConfigurationConfDataType structure

Name

Type

Description

Optional

SubscriberConfigurationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

BrowseName

0:String

BrowseName of the flow.

False

Address

4:AddressSelectionDataType

Address specifies the network address to be used for the reception of NetworkMessages at the Subscriber of the information flow.

True

MessageReceiveTimeout

0:Duration

MessageReceiveTimeout specifies the maximum acceptable time between DataSetMessages received by the Subscriber.

False

MessageReceiveTimeoutSelection

0:Duration[]

Selection list options for MessageReceiveTimeout.

True

MessageReceiveTimeoutModify

0:Boolean

Flag indicating if the MessageReceiveTimeout options can be modified.

True

ReceiveQos

4:ReceiveQosSelectionDataType

The optional ReceiveQos specifies the Quality of Service to be used for the Subscriber of the information flow. It shall only be present if Qos is present in the parent Object.

True

SubscriberProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the flow.

True

The SubscriberConfigurationConfDataType representation in the AddressSpace is formally defined in Table F.12.

Table F.12 – SubscriberConfigurationConfDataType definition

Attribute

Value

BrowseName

4:SubscriberConfigurationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This Structure DataType holds the information related to the AutomationComponent participating in a Connection.

It is semantically equivalent to the AutomationComponentConfigurationType as defined in 6.13.2.

The AutomationComponentConfigurationConfDataType is formally defined in Table F.13.

Table F.13 – AutomationComponentConfigurationConfDataType structure

Name

Type

Description

Allow Subtypes

AutomationComponentConfigurationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

BrowseName

0:String

BrowseName of the AutomationComponent.

False

AutomationComponentNode

4:NodeIdentifier

AutomationComponentNode specifies the AutomationComponent that is to be used for establishing Connections. If a RelativePath is specified, the path shall be relative to FxRoot.

False

AutomationComponentNodeSelection

4:NodeIdentifier[]

Selection list options for AutomationComponentNode.

False

AutomationComponentNodeModify

0:Boolean

Flag indicating if the AutomationComponentNode options can be modified.

False

CommandBundleRequired

0:Boolean

CommandBundleRequired, when TRUE, specifies that the ConnectionManager shall bundle commands to this AutomationComponent.

False

AssetVerification

4:AssetVerificationConfDataType[]

The Asset verification parameters for Assets associated with the AutomationComponent. If the optional AssetVerification is not available, the field is null.

False

CommunicationModelConfig

4:CommunicationModelConfigurationDataType

Provides the ConfigurationData specific to the communication model utilized by the Connections. If the optional CommunicationModelConfig is to be omitted, the field shall be set to null.

True

AutomationComponentProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the AutomationComponent.

False

ServerAddressIndex

0:Int32

Reference to the related Server in the ServerAddresses array of the connection set structure.

False

The AutomationComponentConfigurationConfDataType representation in the AddressSpace is formally defined in Table F.14.

Table F.14 – AutomationComponentConfigurationConfDataType definition

Attribute

Value

BrowseName

4:AutomationComponentConfigurationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This Structure DataType holds the information for the SecurityKeyServer.

The SecurityKeyServerAddressConfDataType is formally defined in Table F.15.

Table F.15 – SecurityKeyServerAddressConfDataType structure

Name

Type

Description

Optional

SecurityKeyServerAddressConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

Address

0:UriString

Address is specified as a DiscoveryUrl of the server to connect to for connection establishment.

False

AddressSelection

0:UriString[]

Selection list options for Address.

True

AddressModify

0:Boolean

Flag indicating if the Address options can be modified.

True

SecurityPolicyUri

0:String

SecurityPolicyUri is a string that contains the security policy to use when establishing the secure communication.

False

SecurityPolicyUriSelection

0:String[]

Selection list options for SecurityPolicyUri.

True

SecurityPolicyUriModify

0:Boolean

Flag indicating if the SecurityPolicyUri options can be modified.

True

ServerUri

0:UriString

ServerUri is a string that reflects the ApplicationUri of the Server. It can be used to cryptographically verify the Server.

The ServerUri can also be a null string, in which case it will not be used to validate the Server.

False

ServerUriSelection

0:UriString[]

Selection list options for ServerUri.

True

ServerUriModify

0:Boolean

Flag indicating if the ServerUri options can be modified.

True

UsePushModel

0:Boolean

If TRUE, use the SKS push model. If FALSE, use the SKS pull model.

False

SecurityGroups

0:SecurityGroupDataType[]

Defines the security groups to be applied at the SKS for PubSub security configuration of this ConnectionConfigurationSet.

True

PubSubKeyPushTargets

0:PubSubKeyPushTargetDataType[]

Defines the push key targets to be applied at the SKS for PubSub security configuration of this ConnectionConfigurationSet.

True

SksProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the SecurityKeyServer.

True

The SecurityKeyServerAddressConfDataType representation in the AddressSpace is formally defined in Table F.16.

Table F.16 – SecurityKeyServerAddressConfDataType definition

Attribute

Value

BrowseName

4:SecurityKeyServerAddressConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This Structure DataType holds the information for the Server address.

It is semantically equivalent to the ServerAddressType as defined in 9.2.2, except that the field Namespaces is added to the ServerAddressConfDataType. For the handling of this field, see F.1.2.2.

The ServerAddressConfDataType is formally defined in Table F.17.

Table F.17 – ServerAddressConfDataType structure

Name

Type

Description

Optional

ServerAddressConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

BrowseName

0:String

BrowseName of the Server address.

False

Address

0:UriString

Address is specified as a DiscoveryUrl of the server to connect to for connection establishment.

False

AddressSelection

0:UriString[]

Selection list options for Address.

True

AddressModify

0:Boolean

Flag indicating if the Address options can be modified.

True

SecurityMode

0:MessageSecurityMode

SecurityMode is the MessageSecurityMode to be used for establishing a secure communication to the Address.

False

SecurityModeSelection

0:MessageSecurityMode[]

Selection list options for SecurityMode.

True

SecurityModeModify

0:Boolean

Flag indicating if the SecurityMode options can be modified.

True

SecurityPolicyUri

0:String

SecurityPolicyUri is a string that contains the security policy to use when establishing the secure communication.

False

SecurityPolicyUriSelection

0:String[]

Selection list options for SecurityPolicyUri.

True

SecurityPolicyUriModify

0:Boolean

Flag indicating if the SecurityPolicyUri options can be modified.

True

ServerUri

0:UriString

ServerUri is a string that reflects the ApplicationUri of the Server. It can be used to cryptographically verify the Server.

The ServerUri can also be a null string, in which case it will not be used to validate the Server.

False

ServerUriSelection

0:UriString[]

Selection list options for ServerUri.

True

ServerUriModify

0:Boolean

Flag indicating if the ServerUri options can be modified.

True

ServerProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the Server.

True

Namespaces

0:String[]

Namespace table for translation of NodeIds and RelativePaths related to this Server.

For further details, see F.1.2.2.

False

The ServerAddressConfDataType representation in the AddressSpace is formally defined in Table F.18.

Table F.18 – ServerAddressConfDataType definition

Attribute

Value

BrowseName

4:ServerAddressConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

The AssetVerificationDataConfType is used to store the information needed for Asset verification.

It is semantically equivalent to the AssetVerificationType as defined in 6.15.2.

The AssetVerificationConfDataType is formally defined in Table F.19.

Table F.19 – AssetVerificationConfDataType structure

Name

Type

Description

Optional

AssetVerificationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

AssetToVerify

4:NodeIdentifier

Specifies the expected Asset to be verified.

If a RelativePath is specified, the path shall be relative to AutomationComponentNode.

False

VerificationMode

2:AssetVerificationModeEnum

The mode to use for the verification (compatibility and/or identity).

False

ExpectedVerificationResult

2:AssetVerificationResultEnum

The expected level of compatibility that this Asset shall provide

False

ExpectedVerificationVariables

4:NodeIdentifierValuePair[]

The variables to be verified for compatibility and/or identity.

If a RelativePath is specified, the path shall be relative to the expected Asset.

False

ExpectedAdditionalVerificationVariables

4:NodeIdentifierValuePair[]

The additional variables to be verified for compatibility and/or identity.

If a RelativePath is specified, the path shall be relative to the expected Asset.

False

AssetProperties

0:KeyValuePair[]

The KeyValuePair array provides additional configuration properties for the Asset verification.

True

The AssetVerificationConfDataType representation in the AddressSpace is formally defined in Table F.20.

Table F.20 – AssetVerificationConfDataType definition

Attribute

Value

BrowseName

4:AssetVerificationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

The CommunicationModelConfigurationDataType is formally defined in Table F.21.

It is semantically equivalent to the CommunicationModelConfigurationType as defined in 6.16.2.

Table F.21 – CommunicationModelConfigurationDataType structure

Name

Type

Description

CommunicationModelConfigurationDataType

Structure

Subtype of Structure defined in OPC 10000-5

The CommunicationModelConfigurationDataType representation in the AddressSpace is formally defined in Table F.22.

Table F.22 – CommunicationModelConfigurationDataType definition

Attribute

Value

BrowseName

4:CommunicationModelConfigurationDataType

IsAbstract

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

The PubSubCommunicationModelConfigurationDataType is formally defined in Table F.23.

It is semantically equivalent to the PubSubCommunicationModelConfigurationType as defined in 6.16.3.2.

Table F.23 – PubSubCommunicationModelConfigurationDataType structure

Name

Type

Description

PubSubCommunicationModelConfigurationDataType

Structure

Subtype of CommunicationModelConfigurationDataType defined in F.1.13.

PubSubConfiguration

0:PubSubConfiguration2DataType

PubSub configuration for the addressed Server when establishing Connections.

TranslationTable

4:NodeIdTranslationDataType[]

NodeIds contained in the PubSubConfiguration, which use the special namespace “http://opcfoundation.org/UA/FX/CM/Translation/”, are not valid NodeIds but placeholders which shall be resolved before the ConnectionManager can use the PubSubConfiguration for connection establishment.

ConfigurationReferences

0:PubSubConfigurationRefDataType[]

ConfigurationReferences points to elements within the PubSubConfiguration and indicates whether they are to be added, matched, modified, or removed.

The PubSubCommunicationModelConfigurationDataType representation in the AddressSpace is formally defined in Table F.24.

Table F.24 – PubSubCommunicationModelConfigurationDataType definition

Attribute

Value

BrowseName

4:PubSubCommunicationModelConfigurationDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of CommunicationModelConfigurationDataType defined in F.1.13

ConformanceUnits

UAFX ConnectionManager Configuration

The NodeIdentifier is used to store an identifier, where the identifier can be NodeId, Alias String, or a RelativePath.

It is semantically equivalent to the PortableNodeIdentifier as defined in 10.32, except it uses the optimization as described in F.1.2.2.

The NodeIdentifier DataType is formally defined in Table F.25.

Table F.25 – NodeIdentifier union

Name

Type

Description

NodeIdentifier

Union

Subtype of Union defined in OPC 10000-5

Node

0:NodeId

The NodeId of the Node.

The NamespaceIndex of the NodeId relates to the Namespaces in the ServerAddressConfDataType (see F.1.11) of the related Server.

Alias

0:String

The AliasName of the Node.

IdentifierBrowsePath

0:RelativePath

The IdentifierBrowsePath to the Node. The starting Node of the IdentifierBrowsePath shall be specified where this type is used.

A NamespaceIndex in the RelativePath relates to the Namespaces in the ServerAddressConfDataType (see F.1.11) of the related Server.

The NodeIdentifier representation in the AddressSpace is formally defined in Table F.26.

Table F.26 – NodeIdentifier definition

Attribute

Value

BrowseName

4:NodeIdentifier

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Union defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

The NodeIdentifierValuePair is used to provide a key-value pair where the key is a Variable Node.

It is semantically equivalent to the PortableKeyValuePair as defined in 10.31 with the optimization as described in F.1.2.2.

The NodeIdentifierValuePair DataType is formally defined in Table F.27.

Table F.27 – NodeIdentifierValuePair structure

Name

Type

Description

NodeIdentifierValuePair

Structure

Subtype of Structure defined in OPC 10000-5

Key

4:NodeIdentifier

The Key to the Variable.

ArrayIndex

0:UInt32[]

If Key refers to a Variable with ValueRank >= 1, the ArrayIndex specifies the index for a specific value referenced by Key (Not the entire array, but a specific element in it). The ArrayIndex is required to have the same dimension as the dimension of the node.

If Key is not of array type, or if no specific index shall be referenced, then the array shall be null or empty.

Value

0:BaseDataType

The value associated with the key/array item.

The NodeIdentifierValuePair representation in the AddressSpace is formally defined in Table F.28.

Table F.28 – NodeIdentifierValuePair definition

Attribute

Value

BrowseName

4:NodeIdentifierValuePair

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

This NodeIdTranslationConfDataType is used to provide table entries for conversion of NodeId to NodeIdentifier (see F.1.15).

It is semantically equivalent to the NodeIdTranslationDataType as defined in 10.29 with the optimization as described in F.1.2.2.

The NodeIdTranslationConfDataType is formally defined in Table F.29.

Table F.29 – NodeIdTranslationConfDataType structure

Name

Type

Description

NodeIdTranslationConfDataType

Structure

Subtype of Structure defined in OPC 10000-5

NodePlaceholder

0:NodeId

NodeId to be converted to the result of resolving the NodeIdentifier.

Node

4:NodeIdentifier

Specifies the NodeIdentifier corresponding to the NodeId of the NodePlaceholder.

The NodeIdTranslationConfDataType representation in the AddressSpace is formally defined in Table F.30.

Table F.30 – NodeIdTranslationConfDataType definition

Attribute

Value

BrowseName

4:NodeIdTranslationConfDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

The AddressSelectionDataType holds the selection list for a network address (see F.1.2.3). It allows the address selection to be optional, where this DataType is used (see F.1.7 and F.1.8).

The AddressSelectionDataType is formally defined in Table F.31.

Table F.31 – AddressSelectionDataType structure

Name

Type

Description

Allow Subtypes

AddressSelectionDataType

Structure

Subtype of Structure defined in OPC 10000-5

Address

0:NetworkAddressDataType

Network address configured.

True

AddressSelection

0:NetworkAddressDataType[]

Selection list options for Address.

True

AddressModify

0:Boolean

Flag indicating if the Address options can be modified.

False

The AddressSelectionDataType representation in the AddressSpace is formally defined in Table F.32.

Table F.32 – AddressSelectionDataType definition

Attribute

Value

BrowseName

4:AddressSelectionDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

The ReceiveQosSelectionDataType holds the selection list for a receive QoS configuration (see F.1.2.3). It allows making the receive QoS selection optional, where this DataType is used (see F.1.7 and F.1.8).

The ReceiveQosSelectionDataType is formally defined in Table F.33.

Table F.33 – ReceiveQosSelectionDataType structure

Name

Type

Description

Allow Subtypes

ReceiveQosSelectionDataType

Structure

Subtype of Structure defined in OPC 10000-5

ReceiveQos

0:ReceiveQosDataType[]

The ReceiveQos configuration.

True

ReceiveQosSelection

0:BaseDataType

Selection list options for ReceiveQos. The field will contain a matrix of subtypes of ReceiveQosDataType. If the field is not provided, it is null.

False

ReceiveQosModify

0:Boolean

Flag indicating if the ReceiveQos options can be modified.

False

The ReceiveQosSelection is of BaseDataType and thus requires a subtype to be used. The flag AllowSubtypes is only set if the type can be used as well as subtypes.

The ReceiveQosSelectionDataType representation in the AddressSpace is formally defined in Table F.34.

Table F.34 – ReceiveQosSelectionDataType definition

Attribute

Value

BrowseName

4:ReceiveQosSelectionDataType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the 0:Structure defined in OPC 10000-5

ConformanceUnits

UAFX ConnectionManager Configuration

If ConnectionConfigurationSets are stored in a File, the UABinaryFileDataType and the related definitions in OPC 10000-5 shall be used to encode the file content. The structure of the UABinaryFileDataType file is illustrated in Table F.35. Its Body contains an array of ConnectionConfigurationSetConfDataType or a subtype of it.

Table F.35 – ConnectionConfigurationSet file content

Field

Type

Typical Values

Namespaces

String[]

Contains the namespaces used for the data that is contained in the Body of the File.

As a minimum, the http://opcfoundation.org/UA/ and http://opcfoundation.org/UA/FX/CM/ namespace shall be included.

structureDataTypes

StructureDescription[]

Null or empty

DataTypes used for configuration are defined by OPC UA FX.

enumDataTypes

EnumDescription[]

Null or empty

DataTypes used for configuration are defined by OPC UA FX.

simpleDataTypes

SimpleTypeDescription[]

Null or empty

DataTypes used for configuration are defined by OPC UA FX.

schemaLocation

String

Null or empty

fileHeader

KeyValuePair[]

Null or empty

Body

BaseDataType[]

An array of ConnectionConfigurationSetConfDataType.

This ObjectType represents a FileType that can be used to maintain ConnectionConfigurationSets. The content of this File shall correspond to F.2.

Reading the File allows the retrieval of the contents of the ConnectionConfigurationSets Folder of a ConnectionManager with one operation; writing it allows to add, remove, or replace ConnectionConfigurationSets.

The ConnectionManagerConfigurationType is formally defined in Table F.36.

Table F.36 – ConnectionManagerConfigurationType definition

Attribute

Value

BrowseName

4:ConnectionManagerConfigurationType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of FileType defined in OPC 10000-20.

HasComponent

Method

4:CloseAndUpdate

Defined in F.3.2.

Mandatory

Conformance Units

UAFX ConnectionManager Configuration

The standard Open Method is used for file operations, but this specification does impose security restrictions. The Open Method shall not support modes other than Read (0x01) and Write + EraseExisting (0x06). The Client shall be authorized to modify the configuration for the ConnectionManager functionality when invoking this Method on the Server with modes Write + EraseExisting (0x06). For this mode, it is recommended that this Method be restricted to Client connections that have the well-known Role ConfigureAdmin (see 5.9).

This Method closes the File and applies updates to the ConnectionConfigurationSets. It can only be called if the File was opened for writing. If the Close Method is called, any cached data is discarded, and the ConnectionManager configuration is not changed.

The file content shall be a UABinaryFileDataType as defined in Table F.35.Table F.41

The Client shall be authorized to modify the configuration for the ConnectionManager functionality when invoking this Method on the Server. It is recommended that this Method be restricted to Client connections that have the well-known Role ConfigureAdmin (see 5.9). If the file also contains SKS configuration, then it is recommended that the Client also have the well-known Role SecurityKeyServerAdmin (see OPC 10000-14).

The signature of the Method is described below, and the arguments are described in Table 37.

Signature

CloseAndUpdate (

[in]UInt32 FileHandle,

[in]Boolean RequireCompleteUpdate,

[in] ConnectionConfigurationSetOperation[] Operations,

[out]Boolean ChangesApplied,

[out]StatusCode[] OperationResults,

[out]NodeId[] ConfigurationObjects

);

Table F. 37 – CloseAndUpdate Arguments

Argument

Description

FileHandle

The handle of the previously opened file.

RequireCompleteUpdate

If TRUE, the modification is only applied if all changes can be applied to all objects.

Operations

Defines the operations to apply to a ConnectionManager’s ConnectionConfigurationSets for the array of ConnectionConfigurationSetConfDataType elements in the written file.

The length of the array and the order of its elements shall match the array of ConnectionConfigurationSetConfDataType in the written file.

ChangesApplied

If TRUE and RequireCompleteUpdate was set to TRUE, all changes were applied.

If TRUE and RequireCompleteUpdate was set to FALSE, one or more changes were applied.

If FALSE, no changes were applied.

Detailed errors are provided in the OperationResults argument.

OperationResults

Results of the Operations.

The length of the array and the order of its elements shall match the length and order of the Operations array.

ConfigurationObjects

NodeIds of the related Objects

If NodeIds are returned, the length of the array and the order of its elements shall match the array contained in the written file.

If the Server does not support the creation of NodeIds, the array is null or empty.

The possible Method result codes are formally defined in Table 38, and the OperationResult Element Result Codes are defined in Table 39.

Table F.38 - Method Result Codes

ResultCode

Description

Bad_TypeMismatch

The file content is not a UABinaryFileDataType with an array of ConnectionConfigurationSetConfDataType as Body.

Bad_InvalidArgument

The FileHandle is not valid.

Bad_InvalidState

The File was not opened for write access.

Bad_UserAccessDenied

The Session user is not allowed to modify the ConnectionManager configuration.

Bad_NothingToDo

The array in the Body of the File is null or empty.

Table F.39 - OperationResult Element Result Codes

ResultCode

Description

Bad_BrowseNameDuplicated

A ConnectionConfigurationSet with the BrowseName already exists in the ConnectionConfigurationSetFolder.The ConnectionConfigurationSet cannot be added.

Bad_NoMatch

A ConnectionConfigurationSet with the BrowseName does not exist in the ConnectionConfigurationSetFolder.The ConnectionConfigurationSet cannot be removed or replaced.

Bad_NothingToDo

No ConnectionConfigurationSetOperation was specified.

Bad_InvalidArgument

An invalid combination of ConnectionConfigurationSetOperation was set, or a ConnectionConfigurationSetOperation unknown to the implementation.

Bad_UserAccessDenied

The user has no permissions to modify the ConnectionConfigurationSets.

Bad_InvalidState

A ConnectionConfigurationSet with the name is currently being processed or edited. The ConnectionConfigurationSet cannot be removed or replaced.

The CloseAndUpdate Method representation in the AddressSpace is formally defined in Table F.40.

Table F.40 - CloseAndUpdate Method AddressSpace definition

Attribute

Value

BrowseName

4:CloseAndUpdate

References

Node Class

BrowseName

DataType

TypeDefinition

Other

0:HasProperty

Variable

0:InputArguments

0:Argument[]

0:PropertyType

M

0:HasProperty

Variable

0:OutputArguments

0:Argument[]

0:PropertyType

M

ConformanceUnits

UAFX AutomationComponent Base

The CloseAndUpdate Method allows to add, remove, or replace ConnectionConfigurationSets.

ConnectionConfigurationSets are addressed by BrowseName and ConnectionConfigurationSetFolder (see 6.7.2).

The ConnectionConfigurationSetOperation ElementAdd adds the ConnectionConfigurationSet to the ConnectionConfigurationSets Folder tree in the Folder specified by the ConnectionConfigurationSetFolder. If Folders on the given path do not exist, they will be created.

The operation ElementAdd does not include processing the ConnectionConfigurationSet. Processing may be triggered either by a Client using the ProcessConnectionConfigurationSets Method (see 6.7.5) or by vendor-specific means.

The ConnectionConfigurationSetOperation ElementRemove removes the ConnectionConfigurationSet from the ConnectionConfigurationSetFolder. For ElementRemove, all elements of the ConnectionConfigurationSetConfDataType except BrowseName and ConnectionConfigurationSetFolder are ignored and may be set to null or empty by the caller.

The ConnectionManager shall call the CloseConnections Method on all affected AutomationComponents (see 6.2.5) with Remove set to TRUE for all Connections contained in the ConnectionConfigurationSet.

The ConnectionConfigurationSetOperation ElementReplace replaces the ConnectionConfigurationSet in the ConnectionConfigurationSetFolder.

The ConnectionManager shall call the CloseConnections Method on all affected AutomationComponents (see 6.2.5) with Remove set to TRUE for all contained Connections in the ConnectionConfigurationSet.

The operation ElementReplace does not include processing the new ConnectionConfigurationSet. Processing may be triggered either by a Client using the ProcessConnectionConfigurationSets Method (see 6.7.5) or by vendor-specific means.

This OptionSet defines flags indicating the operation on a ConnectionConfigurationSetConfDataType. The value of the OptionSet is null if none of the bits are set.

The possible element operations are ElementAdd, ElementRemove, and ElementReplace. Only one of the element operation bits shall be set. If more than one of these bits are set, the operation shall fail.

The ConnectionConfigurationSetOperation values are formally defined in Table F.41.

Table F.41 – ConnectionConfigurationSetOperation values

Value

Bit No.

Description

ElementAdd

0

If this bit is set, the ConnectionConfigurationSet is added to the ConnectionManager configuration.

ElementRemove

1

If this bit is set, the ConnectionConfigurationSet is removed from the ConnectionManager configuration. The ConnectionConfigurationSet to be removed is identified via the string part of the BrowseName and the ConnectionConfigurationSetFolder. All other elements in the ConnectionConfigurationSetConfDataType are ignored in this case. It is recommended to set all arrays in the DataType to null or empty.

ElementReplace

2

If this bit is set, the ConnectionConfigurationSet is replaced in the ConnectionManager configuration. The ConnectionConfigurationSet to be replaced is identified via the string part of the BrowseName and the ConnectionConfigurationSetFolder.

Bits 3:7 are reserved for future use. The ConnectionConfigurationSetOperation representation in the AddressSpace is formally defined in Table F.42.

Table F.42 – ConnectionConfigurationSetOperation definition

Attribute

Value

BrowseName

4:ConnectionConfigurationSetOperation

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the Byte type defined in OPC 10000-3.

0:HasProperty

Variable

OptionSetValues

LocalizedText[]

PropertyType

ConformanceUnits

UAFX ConnectionManager Configuration