В этом примере показов, как использовать OPC Toolbox™ для просмотра сети серверов OPC Исторических данных Доступа и использовать функции OPC Toolbox, чтобы запросить пространство имен серверов для серверных элементов и их свойств.
НЕОБХОДИМЫЕ УСЛОВИЯ:
Вы используете 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
Используйте 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);
Получите пространство имен сервера.
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]
Используйте 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'
Исследуйте текущее нормальное максимальное значение найденного десятого элемента.
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, но возвращаются предварительно настроенные атрибуты элемента.
Отсоедините клиент от сервера и удалите объекты OPC Toolbox из памяти, когда они вам больше не нужны. Удаление объекта клиента также удаляет группу и объекты элемента.
disconnect(hdaObj) delete(hdaObj)