Objects used to organise the AddressSpace structure |
This topic contains the following sections:
To promote interoperability of clients and servers, the OPC Unified ArchitectureAddress Space is structured as a hierarchy, with the top levels standardised for all servers. Figure 1 illustrates the structure of the Address Space. All Objects in this figure are organised using Organizes References and have the ObjectTypeFolderType as type definition.
The remainder of this provides descriptions of these standard Nodes and the organization of Nodes beneath them. Servers typically implement a subset of these standard Nodes, depending on their capabilities.
This standard Object is the browse entry point for the Address Space. It contains a set of Organizes References that point to the other standard Objects. The “Root” Object shall not reference any other NodeClasses.
This standard Object is the browse entry point for Views. Only Organizes References are used to relate View Nodes to the “Views” standard Object. All View Nodes in the Address Space shall be referenced by this Node, either directly or indirectly. I.e. the “Views” Object may reference other Objects using Organizes References. Those Objects may reference additional Views. Figure 2 illustrates this. The “Views” standard Object directly references the Views “View1” and “View2” and indirectly “View3” by referencing another Object called “Engineering”.
The “Views” Object shall not reference any other NodeClasses.
This standard Object is the browse entry point for Object Nodes. Figure 3 illustrates the structure beneath this Node. Only Organizes References are used to relate Objects to the “Objects” standard Object. A View Node can be used as entry point into a subset of the Address Space containing Objects and Variables and thus the “Objects“ Object can also reference View Nodes using Organizes References. The intent of the “Objects” Object is that all Objects and Variables that are not used for type definitions or other organizational purposes (e.g. organizing the Views) are accessible through hierarchical References starting from this Node. However, this is not a requirement, because not all servers may be able to support this.
The “Objects” Object shall not reference any other NodeClasses.
This standard Object Node is the browse entry point for type Nodes. Figure 1 illustrates the structure beneath this Node. Only Organizes References are used to relate Objects to the “Types” standard Object. The “Types” Object shall not reference any other NodeClasses.
This standard Object Node is the browse entry point for ObjectType Nodes. Figure 4 illustrates the structure beneath this Node showing some of the standard ObjectTypes. Only Organizes References are used to relate Objects and ObjectTypes to the “ObjectTypes” standard Object. The “ObjectTypes” Object shall not reference any other NodeClasses.
The intention of the “ObjectTypes” Object is that all ObjectTypes of the server are either directly or indirectly accessible browsing HierarchicalReferences starting from this Node. However, this is not required and servers might not provide some of their ObjectTypes because they may be well-known in the industry, such as the Server Type.
This Object also indirectly references the BaseEventType, which is the base type of all EventTypes. Thereby it is the entry point for all EventTypes provided by the server. It is required that the server expose all its EventTypes, so a client can usefully subscribe to Events.
This standard Object is the browse entry point for VariableType Nodes. Figure 5 illustrates the structure beneath this Node. Only Organizes References are used to relate Objects and VariableTypes to the “VariableTypes” standard Object. The “VariableTypes” Object shall not reference any other NodeClasses.
The intent of the “VariableTypes” Object is that all VariableTypes of the server are either directly or indirectly accessible browsing HierarchicalReferences starting from this Node. However, this is not required and servers might not provide some of their VariableTypes, because they may be well-known in the industry, such as the “BaseVariableType”.
This standard Object is the browse entry point for ReferenceType Nodes. Figure 6 illustrates the organization of ReferenceTypes. Organizes References are used to define ReferenceTypes and Objects referenced by the “ReferenceTypes” Object. The “ReferenceTypes” Object shall not reference any other NodeClasses. See Standard Reference Types for a discussion of the standard ReferenceTypes that appear beneath the “ReferenceTypes” Object.
Since ReferenceTypes will be used as filters in the browse Service and in queries, the server shall provide all its ReferenceTypes, directly or indirectly following hierarchical References starting from the “ReferenceTypes” Object. This means that, whenever the client follows a Reference, the server shall expose the type of this Reference in the ReferenceType hierarchy. It shall provide all ReferenceTypes so that the client would be able, following the inverse subtype of References, to come to the base References ReferenceType. It does not mean that the server shall expose the ReferenceTypes that the client has not used any Reference of.
This standard Object is the browse entry point for DataTypes that the server wishes to expose in the Address Space. The standard Object uses Organizes References to reference Objects of the DataTypeSystemType representing DataTypeSystems. Referenced by those Objects are data type dictionaries that refer to their data type descriptions. However, it is not required to provide the DataTypeSystem objects, and the data type dictionary need not to be provided.
Because data types are not related to data type descriptions using hierarchical references, DataType Nodes should be made available using Organizes References pointing either directly from the “DataTypes” Object to the DataType Nodes or using additional Folder Objects for grouping purposes. The intent is that all DataTypes of the server exposed in the Address Space are accessible following hierarchical References starting from the “DataTypes” Object. However, this is not required.
Figure 7 illustrates this hierarchy using the “OPC Binary” and “XML Schema” standard DataTypeSystems as examples. Other DataTypeSystems may be defined under this Object.
Each DataTypeSystem Object is related to its data type dictionary Nodes using HasComponent References. Each data type dictionary Node is related to its data type description nodes using HasComponent references. These references indicate that the data type descriptions are defined in the dictionary.
In the example, the “DataTypes” Object references the DataType “Int32” using an Organizes Reference. The DataType uses the non-hierarchical HasEncoding Reference to point to its default encoding, which references a data type description using the non-hierarchical HasDescription Reference.
OPC Binary is a standard DataTypeSystem defined by OPC. It is represented in the Address Space by an Object Node. OPC Binary uses XML to describe complex binary data values.
XML Schema is a standard DataTypeSystem defined by the W3C. It is represented in the Address Space by an Object Node. XML Schema documents are XML documents whose xmlns attribute in the first line is:
schema xmlns = http://www.w3.org/1999/XMLSchema