В этом примере показано, как использовать 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)