Система "Бенукс". Компьютерное управление и контроль. 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 писал(а): При непрерывном движении перед датчиком, лог выглядит так: В тех местах лога, которые начинаются с команды №1 ''Включить устройство", означает что по сигналу от датчика движения запустился новый экземпляр этого сценария и благодаря типу таймера "перезапускаемый" сценарий продолжает выполняться в одном экземпляре.... 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 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |