Отображение графического тренда 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,...)
Имя свойства | Описание | Дефолт |
|---|---|---|
| Определяет количество секунд истории для отображения на графике. |
|
| Определяет родительские объекты осей, в которых будут отображаться тренды. Значение может быть скаляром или вектором той же длины, что и количество элементов в | Текущая система координат |
| Определяет типы графика для каждого элемента. Допустимые типы графика |
|
| Устанавливает формат отображения для оси X всех объектов осей, в которых строятся данные. |
|
| Определяет количество секунд в истории для хранения всех элементов. Установка этого значения на число, больше, чем значение |
|
Можно исправить пределы оси 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]);