exponenta event banner

Доступ к данным с помощью проводника доступа к данным OPC

Обзор процедуры

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

Примечание

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

Пример в этом разделе использует приложение OPC Data Access Explorer. Кроме того, каждый шаг содержит информацию о том, как завершить этот шаг с помощью кода командной строки. Весь пример содержится в файле примера opcdemo_quickstart.

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

Дважды щелкните обозреватель доступа к данным OPC в меню «Приложения». Приложение открывается без созданных хостов, серверов или объектов панели инструментов. На следующем рисунке показаны основные компоненты OPC Data Access Explorer.

OPC Data Access Explorer with panes for hosts and servers, toolbox objects, and properties

На следующих шагах каждая из панелей заполняется информацией, необходимой для регистрации данных, и данные заносятся в журнал путем создания объектов OPC Toolbox и взаимодействия с ними.

Эквивалент командной строки

Чтобы открыть обозреватель доступа к данным OPC из командной строки, введите opcDataAccessExplorer в подсказке MATLAB ®.

Шаг 2: Найдите сервер OPC

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

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

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

Хотя администратор сети сможет предоставить вам список идентификаторов серверов для определенного хоста, можно запросить у хоста все доступные OPC-серверы. В разделе Обнаружение доступных серверов доступа к данным обсуждается, как запрашивать хосты из командной строки.

С помощью OPC Data Access Explorer можно выполнить обзор хоста, выполнив следующие действия.

  1. На панели «Хосты и OPC-серверы» щелкните значок «Добавить хост», чтобы открыть диалоговое окно «Имя хоста», показанное ниже.

    Host name dialog with localhost

  2. В диалоговом окне «Имя хоста» введите имя хоста. В этом случае можно использовать "localhost"псевдоним.

    localhost

    Нажмите кнопку OK. Имя узла будет добавлено в дерево OPC Network, а серверы OPC, установленные на этом узле, будут автоматически найдены и добавлены в дерево. Панель Хосты и серверы OPC должна выглядеть так же, как показано ниже.

    OPC Data Access Server showing localhost servers

    Следует отметить, что локальный хост в этом примере предоставляет три OPC-сервера. Идентификатор сервера для этого примера: 'Matrikon.OPC.Simulation.1'.

Эквивалент командной строки

Эквивалент командной строки для этого шага использует функцию 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'

Шаг 3: Создание объекта клиента доступа к данным OPC

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

С помощью обозревателя OPC Data Access Explorer можно создать клиент непосредственно на панели Hosts and OPC Servers.

Щелкните правой кнопкой мыши Matrikon и выберите Создать клиент. Клиент будет создан на панели OPC Toolbox Objects, как показано на следующем рисунке.

Creating a client for the Matrikon server

Имя клиента (отображается на панели OPC Toolbox Objects): Host/ServerID, где Host является именем хоста и ServerID - идентификатор сервера, связанный с этим клиентом. В этом примере имя клиента: 'localhost/Matrikon.OPC.Simulation.1'

После создания клиента можно просмотреть свойства объекта клиента на панели Свойства объекта (Object Properties), как показано на следующем рисунке.

OPC client properties

Альтернативные методы создания клиентов

Можно создать клиент в обозревателе доступа к данным OPC одним из следующих способов:

  • Выберите узел MATLAB OPC Clients на панели OPC Toolbox Objects и щелкните Add Client на панели OPC Toolbox Objects.

  • Выберите Добавить в меню Клиент.

  • Щелкните правой кнопкой мыши узел MATLAB OPC Clients в дереве OPC Toolbox Objects и выберите Create Client.

При выборе одного из этих методов появляется диалоговое окно с запросом имени хоста и идентификатора сервера.

Add client dialog with fields for host name and server ID

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

Эквивалент командной строки

Эквивалент командной строки этого шага включает в себя использование opcda , указывая имя хоста и аргументы идентификатора сервера.

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.

Шаг 4. Подключение к серверу OPC

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

Примечание

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

Для подключения клиента к серверу можно использовать панель инструментов OPC Toolbox Objects, показанную на следующем рисунке.

OPC Toolbox Objects toolbar

Щелкните Соединить (Connect) на панели инструментов OPC Toolbox Objects (Объекты панели инструментов OPC). Если клиент может подключиться к серверу, значок этого клиента в дереве объектов OPC Toolbox изменится, чтобы показать, что клиент подключен. Если клиенту не удалось подключиться к серверу, появится диалоговое окно с сообщением об ошибке. Сведения о том, почему клиент не может подключиться к серверу, см. в разделе Устранение неполадок.

При подключении opcda клиентский объект к серверу, связанному с этим клиентом, узел сервера на панели Hosts and OPC Servers также обновляется, чтобы показать, что сервер имеет подключение к клиенту в приложении. При таком подключении свойства сервера отображаются на панели Hosts and OPC Servers. В этом примере типичное представление приложения после подключения к клиенту показано на следующем рисунке.

OPC Data Access Explorer after connecting to client

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

Эквивалент командной строки

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

connect(da)

Шаг 5: Создание объекта группы доступа к данным OPC

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

Создание dagroup щелкните Добавить группу на панели инструментов OPC Toolbox Objects. Группа создается и автоматически именуется сервером OPC или программным обеспечением OPC Toolbox.

Toolbox object showing group properties

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

Эквивалент командной строки

Создать dagroup объекты из командной строки, вы используете addgroup функция. В этом примере группа добавляется к 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

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

Шаг 6: Обзор пространства имен серверов

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

Примечание

Если вам известны идентификаторы интересующих вас элементов сервера, вы можете пропустить этот раздел и перейти к шагу 7 Добавление элементов доступа к данным OPC в группу. В этом примере предположим, что не известны точные идентификаторы элементов, хотя известно, что требуется регистрировать информацию о пилообразных волнах и треугольных волнах, предоставляемых сервером моделирования Matrikon.

Вкладка Пространство имен (Namespace) на панели Узлы и серверы (Hosts and Servers) позволяет графически просматривать пространство имен сервера. Поскольку большинство серверов OPC содержат тысячи элементов сервера, извлечение пространства имен может занять много времени. При первом подключении к серверу пространство имен не извлекается автоматически. Необходимо запросить пространство имен с помощью одной из кнопок View на панели инструментов Server Namespace, как показано на следующем рисунке.

Server namespace toolbar

Щелкните Просмотр иерархического пространства имен, чтобы получить иерархическое пространство имен для сервера OPC Matrikon. На панели отображается древовидное представление, содержащее пространство имен Matrikon. Панель должна выглядеть так, как показано на следующем рисунке.

Name space with different nodes

Примечание

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

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

В этом примере необходимо найти сигналы пилообразных и треугольных волн на сервере моделирования Matrikon. Этого можно достичь с помощью следующих шагов:

  1. Убедитесь, что просматривается иерархическое пространство имен.

  2. Разверните узел Элементы моделирования. Вы увидите все типы сигналов, моделируемые сервером Matrikon.

  3. Разверните узел «Пилообразные волны». Появляется ряд конечных узлов. Конечный узел не содержит других узлов и обычно обозначает тег на сервере OPC.

  4. Выберите Real8 листовой узел. Свойства элемента сервера отображаются в таблице свойств под деревом пространства имен, как показано на следующем рисунке.

    Node properties

    Обратите внимание на Item Canonical DataType собственность, которая double. Canonical DataType - это тип данных, используемый сервером для хранения значения элемента сервера.

  5. Выберите UInt2 листовой узел. Вы заметите, что свойства обновляются, и Item Canonical Datatype свойство для этого элемента сервера: uint16. (MATLAB обозначает целые числа с числом битов в целом числе, например uint16; Matrikon Server использует соглашение COM Variant, обозначающее количество байтов, например UInt2.)

Можно продолжить просмотр пространства имен серверов с помощью панели Пространство имен серверов в app. Уникальная характеристика сервера моделирования Matrikon состоит в том, что подключенные клиенты можно просматривать через пространство имен, выбрав узел Клиенты в корне пространства имен.

На шаге 7 в созданный объект группы добавляются три элемента с помощью панели Пространство имен сервера (Server Namespace).

Эквивалент командной строки

В командной строке можно просмотреть пространство имен сервера с помощью 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 для получения дополнительной информации об использовании функции.

Шаг 7: Добавление элементов доступа к данным OPC в группу

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

С помощью приложения можно создавать элементы непосредственно из дерева пространства имен с помощью контекстного меню на каждом узле дерева.

Перейдите в раздел «Моделируемые элементы» > «Пилообразные волны» > «Real8» и щелкните правой кнопкой мыши этот узел, чтобы открыть контекстное меню. При выборе пункта Добавить в в контекстном меню появляется список созданных групп для элемента, связанного с этим сервером, и пункт меню для создания новой группы (и добавления элемента в эту группу).

Меню, отображаемое в этом примере, показано на следующем рисунке.

Adding an item to a group

Щелкните Group0, чтобы добавить элемент в уже существующую группу, созданную на шаге 5. A daitem создается на панели «Объекты панели инструментов OPC». На следующем рисунке показан вновь созданный элемент, выделенный свойствами элемента, показанными на панели «Свойства».

New item in toolbox objects display

Считывание значения с сервера

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

Щелкните Прочитать (Read). Поля Значение, Качество и Метка времени в приложении будут обновлены. Значение содержит последнее значение, считанное сервером с данного элемента. Качество позволяет определить, насколько значимо значение. Если качество Good, то значение может быть доверенным, чтобы быть таким же, как устройство или объект, на который ссылается элемент, но только в момент времени, указанный в поле Timestamp. Если Качество не является Good, то значение элемента сомнительно.

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

Добавить дополнительные элементы в группу

С помощью панели Пространство имен разверните узел Треугольные волны и добавьте элементы для Real8 и UInt2 элементов сервера. После этого с вами будут связаны три элемента dagroup объект. На шаге 8 настраивается сеанс регистрации для этой группы. Затем выполняется регистрация данных на шаге 9 из трех только что созданных элементов и визуализация данных на шаге 10.

Эквивалент командной строки

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

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

Дополнительные сведения о добавлении элементов в группы см. в разделе Создание объектов элементов доступа к данным.

Шаг 8: Просмотр всех значений позиций

Можно просмотреть значение, качество и временную метку для каждого элемента с помощью панели свойств элемента. Однако это представление предоставляет доступ только к одному элементу одновременно. Групповой объект предназначен для чтения и записи значений из всех элементов группы, а также для регистрации данных в памяти и/или на диске. Панель Групповое чтение/запись (Group Read/Write) используется для просмотра значений элементов, созданных на шаге 7, чтобы определить приблизительный диапазон значений, по которым изменяется значение каждого элемента. Информация с этой панели поможет проверить, обновляются ли данные и можно ли выводить данные на печать в одном наборе осей или на вложенных графиках.

Щелкните Group0 на панели «Объекты панели инструментов OPC». Выберите вкладку Чтение/запись в верхней части панели свойств группы. Теперь панель OPC Toolbox Objects должна выглядеть аналогично той, которая показана на следующем рисунке.

Read/write settings for selected group

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

Наблюдая за данными в течение некоторого времени, вы увидите, что три сигнала, по-видимому, имеют одинаковые диапазоны. Это означает, что можно визуализировать данные по тем же осям при построении графика на шаге 11.

Панель Групповое чтение/запись (Group Read/Write) можно также использовать для одновременной записи значений во многие элементы. Укажите значение в столбце Запись таблицы данных элемента для каждого элемента, в который требуется выполнить запись, и нажмите кнопку Запись, чтобы иметь возможность записи в эти элементы.

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

Эквивалент командной строки

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

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

Теперь, когда ваш dagroup содержит элементы, можно использовать группу для управления взаимодействием этих элементов с сервером. На этом шаге группа настраивается для регистрации данных из этих элементов в течение 2 минут с интервалом в 0 2 секунды. Для визуализации сигналов, генерируемых сервером моделирования Matrikon, используются зарегистрированные данные на шаге 11.

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

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

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

Logging pane for selected group

С помощью панели Ведение журнала настройте сеанс ведения журнала, выполнив следующие действия.

  1. Установить скорость обновления в 0.2.

  2. Установка количества записей для входа в систему 600. Поскольку требуется выполнить вход в систему в течение 2 минут (120 секунд) с частотой обновления 0,2 секунды, требуется 600 (т.е. 120/0,2) записей.

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

На шаге 10 регистрируются данные. На шаге 11 будут визуализированы данные.

Эквивалент командной строки

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

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

Шаг 10: Регистрация данных сервера OPC

На шаге 9 вы настроили dagroup свойства регистрации объекта. Теперь объект готов для регистрации требуемого объема данных в памяти.

Нажмите кнопку Пуск на вкладке Ведение журнала. Начинается задача регистрации, и программный механизм OPC Toolbox принимает и сохраняет данные с сервера OPC. Индикатор выполнения показывает состояние задачи регистрации, как показано на следующем рисунке.

Logging progress bar

Примечание

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

Дождитесь завершения задачи, прежде чем переходить к шагу 11.

Эквивалент командной строки

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

start(grp)

Несмотря на то, что операция ведения журнала выполняется в фоновом режиме, можно дать команду MATLAB дождаться завершения задачи ведения журнала с помощью wait функция.

wait(grp)

Шаг 11: Постройте график данных

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

После остановки задачи ведения журнала область ведения журнала будет обновлена, чтобы показать, что задача завершена. Пример части состояния ведения журнала на панели Ведение журнала (Logging) после завершения задачи показан на следующем рисунке.

Logging progress complete

Чтобы просмотреть данные из приложения, щелкните График. Зарегистрированные данные извлекаются из механизма панели инструментов и отображаются в окне рисунка MATLAB. Формат отображаемых параметров данных и аннотаций определяется параметрами в окне Опции печати (Plot options) панели Ведение журнала (Logging). По умолчанию график будет аннотирован любыми точками данных, имеющими качество, отличное от Good. Значения, качество которых является Bad аннотированы большим красным кругом с черной границей и значениями с качеством Repeat аннотированы желтой звездой. Всегда следует просматривать возвращаемое качество со значением элемента, чтобы определить, является ли значение значимым или нет. Взаимосвязь между значением и качеством элемента обсуждается в OPC Data: Value, Quality и TimeStamp.

Пример выводимых на печать данных показан на следующем рисунке.

Data plot indicating various quality

Примечание

Ваши построенные на графике данные почти наверняка не будут выглядеть как показанные здесь, потому что задача регистрации была выполнена в другое время.

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

Эквивалент командной строки

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

В приведенном ниже примере воспроизводится изображение, полученное при нажатии кнопки «Печать».

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

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

По завершении задания OPC следует удалить объекты задания из памяти и очистить рабочую область MATLAB от переменных, связанных с этими объектами. Приложение OPC Data Access Explorer автоматически удаляет все создаваемые объекты из механизма панели инструментов. Если вы работаете только в OPC Data Access Explorer, вам не нужно будет выполнять дальнейшую очистку, кроме как закрыть приложение. Закройте приложение с помощью параметра «Выход» в меню «Файл» или с помощью кнопки «Закрыть» в строке заголовка. Появится запрос на сохранение сеанса OPC Data Access Explorer. Можно сохранить сеанс в файл сеанса OPC (.osf файл) для последующего использования или выход без сохранения.

Эквивалент командной строки

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

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

Дополнительные сведения об управлении объектами панели инструментов OPC см. в разделе Удаление объектов.