OPC UA for PROFINET Remote IO (see [

OPC RIO]) defines Channel Group Objects aggregating the IO Data of subordinated IO Channel Objects and organizing the channel Objects representing single IO Channels themselves. Figure 4 shows a Channel Group containing two output channel Objects, a configuration Object and Process Values.

image007.png

Figure 4 – RIO Channel Group

From the Clients’ perspective, certain use cases when accessing a Channel Group Object become much more convenient and less error prone if compact representations of entire Object hierarchies or single subtrees are supported by the Server.

A Client might be interested in the Process Values provided in the “Values” array and the associated Process Value Qualifiers (see [

OPC RIO]) provided in the “Qualifiers” array. When using the “ChannelGroup” Object as SerializationStartNode (see “SerializationStartNode 1” in Figure 4), the “SerializationEntity 1” Object configures the “SerializationScope 1” by limiting the Variables belonging to the SerializationScope to those connected with HasRioProcessVariable References to the SerializationStartNode.

A Client only interested in the Channel Group configuration uses a compact representation of the components of the “ChannelGroupConfig” Object. The “SerializationEntity 2” configures a separate SerializationScope. This “SerializationScope 2” is defined using the “ChannelGroupConfig” Object as SerializationStartNode (see “SerializationStartNode 2” in Figure 4). When reading the Value of the “SerializedData 2”, Clients gain access to a consistent snapshot of the Values of all Properties which are components of the “ChannelGroupConfig” Object.

A Client only interested in the IO Data provided by channel Objects and their components uses a compact representation of the “OutputChannel_1” and “OutputChannel_2” Objects. “The SerializationEntity 3” Objects configure the “SerializationScope 3” by including only Objects connected with HasRioOutputChannel ReferenceTypes to the “ChannelGroup” Object used as SerializationStartNode as shown in Figure 4. Since the “ProcessValue” and “QualifierValue” Variables are part of this compact representation, reading the IO Data of all channels aggregated by the Channel Group Object using one single read operation is possible (see 6.3.6 and A.3 for explanations). This supports time consistency of the obtained IO Data.

The compact representation of these SerializationValues can be serialized into the JSON format by applying already established OPC UA encoding rules to support web Clients also.