The instantiation of complex TypeDefinitionNodesdepends on the ModellingRulesdefined in 6.4.4. However, the intention is that instances of a type definition will reflect the structure defined by the TypeDefinitionNode. Figure 7shows an instance of the TypeDefinitionNode“AI_BLK_TYPE”, where the ModellingRule Mandatory, defined in, was applied for its containing Variable. Thus, an instance of “AI_BLK_TYPE”, called AI_BLK_1”, has a HasTypeDefinition Referenceto “AI_BLK_TYPE”. It also contains a Variable“SP” having the same BrowseNameas the Variable“SP” used by the TypeDefinitionNodeand thereby reflects the structure defined by the TypeDefinitionNode.


Figure 7– Object and its Components defined by an ObjectType

A client knowing the ObjectType“AI_BLK_TYPE” can use this knowledge to directly browse to the containing Nodesfor each instance of this type. This allows programming against the TypeDefinitionNode. For example, a graphical element may be programmed in the client that handles all instances of “AI_BLK_TYPE” in the same way by showing the value of “SP”.

There are several constraints related to programming against the TypeDefinitionNode. A TypeDefinitionNodeor an InstanceDeclarationshall never reference two Nodeshaving the same BrowseNameusing forward hierarchical References. Instances based on InstanceDeclarationsshall always keep the same BrowseNameas the InstanceDeclarationthey are derived from. A special Servicedefined in OPC 10000-4called TranslateBrowsePathsToNodeIds may be used to identify the instances based on the InstanceDeclarations. Using the simple Browse Servicemight not be sufficient since the uniqueness of the BrowseNameis only required for TypeDefinitionNodesand InstanceDeclarations, not for other instances. Thus, “AI_BLK_1” may have another Variablewith the BrowseName“SP”, although this one would not be derived from an InstanceDeclarationof the TypeDefinitionNode.

Instances derived from an InstanceDeclarationshall be of the same TypeDefinitionNodeor a subtype of this TypeDefinitionNode.

A TypeDefinitionNodeand its InstanceDeclarationsshall always reside in the same Server. However, instances may point with their HasTypeDefinition Referenceto a TypeDefinitionNodein a different Server.