Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: SergioAli от 27 Апреля 2024, 15:02:31
-
Добрый день, всем.
Помогите с решением задачи.
Есть расписание, которое управляет освещением по заданным интервалам.
за 20 минут до отключения, необходимо сделать оповещение. ( изменить виртуальную переменную )
Как выдернуть из расписания начало и конец интервала активного дня?
Очень не хватает более развёрнутого доступа к свойствам расписания.
Или как это реализовать по другому?
-
Здравствуйте.
Самодельный способ реализации зависит от количества интервалов, кванта интервала, способа хранения данных, вида отображения состояния и т.д, например:
- предполагая, что для интервалов достаточно точности в 1 мин, в качестве метки времени можно использовать целочисленное значение (при некотором увеличении количества вычислений можно и в секундах);
- хранение данных об интервалах БД (MySQL), файл, набор виртуальных переменных при малом числе интервалов;
- интервалы не перекрываются (оно конечно можно и перекрыванием разобраться, однако собственно управление может оказаться сложнее остального проекта). Включение осуществляется в начале минуты, а выключение в конце, что для смежных интервалов означает отсутствие провалов управления. Это актуально для смежных интервалов для разных суток (например, включили в среду, а выключили в пятницу).
- для каждого интервала можно установить своё оповещение в пределах 1-255 минут, значение 0 - без оповещения;
- использование графики объекта "Расписание" требует для отображения интервала одного объекта и еще одного объекта для ненулевого оповещения, в данном примере таких объектов 128, т.е. минимально 64 интервала - самое существенное ограничение.
Для управления используется таблица, заполняемая из БД. Для упрощения проекта (и снижения информативности) можно заменить графику объекта "Расписание" на группу окон с текущими параметрами.
Во вложении пример (и только пример без тщательной проверки) проекта на неделю, включающий три части: редактирование интервалов в БД, отображение процесса на основе графики объекта "Расписание" и получение текущих значений включения/выключения и оповещения.
-
Большое спасибо! Огромное спасибо.
Но мне к сожалению это не подходит, у меня 555 групп освещения.
Жаль, что у родного шедулера нет доступа к границам интервала и дням недели, это бы сильно всё упростило.
У меня в ПЛК так же устанавливаются время включения и выключения ( делал как выбор управления освещением от скады или от плк), можно конечно использовать эти переменные, но тогда теряется весь юзер-френдли со свистелками и перделками (шедулер :) ) и плюс ко всему использую контроллеры от EKF F100, а у них время за сутки отстаёт от на 10-15 секунд, как синхронизировать время на этом плк с сервером времени с какой то периодичностью я не нашёл (плохо искал), поэтому управление по умолчанию стоит от скады.
но еще раз БОЛЬШОЕ СПАСИБО )))
-
Автор: pan2000 отличная работа, а можете переделать проект что бы были ни дни недели а временные метки можно выставлять одного дня но временных меток множество
-
Здравствуйте.
Да, могу, но мне нужны подробности. Лучше типа ТЗ, или Ваше представление как всё это должно выглядеть. :)
Добавлено 16.02.2026:
Пример 24-часового слайдера с разрешением 1 сек, довольно громоздкая штука. Весь диапазон разбит на 10-минутные интервалы с графическим представлением. Можно метить каждую секунду.
Метки могут хранятся в БД минимально парами - <временная метка>-<информация о событии>. Событие будет отображатся штрихом над секундной линейкой слайдера.
-
Тут скорее отображение прогалов между этапами процесса в графическом виде в стиле айфоновского календаря которым тыкал меня директор))
Процессы ежедневные, состоящие из одинаковых временных этапов по технологии. Оператор запускает и завершает процессы кнопками, иногда он может завершить этап раньше соответственно, если он выгрузит продукт раньше появиться доп время напокурить