QuickOPC User's Guide and Reference
OPC UA Complex Data Extension
Extensions > Integrated Extensions > OPC UA Complex Data Extension

In OPC UA, servers can stick to the standard types defined in the OPC UA specifications, or they can define their own types. The "non-standard" data types can be completely server-specific, or can conform to some industry standard. Usage of these data types is commonly referred to as OPC UA complex data. With complex data, it is possible that the data type is not even know at compile time; instead, it can be discovered, constructed or processed during runtime, without prior knowledge of it.

Use of OPC UA complex data poses a new range of interoperability problems. When the server uses some new data type, how can the client know what the data type is, and how is the data encoded? The data is basically a binary blob that is transferred as a block between the server and the client, and who knows what it means? In some cases, the client can be hard-coded with upfront knowledge of what this binary blob of data (called extension object) contains and how it is encoded. But that is only when the client can be written with specific knowledge about the server it connects to, and even then decoding of the data might be a tedious programming task. Thankfully, OPC UA specifications provide ways for servers to describe the data types and their encoding to the clients, using information that can reside in the server itself. This is done 

Knowledge Base: Comparison of OPC UA complex data models .

In QuickOPC, both models work together and in a unified way from developer's perspective. OPC client can then extract the data type descriptions from these dictionaries or definitions, and be written in a generic way that adjusts to the data types that exist in the server.

Retrieving the associated metadata from the server's information model, interpreting the data type dictionaries or data type definitions, and decoding and encoding data according to data type descriptions is quite complicated. QuickOPC can do it for you, with the help of the OPC UA Complex Data extension, described in this chapter. With the OPC UA Complex Data extension, you do not have to deal with binary blobs; instead, you work with meaningful structures that represent the data types and the data itself logically.

The features discussed here, or some of them, may not be available in all editions of the product. Check the Product Editions page for differences between the editions. The trial license has all features enabled (and is limited in period for which it provides valid data), but licenses for specific commercial editions may have functionality limitations.

The OPC UA Complex Data extension integrates into the EasyUAClient Class pipeline, and its functionality is thus transparently available both to .NET and COM programming languages and tools.


See Also



Knowledge Base