После того, как вы получаете информацию о своих Серверах OPC, описанный в Обнаруживают Доступные Серверы Доступа к данным, можно установить связь с сервером путем создания объекта OPC Client и подключения того клиента с сервером. Эти шаги описаны в следующих разделах.
Примечание
Чтобы запустить пример кода в следующих примерах, необходимо иметь Сервер Симуляции Matrikon™ OPC в наличии на локальной машине. Для получения информации об установке этого смотрите Установку DA OPC или Сервер Симуляции HDA для Классических примеров OPC. Код требует, чтобы только незначительные изменения работали с другими серверами.
Создать opcda
объект, вызовите opcda
функция, задающая имя узла и ID сервера. Вы получили эту информацию с помощью opcserverinfo
функция (описанный в Обнаруживают Доступные Серверы Доступа к данным).
Этот пример создает opcda
объект представлять связь с Сервером Симуляции Matrikon OPC. opcserverinfo
функция включает opcda
по умолчанию синтаксис в
ObjectConstructor
поле .
da = opcda('localhost', 'Matrikon.OPC.Simulation.1');
Просмотреть сводные данные характеристик opcda
возразите, что вы создали, введите имя переменной, которое вы присвоили объекту в командной строке. Например, это - сводные данные для объекта da
.
da
Элементы в этом списке соответствуют пронумерованным элементам в объектных сводных данных:
Заголовок Summary
включает имя opcda
объект клиента. Имя по умолчанию для объекта клиента составлено из 'host/serverID'
. Можно поменять имя объекта клиента с помощью set
функция, описанная в, Конфигурирует Свойства объектов Доступа к данным OPC Toolbox.
Server Parameters
предоставьте информацию о Сервере OPC, с которым сопоставлен клиент. Имя хоста, ID сервера и состояние связи обеспечиваются в этом разделе. Вы соединяетесь с Сервером OPC с помощью connect
функция, описанная в Подключении Клиент к Серверу DA.
Object Parameters
раздел содержит информацию о OPC Data Access Group (dagroup
) объекты сконфигурированы на этом клиенте. Вы используете групповые объекты, чтобы содержать наборы элементов. Создание групповых объектов описано в, Создают Групповые объекты Доступа к данным.
Вы соединяете клиент с сервером с помощью connect
функция.
connect(da);
Если вы связали с сервером, Status
информация в клиентском отображении сводных данных изменится от 'disconnected'
к 'connected'
.
Если клиент не мог бы связать с сервером по некоторым причинам (например, если Сервер OPC будет закрыт), то сообщение об ошибке будет сгенерировано. Для получения информации о поиске и устранении неисправностей связей с Сервером OPC смотрите Поиск и устранение проблем.
Когда вы соединили клиент с сервером, можно выполнить следующие задачи:
Получите диагностическую информацию о Сервере OPC, таком как состояние сервера, время последнего обновления и поддерживаемые интерфейсы. Вы используете opcserverinfo
функция, чтобы получить эту информацию.
Просмотрите пространство имен Сервера OPC информацию о доступных серверных элементах. Смотрите Обзор Пробел Имени сервера DA OPC для деталей.
Создайте группу, и элемент возражает, чтобы взаимодействовать с данными о Сервере OPC. Смотрите Создают Объекты Доступа к данным OPC Toolbox для получения информации.
Связанный объект клиента позволяет вам взаимодействовать с Сервером OPC, чтобы получить информацию о пространстве имен того сервера. Пробел имени сервера обеспечивает доступ ко всем точкам данных, обеспеченным Сервером OPC путем именования каждой из точек данных с серверным элементом, и затем расположения тех серверных элементов в пространство имен, которое обеспечивает уникальный идентификатор для каждого серверного элемента.
В этом разделе описывается вы используете связанный объект клиента, чтобы просмотреть пространство имен и найти информацию о каждом серверном элементе. Эти действия описаны в следующих разделах:
Доберитесь Пробел Имени сервера DA описывает, как получить пробел имени сервера или частичный пробел имени сервера, с помощью getnamespace
и serveritems
функции.
Получение информации об Определенном Серверном элементе описывает, как запросить сервер для свойств определенного серверного элемента.
Вы используете getnamespace
функция, чтобы получить пространство имен из Сервера OPC. Необходимо задать объект клиента, который соединяется с сервером, которым вы интересуетесь. Пространство имен возвращено в вас как массив структур, содержащий информацию о каждом узле в пространстве имен.
Пример ниже получает пространство имен Сервера Симуляции Matrikon OPC, установленного на локальном хосте.
da = opcda('localhost','Matrikon.OPC.Simulation.1'); connect(da); ns = getnamespace(da) ns = 3x1 struct array with fields: Name FullyQualifiedID NodeType Nodes
Поля структуры описаны в следующей таблице.
Поле | Описание |
---|---|
| Имя узла, как вектор символов. |
| Полностью определенный ID элемента узла, как вектор символов. Полностью определенный ID элемента составлен из пути к узлу, конкатенированному с |
| Тип узла. |
| Дочерние узлы. |
Из примера выше, исследуя пространство имен показывает.
ns(1) ans = Name: 'Simulation Items' FullyQualifiedID: 'Simulation Items' NodeType: 'branch' Nodes: [8x1 struct] ns(3) ans = Name: 'Clients' FullyQualifiedID: 'Clients' NodeType: 'leaf' Nodes: []
От информации выше, первый узел является узлом ветви под названием 'Simulation Items'
. Поскольку это - узел ветви, это наиболее вероятно не допустимый серверный элемент. Третий узел является вершиной (содержащий никакие другие узлы) с полностью определенным ID 'Clients'
. Поскольку этот узел является вершиной, это наиболее вероятно серверный элемент, который может быть проверен путем создания объекта элемента.
Чтобы исследовать узлы далее вниз дерево, необходимо сослаться на Nodes
поле узла ветви. Например, первый узел содержится в 'Simulation Items'
узел получен можно следующим образом.
ns(1).Nodes(1) ans = Name: 'Bucket Brigade' FullyQualifiedID: 'Bucket Brigade.' NodeType: 'branch' Nodes: [14x1 struct]
Возвращенный результат показывает что первый узел 'Simulation Items'
узел ветви под названием 'Bucket Brigade'
, и содержит 14 узлов.
ns(1).Nodes(1).Nodes(9) ans = Name: 'Real8' FullyQualifiedID: 'Bucket Brigade.Real8' NodeType: 'leaf' Nodes: []
Девятый узел в 'Bucket Brigade'
назван 'Real8'
и имеет полностью определенный ID 'Bucket Brigade.Real8'
. Вы используете полностью определенный ID, чтобы относиться к тому определенному узлу на пробеле имени сервера при создании элементов с программным обеспечением OPC Toolbox™.
Можно использовать flatnamespace
функция, чтобы сгладить иерархическое пространство имен.
В дополнение к публикации пространства имен всем клиентам Сервер OPC предоставляет информацию о свойствах каждого из серверных элементов в пространстве имен. Эти свойства предоставляют информацию о формате данных, используемом сервером, чтобы сохранить значение серверного элемента, описание серверного элемента и дополнительные свойства, сконфигурированные, когда серверный элемент был создан. Дополнительные свойства могут включать информацию об области значений серверного элемента, максимального уровня, на котором сервер может обновить то значение серверного элемента, и т.д. See OPC DA Server Item Properties.
Вы получаете доступ к свойству с помощью заданного набора свойства IDs. Свойство ID является просто номером, который задает определенное свойство серверного элемента. Идентификаторы свойства разделены на три категории:
OPC Specific Properties (1-99), который должен обеспечить каждый Сервер OPC. OPC Specific Properties включает Значение серверного элемента, Качество и Метку времени. Для получения дополнительной информации о понимании OPC Data смотрите OPC Data: Значение, Качество и TimeStamp.
OPC Recommended Properties (100-4999), что Серверы OPC могут обеспечить. Эти свойства включают максимальные и минимальные значения, описание серверного элемента и другие обычно используемые свойства..
Vendor Specific Properties (5000 и выше), который Сервер OPC может задать и использовать. Эти свойства могут отличаться для каждого Сервера OPC и предоставить пробел производителям Сервера OPC, чтобы задать их собственные свойства.
Вы запрашиваете свойства серверного элемента с помощью serveritemprops
функция, задавая объект клиента, полностью определенный ID элемента серверного элемента, вы интересуетесь, и дополнительный вектор свойства IDs, которое вы хотите получить. Если вы не задаете свойство IDs, все свойства, заданные для того серверного элемента, возвращены.
Примечание
Вы получаете полностью определенный ID элемента из сервера с помощью getnamespace
функционируйте или serveritems
функция, которая просто возвращает все полностью определенные идентификаторы элемента в массиве ячеек из символьных векторов.
Следующий пример запрашивает свойство Item Description (ID 101) серверного элемента 'Bucket Brigade.ArrayOfReal8'
из примера в Получают Пробел Имени сервера DA.
p = serveritemprops(da, 'Bucket Brigade.ArrayOfReal8', 101) p = PropID: 101 PropDescription: 'Item Description' PropValue: 'Bucket brigade item.'
Для списка идентификаторов свойства OPC Foundation смотрите OPC DA Server Item Properties.