An overview of this object model is provided in section 5. Figure 1 illustrates the overall AliasName Object Model

Instances of the AliasNameType ObjectType provide alternate names for Nodes. The AliasNameType is formally defined in Table 1.

Table 1 – AliasNameType Definition

Attribute

Value

BrowseName

AliasNameType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseObjectType defined in OPC 10000-5

ConformanceUnits

AliasName Base

This ObjectType has no Properties or Variables. The BrowseName of the Object is used as the alias name. The string part of the BrowseName shall be the DisplayName with an empty locale id and no other locale shall be provided. This Object shall have at least one AliasFor Reference (or sub-type).

A Client shall always ignore the namespace associated with an AliasName for comparison with other AliasNames.

The AliasName Object’s BrowseName shall not be modified once it is defined. If an AliasName needs to be changed, it is considered as a deletion of the old AliasName and the addition of new AliasName. This requirement allows AggregatingServers to detect new AliasNames.

AliasNameCategoryType instances are used to organize the AliasNameType instances that a Server defines. They can also include instances of AliasNameCategoryType to allow hierarchical groupings of AliasNames. It includes a mandatory Method for finding instances of AliasNameType in the AliasName hierarchy, starting at this instance of AliasNameCategoryType. For example, if the Method call is made on the Aliases AliasNameCategoryType instance (see 9.2), it would apply the AliasNameSearchPattern to all AliasNames that are defined under TagVariables, Topics and any other AliasNameCategoryType instance in the hierarchy.

The AliasNameCategoryType is a subtype of FolderType and is formally defined in Table 2.

Table 2 – AliasNameCategoryType Definition

Attribute

Value

BrowseName

AliasNameCategoryType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the FolderType from OPC 10000-5

Organizes

Object

<Alias>

AliasNameType

OptionalPlaceholder

Organizes

Object

<SubAliasNameCategories>

AliasNameCategoryType

OptionalPlaceholder

HasComponent

Method

FindAlias

Defined in 6.3.2

Mandatory

HasProperty

Variable

LastChange

VersionTime

PropertyType

Optional

Conformance Units

AliasName Base

The list of AliasNames that an Object contains may be dynamic. For example, AliasNames may be added in an aggregating Server as underlying Servers become available or may be removed if a Server is no longer available.

<Alias> represents any number of instances of AliasNameType. Each instance shall have at least one AliasFor Reference to a Node. Multiple <Alias > instances can point to the same Node.

<SubAliasNameCategories> allows the nesting or structuring of AliasNames into hierarchical groupings.

An <Alias> can appear in more than one place in the hierarchy of AliasNameCategories.

LastChange is the most recent time for any of the following activities:

For AliasNameCategoryType instances that are nested, the value of LastChange shall always be the latest VersionTime of all Organized AliasName and AliasNameCategories.

The LastChange shall be persisted. A Client that detects a LastChange that is older than what it has cached, shall clear all cached AliasNameCategories and related AliasNames.

The FindAlias Method allows a Client to obtain the list of Nodes that match the provided AliasName search string. The signature of this Method is specified below, the arguments are defined in Table 3.

Signature

FindAlias(

[in] String AliasNameSearchPattern,

[in] NodeId ReferenceTypeFilter,

[out] AliasNameDataType[] AliasNodeList

);

Table 3 - FindAlias Method Arguments

Argument

Description

AliasNameSearchPattern

A string that can contain wild cards, use to find a list of AliasNames (see OPC 10000-4 - “Wildcard Characters” table for supported wildcards, see the “Like” FilterOperator in OPC 10000-4 for more details)

ReferenceTypeFilter

A NodeId that represent a ReferenceType (i.e. AliasFor or one of its subtypes) that restricts the search. Any ReferenceType includes all subtypes of that ReferenceType.

AliasNodeList

The returned list of AliasNameDataType. If no Nodes match the search string or have the appropriate ReferenceType, the list shall be empty.

Method result codes are defined in Table 4

Table 4 - FindAlias Method Error Codes

Result Code

Description

Bad_InvalidArgument

The input string is not a valid search string

Bad_UserAccessDenied

The current user does not have the rights required.

Bad_ResponseToLarge

The response was too large to be returned, try new filter and repeat find

The Method is formally defined in Table 5.

Table 5 - FindAlias Method AddressSpace definition

Attribute

Value

BrowseName

FindAlias

References

Node Class

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory

It is important to note that there might be more than one entry for every AliasName. Multiple Servers might provide a Node that represents an equivalent object (such as a temperature sensor). An aggregating Server also might provide the Node. This Method will return the AliasNames in order of preference. That is the Server will return what it recommends as the best match first followed by the next best match etc. The criteria for ordering are Server specific. The criteria might be based on the ServerStatus of the Server that contains the referenced Node, it might be load balancing of Servers, it might be for off-loading of small device Servers, or it might be some other algorithm.

Clients should use the first usable entry in the list.