Поиск и просмотр серверов исторического доступа к историческим данным OPC

В этом примере показов, как использовать OPC Toolbox™ для просмотра сети серверов OPC Исторических данных Доступа и использовать функции OPC Toolbox, чтобы запросить пространство имен серверов для серверных элементов и их свойств.

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

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

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

hostInfo = opchdaserverinfo('localhost')
hostInfo = 

OPC HDA Server Information object:
                 Host: localhost
             ServerID: Matrikon.OPC.Simulation.1
          Description: MatrikonOPC Server for Simulation and Testing
     HDASpecification: HDA1

Найдите информационную запись сервера с описанием, начинающимся с Matrikon.

hIndex = findDescription(hostInfo,'Matrikon')
hostInfo(hIndex)
hIndex =

     1


ans = 

OPC HDA Server Information object:
                 Host: localhost
             ServerID: Matrikon.OPC.Simulation.1
          Description: MatrikonOPC Server for Simulation and Testing
     HDASpecification: HDA1

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

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

hdaObj = opchda(hostInfo(hIndex));

Можно также задать имя хоста и идентификатор сервера непосредственно.

hdaObj = opchda('localhost','Matrikon.OPC.Simulation.1')
hdaObj = 

OPC HDA Client localhost/Matrikon.OPC.Simulation.1:
               Host: localhost
           ServerID: Matrikon.OPC.Simulation.1
            Timeout: 10 seconds

             Status: disconnected

         Aggregates: -- (client is disconnected)
     ItemAttributes: -- (client is disconnected)

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

connect(hdaObj);

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

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

ns = getNameSpace(hdaObj)
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: Атрибуты серверного элемента запросов

Исследуйте текущее нормальное максимальное значение найденного десятого элемента.

maxVal = readItemAttributes(hdaObj,realItems{10},hdaObj.ItemAttributes.NORMAL_MAXIMUM,now,now)
Warning: Saw-toothed Waves.Real4: No history available for attribute. 

maxVal = 

         ItemID: 'Saw-toothed Waves.Real4'
    AttributeID: 11
      Timestamp: 7.3643e+05
          Value: 100

Предупреждение указывает, что элемент еще не сохранен в базе данных historian, но возвращаются предварительно настроенные атрибуты элемента.

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

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

disconnect(hdaObj)
delete(hdaObj)