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

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

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

Шаг 1: просмотрите сеть серверы HDA OPC

Вы используете 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));

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

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

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

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

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

disconnect(hdaObj)
delete(hdaObj)