Система "Бенукс". Компьютерное управление и контроль.
http://benuks.flyboard.ru/

Сценарии и прерывания
http://benuks.flyboard.ru/topic228.html
Страница 1 из 1

Автор:  Kamajii [ 24-01, 20:30 ]
Заголовок сообщения:  Сценарии и прерывания

Долго бьюсь с проблемой, которая мешает жить. Мне кажется, решение должно быть на поверхности - но не найти.
И так, есть датчик движения, вырабатывающий долгий импульс (5+ сек.). По приходу фронта импульса запускается сценарий, включающий свет.
Далее в сценарии таймер на минуту, после которого - выключение света.
Проблема: если движение продолжается, через минуту таймер дорабатывает, и свет гаснет. Если в это время есть движение (высокий уровень с датчика), то сценарий не запускается, свет не горит. Если долго не регистрируется движение и импульс с датчика прекращается, с новым движением (и фронтом испульса с датчика движения) сценарий запускается, свет включается.

Вопрос: как сделать, чтоб сценарий анализировал _состояние_ вместо работы с фронтами/спадами?
Надо, чтоб _пока уровень высокий_, сценарий не заканчивался.

Реально, эта зараза давно мешает мне развивать автоматизацию. Как другие-то решают эту элементарную проблему?

P.S. И ещё, была бы невероятно полезна возможность вывести на визуальную панель ЧАСЫ и лайв-бит (у меня монитор для этой панели подключен по WiFi и необходимо контролировать состояние связи - зачастую канал падает, и картинка на мониторе остаётся статичной, но это не заметно!

Автор:  Геннадий [ 25-01, 17:54 ]
Заголовок сообщения:  Re: Сценарии и прерывания

Kamajii писал(а):
Вопрос: как сделать, чтоб сценарий анализировал _состояние_ вместо работы с фронтами/спадами?
Надо, чтоб _пока уровень высокий_, сценарий не заканчивался.
В сценариях есть команда "Условие перехода на метку". В вашем сценарии, после команды "таймер" Вам надо вставить такую команду. Причём, в параметрах этой команды указать тот датчик, который показывает движение и соответственно выбрать логический уровень сигнала. Смысл этой команды такой: если от датчика движения поступает сигнал "движение", перейти на метку в начало сценария, на ту команду, которая включает освещение.

Автор:  Kamajii [ 25-01, 20:17 ]
Заголовок сообщения:  Re: Сценарии и прерывания

Примерно так и сделано. Не помогает. Таймер посчитал, свет погас. Если датчик в этот момент даёт движение, свет больше не горит, пока датчик не сбросит уровень и не поднимет снова.
Изображение

Автор:  Геннадий [ 26-01, 10:04 ]
Заголовок сообщения:  Re: Сценарии и прерывания

Kamajii писал(а):
Таймер посчитал, свет погас. Если датчик в этот момент даёт движение, свет больше не горит, пока датчик не сбросит уровень и не поднимет снова.
Надо смотреть лог выполнения сценария и в зависимости от этого корректировать команду перехода по условию. Идея в том, что пока датчик движения выдаёт сигнал, сценарий должен переходить назад, к таймеру и ждать, когда движение прекратится. Надо по логу проследить последовательное выполнение каждой команды, особенно команды перехода по условию.

Автор:  Kamajii [ 26-01, 20:09 ]
Заголовок сообщения:  Re: Сценарии и прерывания

При непрерывном движении перед датчиком, лог выглядит так:

19:02:30 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:02:31 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:03:46 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" текушая величина с датчика: 1 величина для анализа: 1
19:03:46 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" Переход на метку: t
19:03:46 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:04:19 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:04:19 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:05:35 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" текушая величина с датчика: 1 величина для анализа: 1
19:05:36 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" Переход на метку: t
19:05:36 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:05:50 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:05:51 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:06:10 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:06:10 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:07:26 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" текушая величина с датчика: 1 величина для анализа: 1
19:07:26 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" Переход на метку: t
19:07:26 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый

Почему-то иногда переход на таймер, как я понимаю, происходит без условия: Таймер, Включить, Таймер. Как так?

И далее (нет движения с 19:10:00):

19:08:41 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" текушая величина с датчика: 1 величина для анализа: 1
19:08:41 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" Переход на метку: t
19:08:41 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:08:43 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:08:43 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:09:01 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:09:01 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
19:09:41 SCN: "Shield1 off, 1", COM: "Отключить устройство" - не выполняется в текущем режиме "Night"
19:09:41 SCN: "Shield1 off, 2", COM: "Отключить устройство" - не выполняется в текущем режиме "Night"
19:09:41 SCN: "Shield1 off, 3", COM: " " Окончен сценарий.
19:10:16 SCN: "Corr lights ON, 3", COM: "Условие перехода на метку" текушая величина с датчика: 0 величина для анализа: 1
19:10:16 SCN: "Corr lights ON, 4", COM: "Таймер" 0:01:15, тип: обычный
19:11:31 SCN: "Corr lights ON, 5", COM: "Отключить устройство" 2406 corr chan1
19:11:32 SCN: "Corr lights ON, 6", COM: "Отправить на E-mail текущие значения" - не активирована
19:11:32 SCN: "Corr lights ON, 7", COM: "Выйти из сценария" - не активирована
19:11:32 SCN: "Corr lights ON, 8", COM: " " Окончен сценарий.

Cвет отключен.

Автор:  Геннадий [ 27-01, 10:42 ]
Заголовок сообщения:  Re: Сценарии и прерывания

Kamajii писал(а):
При непрерывном движении перед датчиком, лог выглядит так:
...
19:06:10 SCN: "Corr lights ON, 1", COM: "Включить устройство" 2406 corr chan1
19:06:10 SCN: "Corr lights ON, 2", COM: "Таймер" 0:01:15, тип: перезапускаемый
...
Почему-то иногда переход на таймер, как я понимаю, происходит без условия: Таймер, Включить, Таймер. Как так?
В тех местах лога, которые начинаются с команды №1 ''Включить устройство", означает что по сигналу от датчика движения запустился новый экземпляр этого сценария и благодаря типу таймера "перезапускаемый" сценарий продолжает выполняться в одном экземпляре.
А вообще, судя по логу, у Вас нормально всё отрабатывает.

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/