В этом примере показано, как использовать OPC Toolbox™ для просмотра сети для серверов OPC и запросить пространство имен серверов для серверных элементов и их свойств.
НЕОБХОДИМЫЕ УСЛОВИЯ:
Вы используете opcserverinfo
функция для запроса хоста в сети на наличие доступных серверов OPC Data Access. В этом примере используется локальный хост.
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'
и о идентификаторе сервера, используемом для создания объекта клиента.
allID = hostInfo.ServerID'
allID = 'Matrikon.OPC.Simulation.1'
Используйте имя хоста и идентификатор сервера, найденные на предыдущем шаге, чтобы создать объект клиента.
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)