Доступ к историческим данным

Обзор программирования HDA

Этот раздел иллюстрирует основные шаги, чтобы создать приложение Исторических данных доступа (HDA) OPC Toolbox™ путем получения исторических данных от Треугольных и Пилообразных сигналов Волны Волны, обеспеченных Сервером Симуляции Matrikon™ OPC.

Примечание

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

Шаг 1: найдите свои исторические данные 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'

Шаг 2: создайте исторические данные OPC доступ к объекту клиента

После определения имени хоста и 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.

Шаг 3: соедините с историческими данными OPC доступ к серверу

Доступ к Историческим данным OPC к Объектам клиента автоматически не соединяется с сервером, когда они создаются.

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

connect(hdaClient)

Шаг 4: получите исторические данные

Сгенерируйте исторические данные

После соединения с сервером 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	

Шаг 5: отобразите данные на графике

Используйте этот код, чтобы сгенерировать фигуру графика:

plot(data)
axis tight
datetick('x','keeplimits')
legend(data.ItemID)

Шаг 6: Очистка

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

disconnect(hda)
delete(hdaClient)
clear hdaClient data

Детали управления объектами OPC Toolbox обсуждены в, Удаляют Объекты.