Поиск и просмотр серверов Доступ

В этом примере показано, как использовать OPC Toolbox™ для просмотра сети для серверов OPC и запросить пространство имен серверов для серверных элементов и их свойств.

НЕОБХОДИМЫЕ УСЛОВИЯ:

Шаг 1: Просмотр сети для серверов OPC

Вы используете opcserverinfo функция для запроса хоста в сети на наличие доступных серверов OPC Data Access. В этом примере используется локальный хост.

hostInfo = opcserverinfo('localhost')
hostInfo = 

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

Возвращенная структура предоставляет информацию о каждом сервере:

hostInfo.ServerDescription'
ans = 

    'MatrikonOPC Server for Simulation and Testing'

и о идентификаторе сервера, используемом для создания объекта клиента.

allID = hostInfo.ServerID'
allID = 

    'Matrikon.OPC.Simulation.1'

Шаг 2: создайте объект клиента и соединитесь с сервером

Используйте имя хоста и идентификатор сервера, найденные на предыдущем шаге, чтобы создать объект клиента.

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

Подключите клиент к серверу.

connect(da);

Шаг 3: Получите пространство имен сервера

Получите пространство имен сервера.

ns = getnamespace(da)
ns = 

4×1 struct array with fields:

    Name
    FullyQualifiedID
    NodeType
    Nodes

Каждый элемент структуры является узлом в пространстве имен серверов.

ns(1)
ans = 

                Name: 'Simulation Items'
    FullyQualifiedID: 'Simulation Items¥'
            NodeType: 'branch'
               Nodes: [8×1 struct]

Шаг 4: Найти элементы в пространстве имен

Используйте serveritems функция для поиска всех элементов в пространстве имен, содержащем строку 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'

Шаг 5: Свойства серверного элемента запросов

Исследуйте канонический тип данных (PropID = 1) и права доступа к элементу (PropID = 5) второго найденного элемента.

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: ''

Шаг 6: Очистка объектов OPC Toolbox

Отсоедините клиент от сервера и удалите объекты OPC Toolbox из памяти, когда они вам больше не нужны. Удаление объекта клиента также удаляет группу и объекты элемента.

disconnect(da)
delete(da)