Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Rinat от 15 Февраля 2019, 06:49:46

Название: Автоматизация освещения
Отправлено: Rinat от 15 Февраля 2019, 06:49:46
Здравствуйте. Прошу помочь организовать автоматизацию управление освещением. Требуется написать скрипт на включение света, несколько штук через 3 секунды друг за другом... и блокировать кнопки включения если переключатель установлен в положение "ручное управление". Спасибо.
Название: Re: Автоматизация освещения
Отправлено: pan2000 от 16 Февраля 2019, 13:27:44
Здравствуйте. Прошу помочь организовать автоматизацию управление освещением. Требуется написать скрипт на включение света, несколько штук через 3 секунды друг за другом... и блокировать кнопки включения если переключатель установлен в положение "ручное управление". Спасибо.

Пример скрипта для управления объектами по времени для проекта (во вложении):

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

Переменные:
iMode - режим работы (0 - ручное, 1 - выключено, 2 - автомат),
iButton и iLamp - векторы соответствующих выключателей и ламп,
iTimeCounter - счетчик времени в автоматическом режиме.

Код: (delphi)
const imax = 4;   // верхняя граница цикла
var i, j: integer;
begin
  i := iMode.AsInt;
  j := (iTimeCount.AsInt + 1) * (i div 2); // счет только в автомате, иначе 0
  iTimeCount.Value := j;
  case i of
  0:  iLamps.Value := iButton.AsInt;   // по ручным переключателям
  1:  iLamps.Value := 0;               // выключить все
  2:  for i := 0 to imax do            // автомат
        iLamps.Value := SetBit(iLamps.AsInt, i, j >= (i * 3 + 3)); // равномерные задержки
  end;
end.