Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Solutions Academia Support User Community Company
spacer spacer spacer spacer spacer spacer

 

OPC Toolbox 2.1.4

Locating and Browsing OPC Servers

This example demonstrates how to use the OPC Toolbox™ to browse the network for OPC servers, and use OPC Toolbox functions to query the server name space for server items and their properties.

Contents

Step 1: Browse the Network for OPC Servers

You use the opcserverinfo function to query a host on the network for available OPC servers. This example uses the local host.

hostInfo = opcserverinfo('localhost')
hostInfo =
                 Host: 'localhost'
             ServerID: {'Matrikon.OPC.Simulation.1'}
    ServerDescription: {'Matrikon OPC Server for Simulation and Testing
'}
     OPCSpecification: {'DA2'}
    ObjectConstructor: {'opcda('localhost', 'Matrikon.OPC.Simulation.1'
)'}

The returned structure provides information about each server:

hostInfo.ServerDescription'
ans =
    'Matrikon OPC Server for Simulation and Testing'

and the Server ID you use to create a client object.

allID = hostInfo.ServerID'
allID =
    'Matrikon.OPC.Simulation.1'

Step 2: Retrieve the Name Space of a Server

To interact with a server, you must create an OPC Data Access™ Client Object (opcda object). You use the host name and server ID found in the previous step.

da = opcda('localhost', 'Matrikon.OPC.Simulation.1')
da =
Summary of OPC Data Access Client Object: localhost/Matrikon.OPC.Simulation.
1
   Server Parameters
      Host      : localhost
      ServerID  : Matrikon.OPC.Simulation.1
      Status    : disconnected
      Timeout   : 10 seconds
   Object Parameters
      Group     : 0-by-1 dagroup object
      Event Log : 0 of 1000 events

You must also connect the client to the server.

connect(da);

You can retrieve the name space of the server using the client.

ns = getnamespace(da)
ns =
3x1 struct array with fields:
    Name
    FullyQualifiedID
    NodeType
    Nodes

Each element of the structure is a node in the server name space.

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

Step 3: Find Specific Items in the Name Space

To find specific items in the name space, you can use the serveritems function. In this case, try to find all server items with ID containing the string '|Real|'

realItems = serveritems(ns, '*Real*')
realItems =
    'Bucket Brigade.ArrayOfReal8'
    'Bucket Brigade.Real4'
    'Bucket Brigade.Real8'
    'Random.ArrayOfReal8'
    'Random.Real4'
    'Random.Real8'
    'Read Error.ArrayOfReal8'
    'Read Error.Real4'
    'Read Error.Real8'
    'Saw-toothed Waves.Real4'
    'Saw-toothed Waves.Real8'
    'Square Waves.Real4'
    'Square Waves.Real8'
    'Triangle Waves.Real4'
    'Triangle Waves.Real8'
    'Write Error.ArrayOfReal8'
    'Write Error.Real4'
    'Write Error.Real8'
    'Write Only.ArrayOfReal8'
    'Write Only.Real4'
    'Write Only.Real8'

Step 4: Query Server Item Properties

Each server item has properties that describe the server item. Property IDs define which property of the server item you require. In this example, examine the Canonical Data Type (PropID = 1) and the Item Access Rights (PropID = 5) of the second item found.

canDT = serveritemprops(da, realItems{2}, 1)
accessRights = serveritemprops(da, realItems{2}, 5)
canDT =
             PropID: 1
    PropDescription: 'Item Canonical DataType'
          PropValue: 'single'
         PropItemID: ''
accessRights =
             PropID: 5
    PropDescription: 'Item Access Rights'
          PropValue: 'read/write'
         PropItemID: ''

Step 5: Clean Up OPC Toolbox Objects

Once you have finished with OPC Toolbox objects, you must delete them from the OPC Toolbox engine and clear them from the workspace.

disconnect(da)
delete(da)
clear da
Contact sales
Trial software
E-mail this page

Get Pricing and
Licensing Options