Свяжите с серверами HDA OPC

Обзор

После получения информации о ваших Серверах OPC как описано в Обнаруживают Доступные Серверы HDA, можно установить связь с сервером путем создания объекта клиента HDA OPC и подключения того клиента с сервером. Эти шаги описаны затем.

Примечание

Чтобы запустить пример кода в следующих шагах, вам нужен Сервер Симуляции Matrikon™ OPC на вашей локальной машине. Для получения дополнительной информации установки смотрите Установку DA OPC или Сервер Симуляции HDA для Классических примеров OPC. Код требует только, чтобы незначительные изменения работали с другими серверами.

Создайте объект клиента HDA

OPC Toolbox не использует группы при контакте с серверными элементами HDA. Вместо этого сами элементы передаются доступным функциям. Эти функции доступны через объект клиента HDA OPC. В большинстве случаев функции, к которым получают доступ через этот объект клиента HDA, возвращают объект opc.hda.Data. Они объект данных упрощают отображение и манипуляцию исторических данных, полученных с сервера HDA.

Чтобы создать объект клиента HDA OPC, вызовите opchda функция, задавая имя хоста и ID сервера. Вы получили эту информацию с помощью opchdaserverinfo функция (описанный в Обнаруживают Доступные Серверы HDA). Этот пример создает объект клиента HDA OPC, чтобы представлять связь с Сервером Симуляции Matrikon OPC:

hdaClient = opchda('localhost','Matrikon.OPC.Simulation.1');

Просмотрите сводные данные объекта клиента

Чтобы просмотреть сводные данные характеристик объекта клиента HDA OPC, вы создали, введите имя переменной, которое вы присвоили объекту в командной строке. Например, это - сводные данные для hdaClient объект:

hdaClient = 
OPC HDA Client localhost/Matrikon.OPC.Simulation.1:
          Host: localhost
      ServerID: Matrikon.OPC.Simulation.1
       Timeout: 10 seconds
        Status: disconnected  
    Aggregates: -- (client is disconnected)     
ItemAttributes: -- (client is disconnected) 
Methods

Соедините объект клиента HDA OPC с сервером HDA

Используйте connect функционируйте, чтобы соединить клиент с сервером:

connect(hdaClient);
После соединения с сервером Информация о статусе в клиентском отображении сводных данных изменяется от disconnected к connected. Если клиент не мог бы связать с сервером (например, если Сервер OPC закрывается), сообщение об ошибке появляется. Для получения информации о поиске и устранении неисправностей связей с Сервером OPC смотрите Поиск и устранение проблем. После соединения с клиентом к серверу можно запросить список доступных составных типов с hdaClient.Aggregates функция, а также доступный элемент приписывает с hdaClient.ItemAttributes. В то время как соединено можно просмотреть пространство имен Сервера OPC информацию о доступных серверных элементах. Смотрите следующий раздел для получения дополнительной информации о просмотре пробела имени сервера. Можно перечислить функции HDA с methods(hdaClient).

Просмотрите пространство имен сервера OPC

Связанный объект клиента позволяет вам взаимодействовать с Сервером OPC, чтобы получить информацию о пространстве имен того сервера. Пробел имени сервера обеспечивает доступ ко всем точкам данных, обеспеченным Сервером OPC путем именования каждой точки данных с серверным элементом, и затем расположения тех серверных элементов в пространство имен, которое обеспечивает уникальный идентификатор для каждого серверного элемента.

Следующий раздел описывает, как получить пробел имени сервера или частичный пробел имени сервера, с помощью getnamespace и serveritems функции.

Получите пробел имени сервера HDA OPC

Используйте getnamespace функция, чтобы получить пространство имен из сервера HDA OPC. Необходимо задать объект клиента, который соединяется с сервером, которым вы интересуетесь. Пространство имен возвращено как массив структур, содержащий информацию о каждом узле в пространстве имен.

Этот пример получает пространство имен Сервера Симуляции Matrikon OPC, установленного на локальном хосте:

hdaClient = opchda('localhost','Matrikon.OPC.Simulation.1');
connect(hdaClient);
ns = getnamespace(hdaClient)

ns = 
3x1 struct array with fields:
    Name
    FullyQualifiedID
    NodeType
    Nodes

Эта таблица описывает поля структуры:

Поле

Описание

Name

Имя узла, как вектор символов.

FullyQualifiedID

Полностью определенный ID элемента узла, как вектор символов. Полностью определенный ID элемента составлен из пути к узлу, конкатенированному с '.' 'characters'. Используйте полностью определенный ID элемента при создании объекта элемента, сопоставленного с этим узлом.

NodeType

Тип узла. NodeType может быть 'branch' (содержит другие узлы), или 'leaf' (не содержит никакие другие ветви).

Nodes

Дочерние узлы. Nodes массив структур с теми же полями как ns, представление узлов содержится в этой ветви пространства имен.

От предыдущего выше, исследуя пространство имен показывает:

ns(1)

                Name: 'Simulation Items'
    FullyQualifiedID: 'Simulation Items'
            NodeType: 'branch'
               Nodes: [8x1 struct]

ns(3)

                Name: 'Clients'
    FullyQualifiedID: 'Clients'
            NodeType: 'leaf'
               Nodes: []

От этой информации первый узел является узлом ветви под названием 'Simulation Items'. Поскольку это - узел ветви, это наиболее вероятно не допустимый серверный элемент. Третий узел является вершиной (содержащий никакие другие узлы) с полностью определенным ID 'Clients'. Поскольку этот узел является вершиной, это наиболее вероятно серверный элемент, который может быть проверен путем создания объекта элемента. Чтобы исследовать узлы далее вниз дерево, сошлитесь на Nodes поле узла ветви. Например, первый узел содержится в 'Simulation Items' узел получен можно следующим образом:

ns(1).Nodes(1)

                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.