Main Content

Retrieve an OPC HDA Server Name Space

You use the getNameSpace function to retrieve the name space from an OPC HDA server. You must specify the client object that is connected to the server of interest. The name space is returned as a structure array containing information about each node in the name space.

This example retrieves the name space of the Matrikon OPC Simulation Server installed on the local host:

hdaClient = opchda('localhost','Matrikon.OPC.Simulation.1');
connect(hdaClient);
ns = getnamespace(hdaClient)
ns = 
3x1 struct array with fields:
    Name
    FullyQualifiedID
    NodeType
    Nodes

This table describes the fields in the structure:

FieldDescription
NameThe name of the node, as a character vector.
FullyQualifiedIDThe fully qualified item ID of the node, as a character vector, often composed of the path to the node, concatenated with '.' characters. Use the fully qualified item ID when creating an item object associated with this node.
NodeTypeThe type of node. Can be 'branch' (contains other nodes) or 'leaf' (contains no other branches).
NodesChild nodes. Structure array with the same fields as ns, representing the nodes contained in this branch of the name space.

From the previous example, exploring the name space shows the following:

ns(1)
ans = 
                Name: 'Simulation Items'
    FullyQualifiedID: 'Simulation Items'
            NodeType: 'branch'
               Nodes: [8x1 struct]
ns(3)
ans = 
                Name: 'Clients'
    FullyQualifiedID: 'Clients'
            NodeType: 'leaf'
               Nodes: []

In this example, the first node is a branch node called 'Simulation Items'. Because it is a branch node, it is probably not a valid server item. The third node is a leaf node (containing no other nodes) with a fully qualified ID of 'Clients'. Because this node is a leaf node, it is most likely a server item that can be read. To examine the nodes further down the tree, you need to reference the Nodes field of a branch node. For example, the following code obtains the first node contained within the 'Simulation Items' node:

ns(1).Nodes(1)
ans = 
                Name: 'Bucket Brigade'
    FullyQualifiedID: 'Bucket Brigade.'
            NodeType: 'branch'
               Nodes: [14x1 struct]

The result shows that the first node of 'Simulation Items' is a branch node named 'Bucket Brigade', and contains 14 nodes.

ns(1).Nodes(1).Nodes(9)
ans =
                Name: 'Real8'
    FullyQualifiedID: 'Bucket Brigade.Real8'
            NodeType: 'leaf'
               Nodes: []

The ninth node in 'Bucket Brigade' is named 'Real8' and has a fully qualified ID of 'Bucket Brigade.Real8'. You use the fully qualified ID to refer to that specific node in the server name space when referencing items.