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

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

Автор Тема: Автоматизация освещения  (Прочитано 3589 раз)

Rinat

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Автоматизация освещения
« : 15 Февраля 2019, 06:49:46 »
Здравствуйте. Прошу помочь организовать автоматизацию управление освещением. Требуется написать скрипт на включение света, несколько штук через 3 секунды друг за другом... и блокировать кнопки включения если переключатель установлен в положение "ручное управление". Спасибо.

pan2000

  • Постоялец
  • ***
  • Сообщений: 225
    • Просмотр профиля
Re: Автоматизация освещения
« Ответ #1 : 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.