Перейти к основному содержимому

API iRidium. Тренды (Trend)

Linear Trend - это тип графического элемента (Item), который отображает временно́й график в виде одной или нескольких кривых. Одна из кривых является главной, и она задаёт вид отображения всего тренда.

Ось времени - горизонтальная ось X. Можно задавать дату и время начальной (StartTime) и конечной (EndTime) точек оси времени, это позволяет отображать исторические (архивные) данные на тренде. Также тренд может следить за вновь поступающими значениями кривых и в реальном времени перестраивать отображение всех кривых, в этом случае следует использовать метод .SetDynamic().

Пример

Подсказка

Функционал тренда работает с двумя проектами - для сервера (файл .sirpz) и для панели (файл .irpz). Сервер получает значение тэга и сохраняет его в своей базе данных. Панель запрашивает у сервера данные в необходимом временном диапазоне и затем отображает их на экране в виде тренда. Управление отображением тренда осуществляется в скрипте панельного проекта (.irpz).

примечание

Для успешного запуска проектов следует загрузить проект сервера с использованием iRidium transfer на реальный контроллер или в компьютер с запущенным iRidium server. Проект панели можно загрузить на реальное устройство, либо запустить в эмуляторе. При этом в проекте панели нужно предварительно задать правильный IP-адрес сервера:

host_change1.png

Методы объекта Linear Trend

.SetDynamic()

задаёт диапазон времени по оси времени тренда, а также перманентно привязывает крайнюю правую точку оси к текущему времени.

Синтаксис

.SetDynamic(range);

на входезначениеописание
range1.0type: number
диапазон времени в сутках в формате iDate
на выходе
-

Пример

`IR.GetPage("Page 1").GetItem("Trend 1").SetDynamic(5/(24*60));      // range = 5 min`

.GetCurve()

даёт доступ к кривой на тренде и её настройкам.

Синтаксис

.GetCurve(name);

на входезначениеописание
name"Curve 1"type: string
имя кривой, к которой нужно получить доступ
на выходе
-[ ]type: object
объект кривой

Пример

`var Curve1 = IR.GetPage("Main_page").GetItem("Trend").GetCurve("Temperature");`

.GetCurve().SetCurveTag()

.SetCurveTag() позволяет указать переменную, график которой будет отображать кривая тренда. Для использования метода, получите доступ к кривой методом .GetCurve()

Синтаксис

.GetCurve(name).SetCurveTag(path);

на входезначениеописание
name"Drivers.Modbus.Register 12"type: string
полное имя переменной (можно посмотреть примеры в диалоге Relations, в панели Programming элемента)
на выходе
-

Пример

IR.GetPage("Main_page").GetItem("Trend").GetCurve("Setpoint").SetCurveTag("Drivers.iRidium Server.KNX.1/4/1");
IR.GetPage("Main_page").GetItem("Trend").GetCurve("Current").SetCurveTag("Drivers.Modbus.Register 12");
IR.GetPage("Main_page").GetItem("Trend").GetCurve("Fan speed").SetCurveTag(""); // clear

Свойства объекта Linear Trend

.StartTime

StartTime43259.4621924type: number
Дата и время начальной точки по оси времени тренда в формате iDate.

.EndTime

EndTime43260.4621924type: number
Дата и время конечной точки по оси времени тренда в формате iDate.
var tomorrow = new iDate()-1;
var tomorrow_start = new iDate(tomorrow[0], tomorrow[1], tomorrow[2]); // midnight time 00:00:00.000
IR.GetPage("Main_page").GetItem("Trend").StartTime = tomorrow_start;
IR.GetPage("Main_page").GetItem("Trend").EndTime = tomorrow_start+1;

Свойства кривой

.XInterval

XInterval365.0type: number
Интервал времени в сутках между подписями по оси времени в формате iDate.
примечание
  • Свойство применяется только к главной кривой тренда.
  • Для аккуратного отображения тренда необходимо задать XInterval в несколько раз меньше, чем длина оси времени на тренде (EndTime - StartTime).

IR.GetPage("Main_page").GetItem("Trend").GetCurve("Temperature").XInterval=1/24; // one hour

.XLabelTemplate

XLabelTemplate"%yy/%mm/%dd"type: string
Формат подписей даты и времени на оси времени.
примечание

Свойство применяется только к главной кривой тренда.

var time = "%hh:%nn:%ss.%ms";         // hh:mm:ss.ms format
var date = "%dd.%mm.%yy"; // dd.mm.yyyy format
IR.GetPage("Main_page").GetItem("Trend").GetCurve("Temperature").XLabelTemplate = time + " " + date;