В этом примере показано, как использовать 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));
Можно также задать имя хоста и 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);
Получите пространство имен сервера.
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
Предупреждение указывает, что элемент еще не хранился в базе данных историка, но предварительно сконфигурированные атрибуты элемента возвращаются.
Отключите клиент от сервера и удалите объекты OPC Toolbox из памяти, когда вам больше не будут нужны они. Удаление объекта клиента также удаляет объекты элемента и группа.
disconnect(hdaObj) delete(hdaObj)