Этот пример показывает вам, как использовать OPC Toolbox™, чтобы просмотреть сеть Серверы OPC и запросить пробел имени сервера для серверных элементов и их свойств.
ПРЕДПОСЫЛКИ:
Вы используете opcserverinfo
функционируйте, чтобы запросить хост в сети для доступного OPC Data доступ к серверам. Этот пример использует локальный хост.
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'
и о ID Сервера вы используете, чтобы создать объект клиента.
allID = hostInfo.ServerID'
allID = 'Matrikon.OPC.Simulation.1'
Используйте имя хоста и ID сервера, который, как находят на предыдущем шаге, создал объект клиента.
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);
Получите пространство имен сервера.
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]
Используйте 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'
Исследуйте канонический тип данных (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: ''
Отключите клиент от сервера и удалите объекты OPC Toolbox из памяти, когда вам больше не будут нужны они. Удаление объекта клиента также удаляет объекты элемента и группа.
disconnect(da) delete(da)