Доступ к данным в командной строке

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

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

Примечание

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

Шаг 1: найдите свой OPC Data доступ к серверу

На этом шаге вы получаете два данные, что тулбокс должен однозначно определить OPC Data доступ к серверу, с которым вы хотите соединиться. Вы используете эту информацию при создании OPC Data доступ к Объекту клиента (opcda объект клиента), описанный на Шаге 2: Создайте OPC Data доступ к Объекту клиента.

Первые данные являются именем хоста сервера. Имя хоста (описательное имя как "PlantServer"или IP-адрес, такой как 192.168.16.32) квалифицирует тот компьютер в сети и используется OPC Data доступ к протоколам, чтобы определить доступные Серверы OPC на том компьютере и связаться с компьютером, чтобы установить связь с сервером. В любом приложении OPC Toolbox необходимо знать имя хоста Сервера OPC, так, чтобы связь с тем хостом могла быть установлена. Ваш администратор сети может предоставить список имен хоста, которые обеспечивают Серверы OPC в вашей сети. В этом примере вы будете использовать localhost как имя хоста, потому что вы соединитесь с Сервером OPC на той же машине как клиент.

Вторые данные являются ID сервера Сервера OPC. Каждый Сервер OPC на конкретном хосте идентифицирован уникальным ID сервера (также названный ID Программы или ProgID), который выделяется тому серверу на установке. ID сервера является вектором текстового символа, обычно содержащим периоды.

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

Используйте opcserverinfo функция, чтобы сделать запрос из командной строки.

hostInfo = opcserverinfo('localhost')
hostInfo = 
                 Host: 'localhost'
             ServerID: {1x3 cell}
    ServerDescription: {1x3 cell}
     OPCSpecification: {'DA2' 'DA2' 'DA2'}
    ObjectConstructor: {1x3 cell}

Исследование возвращенной структуры более подробно обеспечивает идентификаторы сервера каждого Сервера OPC.

allServers = hostInfo.ServerID'
allServers = 
    'Matrikon.OPC.Simulation.1'
    'ICONICS.Simulator.1'
    'Softing.OPCToolboxDemo_ServerDA.1'

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

После определения имени хоста и ID сервера Сервера OPC, чтобы соединиться с, можно создать opcda объект клиента. Клиент управляет состоянием связи к серверу и хранит любые события, которые происходят с того сервера (такого как уведомление о состоянии изменения данных, которое называется, событие изменения данных) в конечном счете регистрируют. opcda объект клиента также содержит любые Групповые объекты Доступа к данным, которые вы создаете на клиенте. Для получения дополнительной информации на иерархии объектов OPC Toolbox, смотрите Иерархию объектов Тулбокса для Стандарта Доступа к данным.

Используйте opcda функция, чтобы задать имя хоста и ID Сервера.

da = opcda('localhost','Matrikon.OPC.Simulation.1')
da =
   OPC Data Access Object: localhost/Matrikon.OPC.Simulation.1
      Server Parameters
         Host:           localhost
         ServerID:       Matrikon.OPC.Simulation.1
         Status:         disconnected
      Object Parameters
         Group:          0-by-1 dagroup object

Для получения дополнительной информации при создании клиентов, смотрите, Создают Объекты Доступа к данным OPC Toolbox.

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

Доступ к OPC Data к Объектам клиента автоматически не соединяется с сервером, когда они создаются. Это позволяет вам полностью конфигурировать иерархию объектов OPC Toolbox (клиент с группами и элементами) прежде, чем связать с сервером, или без сервера, даже присутствующего.

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

connect(da)

Шаг 4: создайте OPC Data доступ к групповому объекту

Вы создаете Групповые объекты Доступа к данным (dagroup объекты), чтобы управлять и содержать набор объектов Элемента Доступа к данным (daitem объекты. dagroup возразите средствам управления, как часто сервер должен уведомить вас относительно любых изменений в значениях элемента, управляет состоянием активации элементов в той группе, и задает, запускает и прекращает регистрировать задачи.

Самостоятельно, dagroup объекты не полезны. Если вы добавляете элементы в группу, можно управлять теми элементами, считать значения из сервера для всех элементов в группе и данные логов для тех элементов, с помощью dagroup объект. На Шаге 5 вы просматриваете Сервер OPC доступные теги. Шаг 6 включает добавление элементов, сопоставленных с теми тегами к dagroup объект.

Используйте addgroup функция, чтобы создать dagroup объекты из командной строки. Этот пример добавляет группу в opcda объект клиента уже создается.

grp = addgroup(da)
grp =
   OPC Group Object: Group0
      Object Parameters
         GroupType:        private
         Item:             0-by-1 daitem object
         Parent:           localhost/Matrikon.OPC.Simulation.1
         UpdateRate:       0.5
         DeadbandPercent:  0
      Object Status
         Active:           on
         Subscription:     on
         Logging:          off
         LoggingMode:      memory

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

Шаг 5: просмотрите пробел имени сервера

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

Примечание

Если вы знаете идентификаторы элемента серверных элементов, вы интересуетесь, можно пропустить этот раздел и перейти непосредственно к Шагу 6: Добавьте OPC Data доступ к Элементам Группе. В этом примере примите, что вы не знаете точные идентификаторы элемента, несмотря на то, что вы действительно знаете, что хотите регистрировать информацию от Пилообразных Волн и Треугольных Волн, обеспеченных Сервером Симуляции Matrikon.

Из командной строки можно “просмотреть” пробел имени сервера с помощью serveritems функция. Необходимо предоставить связанный opcda объект клиента к serveritems функция и дополнительный аргумент вектора символов, чтобы ограничить возвращенные результаты. Вектор символов может содержать подстановочные символы (*). Пример использования serveritems следующие.

sawtoothItems = serveritems(da,'*Saw*')
sawtoothItems = 
    'Saw-toothed Waves.'
    'Saw-toothed Waves.Int1'
    'Saw-toothed Waves.Int2'
    'Saw-toothed Waves.Int4'
    'Saw-toothed Waves.Money'
    'Saw-toothed Waves.Real4'
    'Saw-toothed Waves.Real8'
    'Saw-toothed Waves.UInt1'
    'Saw-toothed Waves.UInt2'
    'Saw-toothed Waves.UInt4'

Командой для получения свойств серверного элемента является serveritemprops. Смотрите serveritemprops страница с описанием для деталей.

Шаг 6: добавьте OPC Data доступ к элементам группе

Теперь, когда вы нашли серверные элементы в пространстве имен, можно добавить объекты Элемента Доступа к данным (daitem объект) для тех тегов к dagroup возразите, что вы создали на Шаге 4. daitem объект является ссылкой на тег в пространстве имен, вводя значение тега и дополнительную информацию о том элементе, таком как Канонический Тип данных.

Чтение значения с сервера

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

Каждый раз, когда вы читаете или получаете данные от сервера до события изменения данных, сервер предоставляет вам обновленное Значение, Качество и значения Метки времени.

Добавление большего количества элементов группе

Используйте additem функция, чтобы добавить элементы в dagroup объект. Необходимо передать dagroup возразите, к которому элементы будут добавлены, и полностью определенный ID элемента как вектор символов. Идентификаторы элемента были найдены с помощью serveritems функция на Шаге 5.

itm1 = additem(grp,'Saw-toothed Waves.Real8')
itm1 =
   OPC Item Object: Saw-toothed Waves.Real8
      Object Parameters
         Parent:           Group0
         AccessRights:     read/write
         DataType:         double
      Object Status
         Active:           on
      Data:
         Value:   
         Quality: 
         Timestamp:

Можно добавить несколько элементов в группу в одном additem вызовите путем определения нескольких ItemID значения в массиве ячеек.

itms = additem(grp,{'Triangle Waves.Real8', ...
                    'Triangle Waves.UInt2'})
itms =
   OPC Item Object Array:
   Index:  DataType:  Active:  ItemID:
   1       double     on       Triangle Waves.Real8
   2       uint16     on       Triangle Waves.UInt2

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

Шаг 7: просмотрите все значения элемента

Групповой объект позволяет вам считать и записать значения из всех элементов в группе и данные логов к памяти и/или диску.

Значение, Качество и значения Метки времени элементов постоянно обновляются, пока вам включили Подписку. Подписка управляет, отправляются ли события изменения данных Сервером OPC в тулбокс для элементов, значения которых изменяются. UpdateRate и DeadbandPercent задайте, как часто элементы должны быть запрошены для нового значения, и изменяется ли все значение, или только изменения заданной величины отправляются в тулбокс. Для получения дополнительной информации по Подписке, смотрите События Изменения Данных и Подписку.

Путем наблюдения данных некоторое время, вы будете видеть, что три сигнала, кажется, имеют подобные области значений. Это указывает, что можно визуализировать данные в тех же осях, когда вы строите их на Шаге 10.

На Шаге 9 вы сконфигурируете задачу логгирования и данные логов для этих трех элементов.

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

Шаг 8: сконфигурируйте свойства группы для логгирования

Теперь, когда ваш dagroup объект содержит элементы, используйте группу, чтобы управлять взаимодействием тех элементов с сервером. На этом шаге сконфигурируйте группу к данным логов от тех элементов в течение 2 минут в 0,2 вторых интервалах. Можно использовать записанные данные на Шаге 9, чтобы визуализировать сигналы, произведенные Сервером Симуляции Matrikon.

OPC Data доступ к Серверам обеспечивают доступ только, чтобы “жить” данные (последнее известное значение каждого серверного элемента в их пространстве имен). Во многих случаях одно значение сигнала не полезно, и временные ряды, содержащие значение сигналов в течение времени, полезны в анализе того сигнала или набора сигнала. Программное обеспечение OPC Toolbox™ позволяет вам регистрировать все элементы в группе к диску или памяти, и получать те данные для анализа в MATLAB®.

Вы конфигурируете сеанс логгирования с помощью dagroup объект. Путем изменения свойств сопоставил с логгированием, вы управляете, как часто данные должны быть отправлены от сервера до клиента, сколько записей группа должна регистрировать, и где регистрировать данные.

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

logDuration = 2*60;
logRate = 0.2;
numRecords = ceil(logDuration./logRate);
grp.UpdateRate = logRate;
grp.RecordsToAcquire = numRecords;

Шаг 9: регистрируйте данные о сервере OPC

Теперь, когда вы сконфигурировали dagroup свойства логгирования объекта, ваш объект может регистрировать необходимое количество данных к памяти.

Используйте start функция с необходимым dagroup возразите, чтобы запустить задачу логгирования.

start(grp)

Задача логгирования происходит в фоновом режиме. Можно продолжить работать в MATLAB, в то время как задача логгирования в действии. Задача логгирования незатронута другими расчетами, происходящими в MATLAB, и обработка MATLAB не блокируется задачей логгирования. Можно дать MATLAB команду ожидать задачи логгирования завершиться, с помощью wait функция.

wait(grp)

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

После логгирования концов передайте данные от механизма тулбокса до рабочего пространства MATLAB с помощью getdata функция, которая обеспечивает два типа выхода, в зависимости от ее 'datatype' аргумент. Для получения дополнительной информации смотрите getdata страница с описанием. В этом случае вы получаете данные в отдельные массивы и отображаете данные на графике.

Этот пример производит фигуру:

[logIDs, logVal, logQual, logTime, logEvtTime] = ...
    getdata(grp,'double');
plot(logTime,logVal)
axis tight
datetick('x','keeplimits')
legend(logIDs)

Заметьте, как три сигнала кажутся почти абсолютно не связанными, за исключением периода двух Real8 сигналы. Пиковые значения для каждого сигнала отличаются, как периоды для двух Triangle Waves сигналы. Путем визуализации данных можно получить некоторое понимание путем, Сервер Симуляции Matrikon OPC симулирует каждый тег. В этом случае это очевидно тот Real8 и UInt2 сигналы имеют различный период.

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

После окончания задачи OPC необходимо удалить объекты задачи из памяти и очистить рабочее пространство MATLAB переменных, сопоставленных с этими объектами.

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

disconnect(da)
delete(da)
clear da grp itm
close(gcf)

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