Перейти к содержанию

Примеры отчетов

В данном разделе представлены примеры, а также некоторые приемы при работе с генератором отчетов Симплайт 5. Для тех, кто предпочитает видеоформат обучения, доступны ссылки на обучающие видеоматериалы по работе с генератором отчетов:

Генератор отчетов
Интервалы и диапазоны в отчетах

Отчет с текущими данными

В данном разделе рассматривается пример создания отчета с текущими значениями тегов. Необходимо создать отчет и присвоить ему имя, например, "Текущие данные".

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

В словаре отчета будут определены соответствующие переменные.

Теперь каждую переменную отчета можно перенести в область редактирования шаблона, удерживая левую кнопку мыши.

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

В диалоговом окне необходимо ввести текст, который будет отображаться в текстовом блоке и нажать кнопку "Ок".

Для остальных переменных необходимо выполнить аналогичные действия.

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

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

Важно

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

После запуска процедуры предосмотра в "Редакторе отчетов" для каждого тега будет отображаться его текущее значение, а также дата и время создания отчета.

Чтобы сформировать полноценный отчет необходимо перейти в "Редактор мнемосхем", где следует разместить компонент "Многофункциональная кнопка" . Необходимо определить действие для кнопки как "Сгенерировать отчет" и указать название отчета "Текущие данные".

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

После активации кнопки "Сформировать отчет" на мнемосхеме сервер отправит отчет клиенту, который, в свою очередь, откроет окно для его просмотра. Из этого окна пользователь может сохранить отчет, а также распечатать его, выполнить поиск и т.д.

Периодический отчет

Для наглядности процесса подготовки периодического отчета будет рассмотрен пример части технологического процесса подготовки воды в резервуаре. В качестве активных в проект необходимо добавить следующие теги:

Тег Тип данных Описание
Температура 1
Double
Температура жидкости в резервуаре
Уровень 1
Int64
Уровень жидкости в резервуаре
Начало периода
DateTime
Начало периода времени, за который требуется сформировать отчет
Конец периода
DateTime
Конец периода времени, за который требуется сформировать отчет

Важно

Перед созданием отчета необходимо:

  1. Включить архивацию для тегов "Температура 1" и "Уровень 1", установив флаг "Активность" в свойстве "Сохранение в БД".
  2. Развертывание проекта должно быть выполнено заблаговременно, чтобы обеспечить накопление данных в базе.

Пример:

Составить отчет за определенный временной промежуток, ограниченный значениями тегов "Начало периода" и "Конец периода". Данный диапазон следует разбить на равные интервалы, например, по 60 секунд. Для каждого интервала необходимо сформировать отчет, включающий исторические данные тегов "Температура 1" и "Уровень 1". Для значений тега "Уровень 1" указать минимальное и максимальное значение.

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

На мнемосхеме следует разместить фигуры "Вертикальная емкость", а для тегов "Начало периода" и "Конец периода" необходимо использовать компонент "Ввод даты и времени" из "Палитры компонентов". Кроме того, необходимо добавить "Многофункциональную кнопку" из "Общей галереи" и назначить ей действие "Сгенерировать отчет".

Далее необходимо создать отчет в редакторе и добавить "Источник данных".

В диалоговом окне "Создание источника данных" необходимо выбрать тип "Периодический". После этого следует указать имя источника и для всех переменных, соответствующих данному типу источника, задать имена.

В словаре отчета будет добавлен источник данных "Данные" с единственной колонкой "Время". Также будут определены три переменные: "Данные_Начало", "Данные_Конец" и "Данные_Интервал".

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

Далее необходимо связать теги проекта "Начало периода" и "Конец периода" с соответствующими переменными источника "Данные_Начало" и "Данные_Конец". В процессе формирования отчета значения переменных "Данные_Начало" и "Данные_Конец" будут автоматически заменены на значения тегов проекта "Начало периода" и "Конец периода" соответственно. Это позволит источнику "Данные" оперировать заданным временным периодом.

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

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

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

Необходимо выполнить аналогичные действия для переменной "Уровень 1", присвоив ей имя "Мин. уровень" и выбрав тип обработки "Минимум". Также следует добавить переменную "Температура 1" в источник с именем "Средняя_температура", выбрав тип обработки "Среднее". После выполнения всех действий структура словаря должна выглядеть следующим образом.

Для того чтобы изменить интервал, с которым генератор отчета будет извлекать значения из базы данных, необходимо внести изменения в переменную "Данные_интервал". Для этого следует дважды нажать левой кнопкой мыши по данной переменной в словаре. В диалоговом окне "Изменение переменной" следует установить значение 60, что соответствует 60 секундам. Существует возможность связать переменную с целочисленным тегом проекта и отобразить ее на мнемосхеме, чтобы оператор мог выбирать не только время начала и окончания отчета, но и временной интервал.

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

Бэнд "Данные" является одним из наиболее часто используемых бэндов. Он берет данные из источника, с которым связан, и выводится столько раз, сколько строк в источнике данных.

В диалоговом окне "Данные" необходимо установить флаги для всех колонок, а также активировать флаг "Заголовок данных".

В результате в области редактирования будет сформирован шаблон отчета.

При активировании предварительного просмотра отчета в столбце "Средн_Температура" в значении переменной отображается избыточное количество знаков после запятой.

Чтобы изменить формат вывода значения необходимо выбрать левой кнопкой мыши столбец с значениями "Средней температуры", выбрать вкладку "Свойства" и в поле формат нажать на кнопку ✏️.

В диалоговом окне "Формат" указать количество знаков дробной части в соответствующем поле.

С помощью меню "Просмотр" еще раз выполнить построение отчета, чтобы убедиться, что формат задан корректно и отображается нужное количество знаков после запятой.

На данном этапе необходимо добавить заголовок к отчету. Для этого можно воспользоваться кнопкой "Секции" "Панели инструментов", либо активировать меню "Вставить". Заголовок выводится один раз в начале отчета, перед другими бэндами.

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

Далее необходимо вызвать окно редактирования текста двойным нажатием левой кнопки мыши. В окно с текстом заголовка перетащить переменные "Данные_Начало" и "Данные_конец" и нажать кнопку "Ок".

С помощью инструментальной панели необходимо определить требуемое форматирование для текста и всех ячеек отчета.

Ниже представлен один из возможных вариантов оформления.

Для окончательного формирования отчета необходимо перейти к мнемосхеме, задать диапазон и нажать кнопку "Отчет".

Отчет по изменению

Для наглядности процесса подготовки отчета по изменению будет рассмотрен пример части технологического процесса подготовки воды в резервуаре. Периодический отчет, рассмотренный в предыдущем примере, не подойдет, поскольку он предполагает разбиение заданного периода времени на равные интервалы и обработку каждого из них в соответствии с заданными параметрами.

Отчет по изменению позволяет получить доступ к каждому архивному значению без разбиения на интервалы и без дополнительной обработки.

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

Тег Тип данных Описание
Температура 1
Double
Температура жидкости в трубопроводе
Расход 1
Int64
Расход теплоносителя через клапан 1
Расход 2
Int64
Расход теплоносителя через клапан 2
Начало периода
DateTime
Начало периода времени, за который требуется сформировать отчет
Конец периода
DateTime
Конец периода времени, за который требуется сформировать отчет

Важно

Перед созданием отчета необходимо:

  1. Включить архивацию для тегов "Температура 1", "Расход 1" и "Расход 2" установив флаг "Активность" в свойстве "Сохранение в БД".
  2. Развертывание проекта должно быть выполнено заблаговременно, чтобы обеспечить накопление данных в базе.

Пример:

Сформировать отчет со всеми архивными значениями тегов "Температура 1", "Расход 1", "Расход 2" за указанный пользователем интервал времени. Интервал ограничен значениями тегов "Начало периода" и "Конец периода".

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

На мнемосхеме следует разместить фигуры "Вертикальная емкость", а для тегов "Начало периода" и "Конец периода" необходимо использовать компонент "Ввод даты и времени" из "Палитры компонентов". Кроме того, необходимо добавить "Многофункциональную кнопку" из "Общей галереи" и назначить ей действие "Сгенерировать отчет".

Далее необходимо создать отчет в редакторе и добавить "Источник данных". В диалоговом окне "Создание источника данных" необходимо выбрать тип "По изменению". После этого следует указать имя источника и для всех переменных, соответствующих данному типу источника, задать имена. Также можно активировать флаг "Дополнять моменты".

Дополнять моменты — флаг, при включении которого в отчете для каждого тега пропущенные временные метки заполняются последним известным значением, обеспечивая непрерывный ряд данных и единую временную шкалу для сравнения разных тегов. Этот инструмент необходим, чтобы создать видимость непрерывного ряда данных для каждого тега на протяжении всего выбранного интервала времени, даже если в базе данных в какие-то моменты времени значения этого конкретного тега не записывались (не изменялись).

В словаре отчета будет добавлен источник данных "Данные" с единственной колонкой "Время". Также будут определены 2 переменные: "Данные_Начало", "Данные_Конец".

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

Далее необходимо связать теги проекта "Начало периода" и "Конец периода" с соответствующими переменными источника "Данные_Начало" и "Данные_Конец". В процессе формирования отчета значения переменных "Данные_Начало" и "Данные_Конец" будут автоматически заменены на значения тегов проекта "Начало периода" и "Конец периода" соответственно. Это позволит источнику "Данные" оперировать заданным временным периодом.

В источнике необходимо добавить новые колонки, соответствующие поставленной задаче.

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

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

Необходимо выполнить аналогичные действия для переменной "Расход 1" и "Расход 2". После выполнения всех действий структура словаря должна выглядеть следующим образом.

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

Бэнд "Данные" является одним из наиболее часто используемых бэндов. Он берет данные из источника, с которым связан, и выводится столько раз, сколько строк в источнике данных.

В диалоговом окне "Данные" необходимо установить флаги для всех колонок, а также активировать флаг "Заголовок данных".

В результате в области редактирования будет сформирован шаблон отчета.

При активировании предварительного просмотра отчета в столбце "Температура 1" в значении переменной отображается избыточное количество знаков после запятой.

Чтобы изменить формат вывода значения необходимо выбрать левой кнопкой мыши столбец с значениями "Температура 1", активировать вкладку "Свойства" и в поле формат нажать на кнопку ✏️.

В диалоговом окне "Формат" указать количество знаков дробной части в соответствующем поле.

С помощью меню "Просмотр" еще раз выполнить построение отчета, чтобы убедиться, что формат задан корректно и отображается нужное количество знаков после запятой.

На данном этапе необходимо добавить заголовок к отчету. Для этого можно воспользоваться кнопкой "Секции" "Панели инструментов", либо активировать меню "Вставить". Заголовок выводится один раз в начале отчета, перед другими бэндами.

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

Далее необходимо вызвать окно редактирования текста двойным нажатием левой кнопки мыши. В окно с текстом заголовка перетащить переменные "Данные_Начало" и "Данные_конец" и нажать кнопку "Ок".

С помощью инструментальной панели необходимо определить требуемое форматирование для текста и всех ячеек отчета.

Ниже представлен один из возможных вариантов оформления.

Для окончательного формирования отчета необходимо перейти к мнемосхеме, задать диапазон и нажать кнопку "Отчет".

Подсветка значений отчета

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

В шаблоне отчета необходимо выбрать ячейку переменной "Расход 1" левой кнопкой мыши и нажать кнопку "Условия".

В диалоговом окне "Условия" необходимо выбрать пункт "Условное выделение" из выпадающего списка "Добавить условие". Затем с помощью настроечных полей следует указать тип данных, выбрать колонку, условие "больше чем" и задать число 50. После этого необходимо выбрать границу "Со всех сторон" и установить цвет фона — желтый. После составления отчета все ячейки, содержащие значения больше 50, будут выделены желтым цветом.

Для проверки выполнения условия необходимо вызвать предварительный просмотр отчета с помощью меню "Просмотр".

Для переменной "Расход 2" необходимо выполнить аналогичные действия, но с использованием другого цвета, например, красного и значения переменной Расход 2. В данном случае генератор отчетов должен будет выделить ячейки, содержащие значения больше 90.

Следующим этапом станет размещение бэнда "Итог данных". Его следует перетащить в шаблон. Данный бэнд размещается в самом конце при построении отчета. В него можно вывести максимальное итоговое значение переменной за весь отчет.

Для того чтобы передать значение в данный бэнд, необходимо перетащить компонент "Текст" и поместить его под колонку "Расход 1". В открывшемся окне следует перейти на вкладку "Итог" и выбрать функцию "Max". В качестве источника данных необходимо указать "Данные" и колонку "Расход 1".

Для колонки "Расход 2" требуется выполнить аналогичные действия.

После этого необходимо сформировать отчет и перейти на последнюю страницу, чтобы убедиться в том, что настройки диапазона "Итог данных" были применены корректно.

Отчет о наработке в моточасах

Для подготовки отчета о времени наработки агрегата будет рассмотрен пример части технологического процесса работы насосов. Тип создаваемого отчета — периодический.

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

Тег Тип данных Описание
Насос 1
Boolean
Работа насоса 1
Насос 2
Boolean
Работа насоса 2
Насос 3
Boolean
Работа насоса 3
Начало периода
DateTime
Начало периода времени, за который требуется сформировать отчет
Конец периода
DateTime
Конец периода времени, за который требуется сформировать отчет
Время наработки Н1
Double
Время наработки насоса 1 (секунды)
Время наработки Н2
Double
Время наработки насоса 2 (секунды)
Время наработки Н3
Double
Время наработки насоса 3 (секунды)
Сброс времени наработки
Boolean
Обнуление значения времени наработки

Важно

Перед созданием отчета необходимо:

  1. Включить архивацию для тегов "Время наработки Н1", "Время наработки Н2" и "Время наработки Н3", установив флаг "Активность" в свойстве "Сохранение в БД".
  2. Для каждого тега отключить флаг "Сохранить только в пределах шкалы".

    В новом проекте по умолчанию шкала имеет максимальное значение диапазона, равное 100. Поскольку предполагается архивировать значения, превышающие этот предел, необходимо либо отключить опцию сохранения в пределах шкалы, либо установить новое максимальное значение для используемой шкалы.

  3. Развертывание проекта должно быть выполнено заблаговременно, чтобы обеспечить накопление данных в базе.

Пример:

Составить отчет за временной промежуток не превышающий 24 часа, ограниченный значениями тегов "Начало периода" и "Конец периода". В отчет вывести исторические данные тегов "Время наработки Н1", "Время наработки Н2" и "Время наработки Н3".

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

На мнемосхеме следует разместить анимированные фигуры насосов из "Общей галереи". Для тегов "Начало периода" и "Конец периода" необходимо использовать компонент "Ввод даты и времени" из "Палитры компонентов". Кроме того, необходимо добавить две "Многофункциональные кнопки" из "Общей галереи" и назначить им действие:

В примере расчет моточасов наработки будет производиться внутри Симплайт 5. Для этого потребуется написать скрипт, в котором будет рассчитываться время работы каждого насоса в секундах. В скрипте потребуется самостоятельно добавить библиотеку для работы с временем наработки тега.

getWorkTime.lua
-- Подключение модулей
local async = require("async")
local motoHours = require("lib.motoHours")              
local tagApi = require("simplight.api.channels.sync")

-- Массив насосов
local pumps = {
    {key = "p1", name = "Насос 1", desc = "Насос 1"},
    {key = "p2", name = "Насос 2", desc = "Насос 2"},
    {key = "p3", name = "Насос 3", desc = "Насос 3"}
}

-- Таблица для хранения моточасов
local pumpWatchers = {}

for _, pump in ipairs(pumps) do
    pumpWatchers[pump.key] = motoHours.watch({
        watchTagName = pump.name,
        resetTagName = "Сброс времени наработки",
    })
end

-- Вычисление времени наработки насосов в секундах
setInterval(function()
    local t1 = math.floor(pumpWatchers.p1.getTotalWorkTime() / 1000)
    local t2 = math.floor(pumpWatchers.p2.getTotalWorkTime() / 1000)
    local t3 = math.floor(pumpWatchers.p3.getTotalWorkTime() / 1000)

-- Запись значений времени наработки в теги
tagApi.writeMany({
  values={
    { name="Время наработки Н1", value = t1, quality = 0xC0  },
    { name="Время наработки Н2", value = t2, quality = 0xC0  },
    { name="Время наработки Н3", value = t3, quality = 0xC0  },
  }})

end, 1000)
Далее необходимо создать отчет в редакторе и добавить источник данных.

В диалоговом окне "Создание источника данных" необходимо выбрать тип "Периодический". После этого следует указать имя источника и для всех переменных, соответствующих данному типу источника, задать имена.

В словаре отчета будет добавлен источник данных "Данные" с единственной колонкой "Время". Также будут определены три переменные: "Данные_Начало", "Данные_Конец" и "Данные_Интервал".

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

Далее необходимо связать теги проекта "Начало периода" и "Конец периода" с соответствующими переменными источника "Данные_Начало" и "Данные_Конец". В процессе формирования отчета значения переменных "Данные_Начало" и "Данные_Конец" будут автоматически заменены на значения тегов проекта "Начало периода" и "Конец периода" соответственно. Это позволит источнику "Данные" оперировать заданным временным периодом.

В источнике необходимо добавить три колонки, соответствующие поставленной задаче: "Время наработки Н1", "Время наработки Н2", "Время наработки Н3".

На данном этапе следует добавить в источник тег времени наработки насоса 1. Для этого необходимо нажать правой кнопкой мыши на переменной "Время наработки Н1" и выбрать пункт "Добавить в источник".

В диалоговом окне добавления новой колонки необходимо выбрать источник "Данные", тип обработки "Последнее значение" и назвать новую колонку "Время наработки Н1". Для данного тега в отчет будет передано значение, которое было зафиксировано последним в указанном интервале.

Необходимо выполнить аналогичные действия для тегов "Время наработки Н2" и "Время наработки Н3", присвоив им соответстующие имена и тип. После выполнения всех действий структура словаря должна выглядеть следующим образом.

Для того чтобы изменить интервал, с которым генератор отчета будет извлекать значения из базы данных, необходимо внести изменения в переменную "Данные_интервал". Для этого следует дважды нажать левой кнопкой мыши по данной переменной в словаре. В диалоговом окне "Изменение переменной" следует установить значение 86400 секунд, что соответствует 24 часам. Данный интервал выбран с целью формирования в отчете только одной строки с последними архивируемыми значениями.

Существует возможность связать переменную с целочисленным тегом проекта и отобразить ее на мнемосхеме, чтобы оператор мог выбирать не только время начала и окончания отчета, но и временной интервал.

На данном этапе необходимо добавить заголовок к отчету. Для этого можно воспользоваться кнопкой "Секции" "Панели инструментов", либо активировать меню "Вставить". Заголовок выводится один раз в начале отчета, перед другими бэндами.

После переноса заголовка он автоматически расположится в верхней области отчета. Теперь в зоне бэнда "Заголовок отчета" требуется разместить элемент "Текст" заголовка.

Откроется окно редактирования текста. В нем необходимо указать название для заголовка, а также перенести переменную "Данные конец", чтобы автоматически сформировать актуальную дату и время в шапке отчета.

Бэнд "Данные" является одним из наиболее часто используемых бэндов. Он берет данные из источника, с которым связан, и выводится столько раз, сколько строк в источнике данных. Необходимо перетащить источник "Данные" в шаблон отчета.

В диалоговом окне "Данные" необходимо установить флаги для всех колонок, а также активировать флаг "Заголовок данных".

В колонке "Время" следует удалить переменную, добавленную по умолчанию и перенести в данную ячейку переменную "Данные_Конец", чтобы выводить актуальное время для конца периода.

С помощью инструментальной панели необходимо определить требуемое форматирование для текста и всех ячеек отчета.

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

Для пересчета в минуты необходимо выйти из режима просмотра, нажать два раза левой кнопкой мыши на переменной "Время наработки Н1", перейти на вкладку "Выражение" и добавить арифметическое действие внутри фигурных скобок. Для остальных переменных проделать аналогичные действия.

При активировании предварительного просмотра отчета после произведенного деления в значении переменной отображается избыточное количество знаков после запятой.

Чтобы изменить формат вывода значения необходимо нажать левой кнопкой мыши на переменной в столбце, выбрать вкладку "Свойства" и в поле формат нажать на кнопку ✏️.

В диалоговом окне "Формат" указать количество знаков дробной части в соответствующем поле.

С помощью меню "Просмотр" еще раз выполнить построение отчета, чтобы убедиться, что формат задан корректно и дробная часть не отображается. После этого сформировать отчет с мнемосхемы.