Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Rolich от 08 Апреля 2026, 17:47:01

Название: Периоды в периодическом отчёте
Отправлено: Rolich от 08 Апреля 2026, 17:47:01
Доброго времени суток, уважаемые форумчане !
Возникла вот какая задача: по дискретной переменной, которая соответствует режиму работы агрегата (1 - в работе, 0 - простаивает), необходимо формировать периодический отчёт о времени его работы (время начала и окончания отчёта задаётся пользователем), только не во всём диапазоне заданного времени, а также с интервалами, задаваемыми пользователем.
Например, в период с 01.04.2026 8:00 по 08.04.2026 8:00 сформировать время работы агрегата в интервале 8:00-12:00 и 16:00-20:00 ежедневно.
Кроме времени работа, также необходимо рассчитывать КИО (время работы агрегата делить на полное время заданных интервалов)
Как это сделать ?
Название: Re: Периоды в периодическом отчёте
Отправлено: Simple Scada от 10 Апреля 2026, 18:15:13
Здравствуйте.

Цитировать
Возникла вот какая задача: по дискретной переменной, которая соответствует режиму работы агрегата (1 - в работе, 0 - простаивает), необходимо формировать периодический отчёт о времени его работы (время начала и окончания отчёта задаётся пользователем), только не во всём диапазоне заданного времени, а также с интервалами, задаваемыми пользователем. Например, в период с 01.04.2026 8:00 по 08.04.2026 8:00 сформировать время работы агрегата в интервале 8:00-12:00 и 16:00-20:00 ежедневно.
Периодический источник (https://simple-scada.com/help/report/periodicsourcework.html) данных, может разбивать данные только на равные промежутки времени. Например, для указанного Вами диапазона, источник данных можно разбить на интервалы по 4 часа и, используя "Фильтр (https://clck.ru/3T252z)", скрыть ненужные промежутки. Например, используя выражение:
Код: (c#)
(Источник1.Время.Hour == 12 && Источник1.Время.Minute == 0) ||
(Источник1.Время.Hour == 20 && Источник1.Время.Minute == 0)
В отчете останутся только данные за промежутки 8:00-12:00 и 16:00-20:00.

Цитировать
Кроме времени работа, также необходимо рассчитывать КИО (время работы агрегата делить на полное время заданных интервалов)
Например, в бенд данных можно добавить компонент "Текст" со следующим выражением:
Код: (c#)
{((Источник1.vrBool).TotalHours) / 4}
При необходимости в выражениях можно использовать переменные из скада системы. См. пример проекта во вложении.
Название: Re: Периоды в периодическом отчёте
Отправлено: Rolich от 16 Апреля 2026, 10:29:52
Понятно, большое спасибо !