После получения информации о ваших Серверах OPC как описано в Обнаруживают Доступные Серверы HDA, можно установить связь с сервером путем создания объекта клиента HDA OPC и подключения того клиента с сервером. Эти шаги описаны затем.
Чтобы запустить пример кода в следующих шагах, вам нужен Сервер Симуляции Matrikon™ OPC на вашей локальной машине. Для получения дополнительной информации установки смотрите Установку DA OPC или Сервер Симуляции HDA для Классических примеров OPC. Код требует только, чтобы незначительные изменения работали с другими серверами.
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
Используйте connect
функционируйте, чтобы соединить клиент с сервером:
connect(hdaClient);
disconnected
к connected
. Если клиент не мог бы связать с сервером (например, если Сервер OPC закрывается), сообщение об ошибке появляется. Для получения информации о поиске и устранении неисправностей связей с Сервером OPC смотрите Поиск и устранение проблем. После соединения с клиентом к серверу можно запросить список доступных составных типов с hdaClient.Aggregates
функция, а также доступный элемент приписывает с hdaClient.ItemAttributes
. В то время как соединено можно просмотреть пространство имен Сервера OPC информацию о доступных серверных элементах. Смотрите следующий раздел для получения дополнительной информации о просмотре пробела имени сервера. Можно перечислить функции HDA с methods(hdaClient)
. Связанный объект клиента позволяет вам взаимодействовать с Сервером OPC, чтобы получить информацию о пространстве имен того сервера. Пробел имени сервера обеспечивает доступ ко всем точкам данных, обеспеченным Сервером OPC путем именования каждой точки данных с серверным элементом, и затем расположения тех серверных элементов в пространство имен, которое обеспечивает уникальный идентификатор для каждого серверного элемента.
Следующий раздел описывает, как получить пробел имени сервера или частичный пробел имени сервера, с помощью getnamespace
и serveritems
функции.
Используйте 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
Эта таблица описывает поля структуры:
Поле | Описание |
---|---|
| Имя узла, как вектор символов. |
| Полностью определенный ID элемента узла, как вектор символов. Полностью определенный ID элемента составлен из пути к узлу, конкатенированному с |
| Тип узла. |
| Дочерние узлы. |
От предыдущего выше, исследуя пространство имен показывает:
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.