OPC UA Serversshall provide type definitions for Objectsand Variables. The HasTypeDefinition Referenceshall be used to link an instance with its type definition represented by a TypeDefinitionNode. Type definitions are required; however, OPC 10000-5defines a BaseObjectType, a PropertyType,and a BaseDataVariableTypeso a Servercan use such a base type if no more specialised type information is available.Objects andVariables inherit the Attributesspecified by their TypeDefinitionNode (see 6.4for details).
In some cases, the NodeIdused by the HasTypeDefinition Referencewill be well-known to Clientsand Servers. Organizations may define TypeDefinitionNodesthat are well-known in the industry. Well-known NodeIdsof TypeDefinitionNodesprovide for commonality across OPC UA Serversand allow Clientsto interpret the TypeDefinitionNodewithout having to read it from the Server. Therefore, Serversmay use well-known NodeIdswithout representing the corresponding TypeDefinitionNodesin their AddressSpace. However, the TypeDefinitionNodesshall be provided for generic Clients. These TypeDefinitionNodesmay exist in another Server.
The following example, illustrated in Figure 5, describes the use of the HasTypeDefinition Reference. In this example, a setpoint parameter “SP” is represented as a DataVariablein the AddressSpace. This DataVariableis part of an Objectnot shown in the figure.
To provide for a common setpoint definition that can be used by other Objects, a specialised VariableTypeis used. Each setpoint DataVariablethat uses this common definition will have a HasTypeDefinition Referencethatidentifies the common “SetPoint” VariableType.