For PubSub as a communication model, OPC 10000-14 requires certain configuration values (e.g., PublisherId, WriterGroupId, and DataSetWriterId) to match the Publisher and its corresponding Subscribers. However, unique Ids may be generated by the addressed AutomationComponent and may not be known by the ConnectionManager beforehand.
Assuming a simple example, where a ConnectionManager must establish a ConnectionConfigurationSet containing logical connections between two AutomationComponents. The ConnectionManager may use the sequence illustrated in Figure E.7.
- The ConnectionManager calls EstablishConnections on AC1 using the ReserveCommunicationIdsCmd to reserve WriterGroupIds, and DataSetWriterIds for the publishing side (i.e., WriterGroups, and DataSetWriters for AC1) and to retrieve the default PublisherId. This Call will typically contain the VerifyAssetCmd and the VerifyFunctionalEntityCmd if required; all further commands for AC1 are issued in step (3).
- The ConnectionManager updates the communication configuration for AC2 regarding the subscribing side (DataSetReaders) using the Ids reserved in step (1). The ConnectionManager will set the publishing side of the communication configuration for AC2 to null Ids. The ConnectionManager calls EstablishConnections on AC2 using the SetCommunicationConfigurationCmd for adding the updated communication configuration. AC2 assigns Ids to the publishing side of the communication configuration and returns the information. This Call will typically contain all other required commands.
- The ConnectionManager updates the communication configuration for AC1 regarding the publishing side using the Ids reserved in step (1) and the subscribing side using the Ids returned from step (2). The ConnectionManager calls EstablishConnections on AC1 using the SetCommunicationConfigurationCmd to add the complete communication configuration. This Call will typically contain all further required commands.