Отображение графического тренда данных OPC для группы
H = trend(GObj)
H = trend(GObj, 'PropertyName', PropertyValue,...)
H = trend(GObj) отображает последние 100 точек оперативных данных для элементов, определенных в dagroup объект GObj в текущих осях. GObj должна быть активной группой, содержащей один или несколько элементов. Дескрипторы созданных объектов Handle Graphics ® возвращаются вH.
Все элементы отображаются в одинаковых осях без масштабирования. Новые данные отображаются справа от осей, а самые старые - слева. Если старые данные отсутствуют (например, в начале графика), оси пусты. Объекты Handle Graphics (включая пределы оси) обновляются новыми данными всякий раз, когда групповой объект получает событие Data Change от сервера OPC.
H = trend(GObj, ' позволяет передавать дополнительные пары свойства/значения для задания дополнительных свойств создаваемых графиков. Специальные пары свойство/значение перечислены в следующей таблице. Если какое-либо свойство отсутствует в этом списке, эта пара свойство/значение передается созданным объектам Handle Graphics. PropertyName', PropertyValue,...)
Имя свойства | Описание | Дефолт |
|---|---|---|
| Определяет количество секунд в журнале для отображения на графике. |
|
| Определяет родительские объекты осей для отображения трендов. Значение может быть скаляром или вектором той же длины, что и количество элементов в | Текущие оси |
| Определяет типы печати для каждого элемента. Допустимые типы печати: |
|
| Задает формат отображения для оси X всех объектов осей, в которые выводятся данные. |
|
| Определяет количество секунд хранения журнала для всех элементов. Установка для этого значения числа, большего, чем значение |
|
Можно зафиксировать оси y-limits для определенного значения с помощью YLim свойства осей, содержащих визуализированные данные. Например, чтобы задать пределы оси Y для диапазона приборов, сообщаемого сервером OPC, используйте следующий код:
props = serveritemprops(da,itmName,102:103); currentAxes = gca; currentAxes.YLim = [props.PropValue];
При добавлении элементов в группу с активным трендом элемент не отображается. Звонить trend чтобы снова включить этот элемент в представление тренда. (Если установить состояние удержания осей в 'on', когда вы звоните trendсуществующие объекты тренда используются повторно, не разрушая их текущее представление.)
При удалении элемента из группы, которая в настоящее время имеет активный тренд, на дисплее тренда отсутствуют данные для этого элемента, и тренд элемента в конечном итоге исчезает с графика.
Эта функция перезаписывает следующие свойства объекта группы:
DataChangeFcn устанавливается для обновления осей новыми данными при каждом получении от сервера OPC. При наличии существующего DataChangeFcn обратный вызов, функция тренда перезаписывает обратный вызов.
Subscription свойство настроено на 'on' для получения событий изменения данных с сервера OPC. Вы можете изменить Subscription кому 'off' после звонка trend, в этом случае тренд прекращает обновляться до тех пор, пока не будет установлен Subscription назад в 'on' или выдать readasync команда.
Настройте группу с двумя элементами:
da = opcda('localhost','Matrikon.OPC.Simulation'); connect(da); grp = addgroup(da,'ExOPCTREND'); itm1 = additem(grp,'Triangle Waves.Real8'); itm2 = additem(grp,'Saw-Toothed Waves.Int2');
Создайте тренд, показывающий последние две минуты данных в двух отдельных осях:
ax1 = subplot(2,1,1); ax2 = subplot(2,1,2); trend(grp,'DisplayTime',120,'Parent',[ax1,ax2]);