exponenta event banner

тенденция

Отображение графического тренда данных 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, 'PropertyName', PropertyValue,...) позволяет передавать дополнительные пары свойства/значения для задания дополнительных свойств создаваемых графиков. Специальные пары свойство/значение перечислены в следующей таблице. Если какое-либо свойство отсутствует в этом списке, эта пара свойство/значение передается созданным объектам Handle Graphics.

Имя свойства

Описание

Дефолт

DisplayTime

Определяет количество секунд в журнале для отображения на графике.

100*gObj.UpdateRate

Parent

Определяет родительские объекты осей для отображения трендов. Значение может быть скаляром или вектором той же длины, что и количество элементов в GObj. Если значение является вектором, значение каждого элемента отображается в соответствующем объекте оси.

Текущие оси

PlotType

Определяет типы печати для каждого элемента. Допустимые типы печати: 'line', 'stairs', и 'stem'. Значение может быть скаляром или массивом ячеек той же длины, что и количество элементов в GObj. Если значение является массивом ячеек символьных векторов, тип графика каждого элемента задается соответствующим типом графика в массиве значений.

'line'

DateFormat

Задает формат отображения для оси X всех объектов осей, в которые выводятся данные. DateFormat должен быть одним из форматов дат, распознаваемых datetick.

'HH:MM:SS'

BufferTime

Определяет количество секунд хранения журнала для всех элементов. Установка для этого значения числа, большего, чем значение DisplayTime позволяет приостановить тренд (путем установки Subscription свойства группы для 'off') и панорамирование рассматриваемых осей.

10*DisplayTime

Можно зафиксировать оси 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]);

См. также

Функции

Представлен в R2007b