Пожалуйста, включите JavaScript для просмотра этого сайта.

Отчеты Simple-Scada

Допустим, требуется вывести в отчет тренды по переменным проекта. Для примера рассмотрим проект с тремя переменными:

 

Данные переменные архивируются в БД по изменению. Если подключиться к проекту и перейти в меню трендов, то мы увидим следующую картину:

 

Запустим Редактор отчетов (Reports.exe), выберем проект и создадим новый отчет с именем "Вывод_трендов". Для вывода трендов в отчет будем использовать источник данных с типом "Периодический". Создадим источник через меню "Источники" - "Новый источник данных":

 

Назовем источник "Тренды", выберем тип "периодический" и зададим имена переменных как показано ниже:

 

Источник создан, мы видим его в словаре отчета:

 

Теперь нужно добавить в него переменные, тренды которых мы хотим отобразить в отчете. Для этого нужно кликнуть по переменной правой кнопкой мыши и в раскрывшемся меню выбрать пункт "Добавить в источник":

 

Далее, в открывшемся окне выбираем ранее созданный источник данных "Тренды", имя оставляем без изменений, тип колонки "Обычная". Очень важно выбрать правильный тип обработки! Ступенчатые тренды нужно добавлять с типом обработки "точное", а обычные тренды с типом "интерполяция" (принцип работы периодических источников данных описан здесь). У нас в проекте переменная vrStepped имеет ступенчатый тренд, поэтому добавляем ее с типом обработки "точное":

 

Переменные vrSaw и vrRandom не ступенчатые, поэтому добавляем их с типом обработки "интерполяция":

 

После добавления переменных источник будет выглядеть так:

 

Источник подготовлен. Остается только отобразить тренды в отчете. Для этого воспользуемся компонентом "Диаграмма". Чаще всего компонент "Диаграмма" размещается внутри бэнда "Итог отчета", т.к. обычно тренды нужно вывести всего один раз в конце отчета. Создадим на странице бэнд "Итог отчета":

 

Затем расположим в нем диаграмму "Линия":

 

После этого откроется окно "Редактор диаграмм" (если окно не открылось, то дважды кликните по созданной диаграмме ЛКМ). Проще всего задать основные параметры при помощи мастера диаграмм. Для запуска мастера, нажимаем соответствующую кнопку в нижнем левом углу окна:

 

Первый шаг - "Тип диаграммы". Выбираем тип "Линия".  Описание всех типов диаграмм доступно по ссылке.

 

Следующий шаг - "Стиль диаграммы". Мы выберем попроще:

 

Следующий шаг - "Ряды". Создаем три ряда нажимая кнопку "Добавить ряд". Обычные тренды добавляем с типом "Линия", а ступенчатые тренды с типом "Пошаговая Линия":

 

Первый ряд назовём "Пила". В списке "Колонка аргумента" (значения по горизонтальной оси X) выбираем колонку времени "Тренды.Время". В списке "Колонка величин" (значения по вертикальной оси Y) выбираем колонку значений уровня "Тренды.vrSaw":

 

Аналогичные действия проделываем для двух других рядов "Случайное" (колонка Тренды.vrRandom) и "Ступенчатый" (колонка Тренды.vrStepped). В колонке аргумента всегда выбираем "Тренды.Время". Обратите внимание, в этом же окне при добавлении ряда можно перейти на вкладку "Список значений" и при необходимости ввести список аргументов и величин вручную для каждого ряда.

Переходим к следующему шагу - "Подписи". Нам не нужны подписи вершин трендов, поэтому выбираем "Нет" и переходим к следующему шагу - "Оси". На этом шаге можно добавить подписи к каждой оси X / Y. Также, можно скрыть/показать оси и вкл/выкл чередование линий сетки. А в группе "Заголовки" можно изменить угол заголовков, или расположить их в две линии (заголовки в данном случае - это подписи меток оси). Иногда полезно выставить угол заголовков равным 90. В этом случае, если заголовки длинные, то они будут расположены компактнее. Мы оставим все как есть и перейдём к последнему шагу:

 

На шаге "Легенда" можно настроить вид легенды рядов, или скрыть ее. Здесь нас тоже все устраивает, поэтому можно нажать кнопку "Готово" и завершить работу мастера диаграмм. Шаблон отчета будет выглядеть так:

 

Ряды (или тренды) получили стандартные цвета в соответствии со стилем диаграммы. Нужно это исправить. Делаем двойной клик по диаграмме - в открывшемся окне на вкладке "Ряды" выбираем ряд "Пила" и отключаем свойство "Разрешить применять стили". Теперь мы можем задать для этого ряда свой цвет. В проекте, у тренда "Пила" используется зелёный цвет, поэтому и здесь мы выбирем тот же цвет:

 

Проделываем смену цвета для оставшихся рядов "Случайное" (выбираем фиолетовый цвет) и "Ступенчатый" (бирюзовый цвет). При необходимости, можно включить/выключить маркеры на вершинах рядов. Это можно сделать на вкладке "Маркер" изменив свойство "Видимость". Мы не будем использовать маркеры и отключим свойство "Видимость" у маркеров всех рядов.

 

Завершаем редактирование диаграммы нажатием кнопки "Ок" в нижнем правом углу окна редактирования. Запустим сервер Simple-Scada и подключимся клиентом к нашему проекту. Можно оставить проект запущенным на некоторое время, чтобы в БД накопились архивные данные трендов. Допустим, проект работал с 14:40 по 14:45. Тогда мы можем задать эти значения переменным "Тренды_Начало" и "Тренды_Конец" соответственно. Дважды кликаем переменную в словаре и меняем значение:

 

Теперь в источник данных попадут данные из интервала заданного переменными "Тренды_Начало" и "Тренды_Конец". Нажмём зеленую кнопку обновления данных:

 

Данные получены. Переходим к просмотру отчета и видим наши тренды:

 

Тренды отображаются неправильно, точек слишком мало. Дело в том, что источники данных с типом "Периодический" разбивают полученные данные на равные интервалы и для каждого интервала выполняют определённую обработку (в нашем случае обработку "интерполяция" и "точное"). Размер интервалов определяется соответствующей переменной, добавленной при создании источника. У нас это переменная "Тренды_Интервал". По-умолчанию, её значение равно 60 секундам. Именно поэтому на графиках в отчёте мы видим только одну точку за каждую минуту. Меняя значение интервальной переменной мы можем управлять детализацией трендов (чем больше значение, тем хуже детализация, но быстрее построение графиков). Изменим значение интервальной переменной "Тренды_Интервал" на 1 (т.е. максимальная детализация):

 

 

Снова нажимаем кнопку обновления данных:

 

Переходим к просмотру отчета. Теперь количество точек трендов достаточное:

 

Видно что Редактор отчетов автоматически выбрал шкалу по оси Y равную "0-300". Эта шкала не соответствует реальной. А тренд "Ступенчатый" получился слишком мелким. Нужно задать другие шкалы. Редактор отчетов позволяет в одной диаграмме задать не более двух вертикальных шкал: "ось Y левая" и "ось Y правая".  Снова переходим к редактированию диаграммы. Для ряда "Ступенчатый" включаем свойство "Ось Y правая". Теперь данный ряд будет отображаться не по стандартной левой оси, а по отдельной правой.

 

Настройки правой оси можно изменить на вкладке "Область" -> "Ось Y правая". По-умолчанию, у нее включен авто-подбор диапазона - при необходимости его можно отключить и ввести свой диапазон. Мы зададим диапазон от -1 до 3. Именно такой диапазон задан у шкалы переменной "vrStepped" в проекте:

 

Переменные "vrSaw" и "vrRandom" имеют шкалу от 0 до 256. В отчете они работают с левой осью Y. Изменим параметры этой оси и выставим диапазон от 0 до 256:

 

Обратите внимание на последнее свойство "Видимость". При помощи данного свойства можно показать/скрыть оси. Мы оставили видимой полько левую ось Y, а правую скрыли.

Диаграмма почти готова. Сейчас у нее слишком длинные заголовки (подписи) по горизонтальной оси X. В нашем случае можно отображать только время, без даты. Для этого снова переходим к редактированию диаграммы и на вкладке "Область" -> "Ось X", в разделе "Заголовки" вводим формат для отображения только времени: "HH:mm:ss", а также выключаем свойство "Стартовать с нуля". Здесь же можно задать "Шаг" между заголовками, если они расположены слишком плотно друг к другу.

 

Диаграмма готова:

 

Запустим редактор Simple-Scada и добавим в проект переменные "vrTimeFrom" и "vrTimeTo" с типом данных DateTime. Далее, разместим на мнемосхеме два календаря и кнопку "Построить отчёт". Календари свяжем с переменными "vrTimeFrom" и "vrTimeTo", а на событие OnClick кнопки напишем скрипт:

var
  aReport: TM_Report;
begin
  aReport := ReportBuild('Вывод_трендов'); // строим отчет с именем "Вывод_трендов"
  aReport.View(GetClientName);             // открываем отчет на просмотр
end.

Затем сохраним проект, вернемся в редактор отчётов и свяжем переменную проекта "vrTimeFrom" с переменной отчета "Тренды_Начало", переменную проекта "vrTimeTo" с переменной отчёта "Тренды_Конец". Теперь при нажатии на кнопку "Построить отчёт" будет сформирован отчёт с трендами за период, который пользователь задал через календари.