Figure 6illustrates the process inside a Publisherwhen creating and sending messages and the parameters required to accomplish it. The components, like DataSetcollection or DataSetWritershould be considered abstract. They may not exist in every Publisheras independent entities. However, comparable processes need to exist to generate the OPC UA PubSubmessages.
The sending process is guided by different parameters for different logical steps. The parameters define for example when and how often to trigger the sending sequence and the encoding and security of the messages. The PubSub communication parameters are defined in Clause 6.
The first step is the collection of data (DataSet) to be published. The configuration for such a collection is called PublishedDataSet. The PublishedDataSetalso defines the DataSetMetaData. Collection is a generic expression for various different options, like monitoring of Variablesin an OPC UA Server AddressSpace, processing OPC UA Events, or for example reading data from network packets. In the end, the collection process produces values for the individual fields of a DataSet. The two concrete PublishedDataSetoptions with standard OPC UA configuration are PublishedDataItemsfor Variablebase collection and PublishedEventsfor Eventbased collection.
In the next step, a DataSetWritertakes the DataSetand creates a DataSetMessage. DataSetMessagesfrom DataSetWritersin one WriterGroupcan be inserted into a single NetworkMessage. The creation of a DataSetMessage is guided by the following parameters:
- The DataSetFieldContentMask(see 22.214.171.124) controls which attributes of a value shall be encoded.
- The DataSetMessageContentMask(see 126.96.36.199.2) controls which header fields shall be encoded.
- The KeyFrameCount(see 188.8.131.52) greater than or equal to 1 controls whether a key frame or a delta frame DataSetMessageis to be created. A KeyFrameCountof 0 is used for non-cyclic PublishedDataSets,like PublishedEvents.
The resulting DataSetMessageis passed on to the next step together with the DataSetWriterId(see 184.108.40.206), the DataSetClassId(see 220.127.116.11), the ConfigurationVersionof the DataSetMetaData(see 18.104.22.168.5), and a list of values that match the configured propagated fields.
Next is the creation of the NetworkMessage. It uses the data provided from the previous step together with the PublisherId(see 22.214.171.124) defined on the PubSubConnection. The structure of this message is protocol specific. If the SecurityMode(see 126.96.36.199) requires message security, the SecurityGroupId(see 188.8.131.52) is used to fetch the SecurityPolicyand the security keys from the SKS (see 5.4.4). This information is used to encrypt and/or sign the NetworkMessageas required by the SecurityMode.