OPC UA ModelDesign Cheat Sheet & Graphical Annotation

Stefan Profanter
2 min readAug 28, 2023

Summary of the most important pieces of information and advice as a quick reference for modelers.

Objects, Variables, Properties

source: https://reference.opcfoundation.org/v104/Core/docs/Part3/C.2.2/#TableC.1 (graphical representation is missing in source!)

Variables vs. Properties vs. Attribute

DataVariables can contain other Variables, Properties can not. https://reference.opcfoundation.org/v104/Core/docs/Part3/4.4.1/

Properties (and Attributes) https://reference.opcfoundation.org/v104/Core/docs/Part3/4.4.2/

DataVariables
https://reference.opcfoundation.org/v104/Core/docs/Part3/4.4.3/

As another example, function blocks in control systems might be represented as Objects. The parameters of the function block, such as its setpoints, may be represented as DataVariables. The function block Object might also have Properties that describe its execution time and its type.

Properties vs. DataVariables https://reference.opcfoundation.org/v104/Core/docs/Part3/A.4.2/

How to implement structured data

Many Variables and / or structured DataTypes https://reference.opcfoundation.org/v104/Core/docs/Part3/A.4.3/

ObjectType, VariableType and DataType

Every Object, Variable or Data has a base type and any number of instances of these types. It can be seen as Object-Oriented Programming.

You can create your own types by subtyping any existing OPC UA Types

References

source: https://reference.opcfoundation.org/v104/Core/docs/Part3/7.1/ _

source: https://reference.opcfoundation.org/v104/Core/docs/Part3/C.2.2/#TableC.2 (graphical representation is missing in source!)

Organizes ReferenceType

The source object has to be a folder or a view. https://reference.opcfoundation.org/v104/Core/docs/Part3/7.11/ _

HasChild, Aggregates and HasComponent ReferenceType

HasChild is an abstract ReferenceType https://reference.opcfoundation.org/v104/Core/docs/Part3/7.5/

Aggregates is an abstract ReferenceType https://reference.opcfoundation.org/v104/Core/docs/Part3/7.6/

Consequently, HasComponent ReferenceType ( https://reference.opcfoundation.org/v104/Core/docs/Part3/7.7/ ) should be most commonly used to hierachically structure nodes.

Visualization Tools

To create a graphical visualization of your OPC UA Model, the OPC Foundation defines different shapes and arrow types which sould be used.

You can use MS Visio and the provided Template to draw your models.
Note that on some downloadable MS Word specification files, the corresponding visual drawings are embedded Visio files.
The Template is available here as UA Shapes Visio Template
https://opcfoundation.org/guidelines-and-templates/

Alternatively, you can also use Graphviz to create a similar looking visualization.
See:

This post was migrated from https://opcua.rocks/

--

--

Stefan Profanter

I love to program and write code in various Programming Languages and am now focusing on Automating as much as Possible.