Click or drag to resize

OPC UA Meta Model in UML

Home

This topic contains the following sections:

The OPC Unified Architecture meta model is represented by UML classes and UML objects marked with the stereotype <<TypeExtension>>. Those stereotyped UML objects represent data types or reference types. The domain model can contain user-defined reference types and data types, also marked as <<TypeExtension>>. In addition, the domain model contains object types, variable types etc. represented as UML objects (see Figure 1).

The OPC Foundation specifies not only the OPC Unified Architecture meta model, but also defines some nodes to organise the Address Space and to provide information about the server as described in section Information Model.

Background of OPC UA Meta Model
Figure 1: Background of OPC UA Meta Model
Notation

An example of a UML class representing the OPC Unified Architecture concept Base node class is given in the UML class diagram in Figure 2. OPC attributes inherit from the abstract class Attribute and have a value identifying their data type. They are composed to a node either optional (0..1) or required (1), like BrowseName to BaseNode in Figure 2.

Notation (I)
Figure 2: Notation (I)

UML object diagrams are used to display <<TypeExtension>> objects (e.g. HasComponent in Figure 3). In object diagrams, OPC Attributes are represented as UML attributes without data types and marked with the stereotype <<Attribute>>, like InverseName in the UML object HasComponent. They have values, like InverseName = ComponentOf for HasComponent. To keep the object diagrams simple, not all Attributes are shown (e.g. the NodeId of HasComponent).

Notation (II)
Figure 3: Notation (II)

OPC references are represented as UML associations marked with the stereotype <<Reference>>. If a particular reference type is used, its name is used as role name; identifying the direction of the reference (e.g. Aggregates has the subtype HasComponent). For simplicity, the inverse role name is not shown (in the example SubclassOf). When no role name is provided, it means that any ReferenceType can be used (only valid for class diagrams).

There are some special attributes in OPC Unified Architecture containing a NodeId as data type and thereby referencing another node. Those attributes are represented as associations marked with the stereotype <<Attribute>>. The name of the attribute is displayed as role name of the target node.

The value of the OPC attribute BrowseName is represented by the UML object name, e.g. the BrowseName of the UML object HasComponent in Figure 3 is “HasComponent”.

To highlight the classes explained in a class diagram, they are marked grey (e.g. BaseNode in Figure 2). Only those classes have all their relationships to other classes and attributes shown in the diagram. For the other classes, we provide only those attributes and relationships needed to understand the main classes of the diagram.

Meta Model

This section contains the following subsections:

Note Note

The OPC Unified Architecture meta model can be extended by adding attributes and defining new reference types.

BaseNode

BaseNode
Figure 4: BaseNode

ReferenceType

Reference and ReferenceType
Figure 5: Reference and ReferenceType

If Symmetric is “false” and IsAbstract is “false” an InverseName shall be provided.

Predefined ReferenceTypes

Predefined ReferenceTypes
Figure 6: Predefined Reference Types

Attributes

Attributes
Figure 7: Attributes

There may be more attributes defined.

Attributes used for references, which have a NodeId as DataType, are not shown in this diagram but as stereotyped associations in the other diagrams.

Object and ObjectType

Object and ObjectType
Figure 8: Object and ObjectType

EventNotifier

EventNotifier
Figure 9: EventNotifier

Variable and VariableType

Variable and VariableType
Figure 10: Variable and VariableType

The data type (referred with DataType attribute) of a Variable shall be the same or a subtype of the data type of its VariableType (referred with HasTypeDefinition).

If a HasProperty points to a Variable from a BaseNode "A" the following constraints apply:

The Variable shall not be the source node of a HasProperty or any other HierarchicalReferences.

All variables having "A" as the source node of a HasProperty reference shall have a unique BrowseName in the context of "A".

Method

Method
Figure 11: Method

DataType

DataType
Figure 12: DataType

View

View
Figure 13: View