Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Периоды в периодическом отчёте  (Прочитано 1450 раз)

Rolich

  • Пользователь
  • **
  • Сообщений: 88
    • Просмотр профиля
Периоды в периодическом отчёте
« : 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 ежедневно.
Кроме времени работа, также необходимо рассчитывать КИО (время работы агрегата делить на полное время заданных интервалов)
Как это сделать ?

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 288
    • Просмотр профиля
    • Simple-Scada
Re: Периоды в периодическом отчёте
« Ответ #1 : 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 ежедневно.
Периодический источник данных, может разбивать данные только на равные промежутки времени. Например, для указанного Вами диапазона, источник данных можно разбить на интервалы по 4 часа и, используя "Фильтр", скрыть ненужные промежутки. Например, используя выражение:
Код: (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}
При необходимости в выражениях можно использовать переменные из скада системы. См. пример проекта во вложении.

Rolich

  • Пользователь
  • **
  • Сообщений: 88
    • Просмотр профиля
Re: Периоды в периодическом отчёте
« Ответ #2 : 16 Апреля 2026, 10:29:52 »
Понятно, большое спасибо !