trend

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

Синтаксис

H = trend(GObj)
H = trend(GObj, 'PropertyName', PropertyValue,...)

Описание

H = trend(GObj) отображает самые новые 100 точек живых данных для элементов, определенных в dagroup GObj объекта в текущей системе координат. GObj должна быть активной группой, содержащей один или несколько элементов. Указатели на созданную дескриптивную графику® объекты возвращаются в H.

Все элементы отображаются в одной оси без масштабирования. Новые данные отображаются в крайнем правом углу оси, а самые старые данные отображаются слева. Если старые данные не существуют (например, в начале графика), оси являются пустыми. Объекты Дескриптивной графики (включая пределы по осям) обновляются новыми данными каждый раз, когда групповой объект получает событие Data Change от Сервера OPC.

H = trend(GObj, 'PropertyName', PropertyValue,...) позволяет передавать пары дополнительное свойство/значение для задания дополнительных свойств созданных графиков. Пары специальные свойства/значения перечислены в следующей таблице. Если какого-либо свойства нет в этом списке, пара свойство/значение передается созданным объектам Дескриптивной графики.

Имя свойства

Описание

Дефолт

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 к конкретному значению при помощи YLim свойство осей, содержащих ваши визуализированные данные. Для примера, чтобы задать пределы оси Y к области значений прибора, сообщаемой сервером OPC, используйте следующий код:

props = serveritemprops(da,itmName,102:103);
currentAxes = gca;
currentAxes.YLim = [props.PropValue];

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

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

Эта функция перезаписывает следующие свойства группового объекта:

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

  • The 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