Этот раздел иллюстрирует основные шаги, чтобы создать приложение Исторических данных доступа (HDA) OPC Toolbox™ путем получения исторических данных от Треугольных и Пилообразных сигналов Волны Волны, обеспеченных Сервером Симуляции Matrikon™ OPC.
Примечание
Чтобы запустить пример кода в следующих шагах, вам нужен Сервер Симуляции Matrikon OPC на вашей локальной машине. Для получения дополнительной информации установки смотрите Установку DA OPC или Сервер Симуляции HDA для Классических примеров OPC. Код требует только, чтобы незначительные изменения работали с другими серверами.
На этом шаге вы получаете два данные, что тулбокс должен однозначно определить Исторические данные OPC доступ к серверу, с которым вы хотите соединиться. Вы используете эту информацию при создании объекта клиента Исторических данных доступа (HDA) OPC, описанного на Шаге 2: Создайте Исторические данные OPC доступ к Объекту клиента.
Первые данные являются именем хоста сервера. Имя хоста (описательное имя как "HistorianServer
"или IP-адрес, такой как 192.168.16.32
) квалифицирует тот компьютер в сети и используется протоколами OPC, чтобы определить доступные Серверы OPC на том компьютере. В любом приложении OPC Toolbox™ необходимо знать имя хоста Сервера OPC, так, чтобы связь с тем хостом могла быть установлена. Ваш администратор сети может предоставить список имен хоста, которые обеспечивают Серверы OPC в вашей сети. В этом примере вы будете использовать localhost
как имя хоста, потому что вы соединитесь с Сервером OPC на той же машине как клиент.
Вторые данные являются ID сервера Сервера OPC. Каждый Сервер OPC на конкретном хосте идентифицирован уникальным ID сервера (также названный ID Программы или ProgID), который выделяется тому серверу на установке. ID сервера является вектором символов, обычно содержащим периоды.
Несмотря на то, что ваш администратор сети может предоставить список идентификаторов сервера для конкретного хоста, можно запросить хост ко всем доступным Серверам OPC. Узнайте, что Доступные Серверы HDA обсуждают, как запросить хосты из командной строки.
Используйте opchdaserverinfo
функционируйте, чтобы запросить из командной строки.
hostInfo = opchdaserverinfo('localhost') hostInfo = 1x4 OPC HDA ServerInfo array: index Host ServerID HDASpecification Description ----- --------- --------------------------------- ----- ------------------------------------------------ 1 localhost Advosol.HDA.Test.3 HDA1 Advosol HDA Test Server V3.0 2 localhost IntegrationObjects.OPCSimulator.1 HDA1 Integration Objects OPC DA DX HDA Simulator 2 3 localhost IntegrationObjects.OPCSimulator.1 HDA1 Integration Objects' OPC DA/HDA Server Simulator 4 localhost Matrikon.OPC.Simulation.1 HDA1 MatrikonOPC Server for Simulation and Testing |
Исследование возвращенной структуры более подробно обеспечивает идентификаторы сервера каждого Сервера OPC.
allServers = {hostInfo.ServerID}
allServers = Columns 1 through 3 'Advosol.HDA.Test.3' 'IntegrationObjects.OPCSimulator.1' 'IntegrationObjects.OPCSimulator.1' Column 4 'Matrikon.OPC.Simulation.1'
После определения имени хоста и ID сервера Сервера OPC, чтобы соединиться с, создайте объект клиента HDA OPC. Клиент управляет состоянием связи к серверу и хранит события, которые происходят с того сервера.
Используйте opchda
функция, задавая имя хоста и аргументы Server ID.
hdaClient = opchda('localhost','Matrikon.OPC.Simulation.1')
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.
Доступ к Историческим данным OPC к Объектам клиента автоматически не соединяется с сервером, когда они создаются.
Используйте connect
функционируйте, чтобы соединить объект клиента HDA OPC с сервером в командной строке.
connect(hdaClient)
После соединения с сервером HDA можно считать значения исторических данных для Saw-toothed Waves.Real8
и Triangle Waves.Real8
элементы. Сервер Симуляции Matrikon хранит данные только для элементов, которые были активированы и считаны OPC Data доступ к клиенту. Поэтому запустите этот код, чтобы сгенерировать и автоматически хранить данные в историке.
Введите следующее в командной строке:
da = opcda('localhost','Matrikon.OPC.Simulation.1'); connect(da); grp = addgroup(da); additem(grp,'Saw-toothed Waves.Real8'); additem(grp,'Triangle Waves.Real8'); logDuration = 2*60; logRate = 0.2; numRecords = ceil(logDuration./logRate); grp.UpdateRate = logRate; grp.RecordsToAcquire = numRecords; start(grp) wait(grp)
Чтобы считать исторические ценности из сервера HDA для области значений определенного времени, используйте readRaw
функция. Эта функция берет список элементов, а также время начала и конца (разграничивающий отрезок времени), для которых исторических данных требуется.
data = hdaClient.readRaw({'Saw-toothed Waves.Real8','Triangle Waves.Real8'},now-100000,now) data = 1-by-2 OPC HDA Data object: ItemID Value Start TimeStamp End TimeStamp Quality ----------------------- ----------------- ----------------------- ----------------------- ---------------------- Saw-toothed Waves.Real8 200 double values 2010-11-02 12:22:32.981 2010-11-02 12:23:13.363 1 unique quality [Raw] Triangle Waves.Real8 199 double values 2010-11-02 12:22:33.141 2010-11-02 12:23:13.293 1 unique quality [Raw] |
Полученные исторические данные содержат Значение, Метку времени и Качество для каждой точки данных. Чтобы просмотреть эти элементы от предыдущего примера, используйте следующие инструкции:
data.Value data.TimeStamp data.Quality
Используйте этот код, чтобы сгенерировать фигуру графика:
plot(data) axis tight datetick('x','keeplimits') legend(data.ItemID)
После использования OPC Toolbox возражает в командной строке MATLAB® или от ваших собственных функций, необходимо удалить их из механизма OPC Toolbox с delete
функция. Обратите внимание на то, что, когда вы удаляете объект тулбокса, дочерние элементы того объекта автоматически удалены из механизма тулбокса.
disconnect(hda) delete(hdaClient) clear hdaClient data
Детали управления объектами OPC Toolbox обсуждены в, Удаляют Объекты.