После получения сведений о серверах OPC, описанных в разделе Обнаружение доступных серверов доступа к данным, можно установить подключение к серверу путем создания объекта OPC Client и подключения этого клиента к серверу. Эти шаги описаны в следующих разделах.
Примечание
Чтобы запустить пример кода в следующих примерах, вы должны иметь Matrikon™ OPC Simulation Server, доступный на вашем локальном компьютере. Для получения информации об установке см. раздел Установка OPC DA или HDA Simulation Server для OPC Classic Examples. Код требует только незначительных изменений, работающих с другими серверами.
Как создать opcda
объект, вызовите opcda
функция, указывающая имя хоста и идентификатор сервера. Вы получили эту информацию с помощью opcserverinfo
функция (описанная в разделе Обнаружение доступных серверов доступа к данным).
Этот пример создает opcda
объект для представления соединения с сервером симуляции OPC Matrikon. The opcserverinfo
функция включает в себя opcda
по умолчанию синтаксис в
ObjectConstructor
поле.
da = opcda('localhost', 'Matrikon.OPC.Simulation.1');
Просмотр сводных данных характеристик opcda
созданный вами объект, введите в командной строке имя переменной, присвоенное объекту. Для примера это сводные данные для объекта da
.
da
Элементы этого списка соответствуют нумерованным элементам в сводных данных объектов:
Область заголовка Summary
включает имя opcda
объект клиента. Имя по умолчанию для объекта клиента состоит из 'host/serverID'
. Вы можете изменить имя объекта клиента, используя set
функция, описанная в Configure Opc Toolbox Data Access Свойства.
The Server Parameters
предоставить информацию о сервере OPC, с которым связан клиент. Имя хоста, идентификатор сервера и состояние подключения указаны в этом разделе. Вы соединяетесь с Сервером OPC, используя connect
функция, описанная в разделе Подключение клиента к серверу DA.
The Object Parameters
раздел содержит информацию о группе доступа к OPC Data (dagroup
) объекты, настроенные на этом клиенте. Вы используете групповые объекты, чтобы содержать наборы номенклатуры. Создание групповых объектов описано в разделе Создание групповых объектов доступа к данным.
Вы подключаете клиент к серверу, используя connect
функция.
connect(da);
После подключения к серверу Status
информация в клиенте, сводные данные отображения изменится с 'disconnected'
на 'connected'
.
Если клиент по какой-либо причине не смог подключиться к серверу (по примеру, если сервер OPC завершил работу), будет создано сообщение об ошибке. Для получения информации об устранении неполадок в соединениях с Сервером OPC см. раздел «Поиск и устранение проблем».
После подключения клиента к серверу можно выполнить следующие задачи:
Получите диагностические сведения о сервере OPC, такие как состояние сервера, время последнего обновления и поддерживаемые интерфейсы. Вы используете opcserverinfo
функция для получения этой информации.
Просмотрите имя Сервера OPC пространства для получения информации о доступных серверных элементах. Дополнительные сведения см. в разделе Обзор пространства имен серверов OPC DA.
Создайте объекты группы и позиции для взаимодействия с Сервером OPC данными. Для получения дополнительной информации см. раздел «Создание объектов доступа к данным OPC Toolbox».
Связанный объект клиента позволяет вам взаимодействовать с сервером OPC для получения информации о пространстве имен этого сервера. Пространство имен сервера обеспечивает доступ ко всем точкам данных, предоставляемым OPC-сервером, путем присвоения каждой из точек данных имени серверных элементов и последующего размещения этих серверных элементов в пространстве имен, которое обеспечивает уникальный идентификатор для каждого серверного элемента.
В этом разделе описывается, как вы используете подключенный клиентский объект для просмотра пространства имен и поиска информации о каждом серверном элементе. Эти мероприятия описаны в следующих разделах:
Получение пространства имен сервера DA описывает, как получить пространство имен сервера или частичное пространство имен сервера, используя getnamespace
и serveritems
функций.
Получение сведений о конкретном Серверном элементе описывает, как запросить у сервера свойства определенного серверного элемента.
Вы используете getnamespace
функция для извлечения пространства имен из Сервера OPC. Необходимо указать объект клиента, подключенный к интересующему вас серверу. Пространство имен возвращается вам как массив структур, содержащий информацию о каждом узле в пространстве имен.
В приведенном ниже примере определяется пространство имен сервера симуляции OPC Matrikon, установленного на локальном узле.
da = opcda('localhost','Matrikon.OPC.Simulation.1'); connect(da); ns = getnamespace(da) ns = 3x1 struct array with fields: Name FullyQualifiedID NodeType Nodes
Поля структуры описаны в следующей таблице.
Область | Описание |
---|---|
| Имя узла, как вектор символов. |
| Полный идентификатор элемента узла в виде вектора символов. Полный идентификатор элемента состоит из пути к узлу, сцепленного с |
| Тип узла. |
| Дочерние узлы. |
Из примера выше, исследование пространства имен показывает.
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'
. Поскольку это узел ветви, он, скорее всего, не является допустимым серверным элементом. Третий узел является листовым узлом (не содержащим других узлов) с полным идентификатором 'Clients'
. Поскольку этот узел является конечным узлом, это, скорее всего, серверный элемент, которое можно контролировать, создавая объект item.
Чтобы изучить узлы далее по дереву, необходимо обратиться к 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'
и имеет полный идентификатор 'Bucket Brigade.Real8'
. Полный идентификатор используется для ссылки на конкретный узел в пространстве имен сервера при создании элементов с программным обеспечением OPC Toolbox™.
Вы можете использовать flatnamespace
функция для выравнивания иерархического пространства имен.
В сложение публикации пространства имен всем клиентам Сервера OPC предоставляет информацию о свойствах каждого из серверных элементов в пространстве имен. Эти свойства содержат сведения о формате данных, используемом сервером для хранения значения серверного элемента, описании серверного элемента и дополнительных свойствах, настроенных при создании серверного элемента. Дополнительные свойства могут включать информацию о диапазоне серверного элемента, максимальной скорости, с которой сервер может обновить этот серверный элемент значение, и т.д. См. «Свойства элемента OPC DA Server».
Вы получаете доступ к свойству с помощью определенного набора идентификаторов свойств. Идентификатор свойства является просто числом, которое задает определенное свойство серверного элемента. Идентификаторы свойств разделены на три категории:
Специфические свойства OPC (1-99), которые должен предоставить каждый сервер OPC. Специфические свойства OPC включают серверный элемент значение, качество и временную метку. Для получения дополнительной информации о понимании OPC Data, смотрите OPC Data: Значение, Качество и TimeStamp.
Рекомендуемые OPC свойства (100-4999), которые могут предоставить серверы OPC. Эти свойства включают максимальное и минимальное значения, описание серверного элемента и другие обычно используемые свойства.
Специфические для поставщика свойства (5000 и выше), которые Сервер OPC может определять и использовать. Эти свойства могут быть различными для каждого сервера OPC и предоставить пространство производителям серверов OPC определять свои собственные свойства.
Вы запрашиваете свойства серверного элемента, используя serveritemprops
функция, задающая объект клиента, полный идентификатор элемента интересующей вас серверного элемента и необязательный вектор идентификаторов свойств, которые вы хотите получить. Если вы не задаете идентификаторы свойств, возвращаются все свойства, определенные для этих серверных элементов.
Примечание
Полный идентификатор элемента будет получен от сервера с помощью getnamespace
функцию или serveritems
функция, которая просто возвращает все полные идентификаторы элементов в массиве ячеек из векторов символов.
В следующем примере запрашивается свойство Item Description (ID 101) серверного элемента 'Bucket Brigade.ArrayOfReal8'
из примера в разделе Get the DA Server Name Space.
p = serveritemprops(da, 'Bucket Brigade.ArrayOfReal8', 101) p = PropID: 101 PropDescription: 'Item Description' PropValue: 'Bucket brigade item.'
Список идентификаторов свойств OPC Foundation см. в разделе Свойства элемента OPC DA Server.