Страница 1 из 1
Помогите новичку
Добавлено: 30 мар 2016, 13:04
Glazman
Здравствуйте все! Спасибо что вы есть! Очень облегчает понимание всего ваша программа FLProg. Но не могу справиться, помогите. Делаю умный свет в ванной комнате, нужно чтобы не случалось ложных отключений
У меня есть два сенсора (PIR, геркон), делаю умный свет в ванной комнате, нужно чтобы не случалось ложных отключений. Если дверь закрыта и замечено движение то включить свет на долгий период после последнего движения. Для простоты можно их рассматривать как две кнопки я так думаю. И есть реле, которым нужно управлять по следующему принципу:
1. Кнопка 1
2. Кнопка 2
3. Выход реле
4. Нажата кнопка 1 - включить реле, оставить включенным на N секунд после последнего срабатывания кнопки.
5. Нажата либо отжата кнопка 2 (изменилось положение) - включить реле на N секунд
6. При нажатой кнопке 2, произошло срабатывание кнопки 1 - включить реле на М секунд.
Какой язык программирования лучше подходит для этих задач? Какие блоки и переменные подтянуть? Пробовал использовать boolean и and, не то получается.
Помогите новичку
Добавлено: 30 мар 2016, 13:17
SirYorik
Glazman писал(а):Кнопка 2
механическая фиксация, или надо сделать фиксацию в программе?
Glazman писал(а):какие блоки
таймеры (TOF|TON) точно.
нужна дополнительная boolean переменная содержащая статус света (вкл/выкл), ей-же рулить лампой(реле)
пункты 4 и 5:
Элемент ИЛИ на 3 входа
- кнопка 1
- восходящий фронт от кнопки2
- нисходящий фронт от кнопки 2
выход элемента ИЛИ и переменную "статуссвета" подать на элемент И. статус вход инвертировать. (чтобы этот блок не срабатывал при включенном свете)
выход элемента И подать на вход TOF таймера на Nсек.
выход TOF таймера подать на переменную "статуссвета"
в последней плате схемы "статуссвета" вывести в порт "реле"
пункт 6:
AND означает одновременное нажатие обоих кнопок - это верно. только добавить инвертированный вход с переменной "статуссвета", а выход с И подать на вход TOF таймера на М сек. с него выход на переменную "статуссвета".
Помогите новичку
Добавлено: 30 мар 2016, 13:22
Glazman
SirYorik писал(а):Цитата Glazman ()Кнопка 2
механическая фиксация, или надо сделать фиксацию в программе?
Пока дверь закрыта на кнопке 2 будет сигнал от датчика, получается как будто механически нажата кнопка, програмно этого делать не нужно
Помогите новичку
Добавлено: 30 мар 2016, 13:34
SirYorik
Glazman писал(а):как будто механически нажата
не. кнопки отдельно. датчики отдельно. без всяких как будто.
для датчика нужен третий TOF на своё кол-во сек.
Помогите новичку
Добавлено: 30 мар 2016, 13:39
Glazman
Изменил схему, добавил задержку по кнопке 1 задержка 40 секунд, по обоим кнопка задержка 3 минуты.
Будет работать? Нужно еще одно условие: Как включить свет если изменилось положение кнопки 2?
Помогите новичку
Добавлено: 30 мар 2016, 13:41
SirYorik
восходящий фронт/нисходящий фронт
- при желании можно это онаруживать триггерами, но это неправильно.
модули надо разделять на независимые части кнопка,кнопка,датчик.
да еще предусмотреть аварийный режим для отсутствия датчика движения.
типа кнопки жмакаются а с ДД нет сигнала, засвечиваем светодиод ошибки, и рулим лампой только на кнопках.
Как включить свет если изменилось положение кнопки 2?
триггеры смотрим
Помогите новичку
Добавлено: 30 мар 2016, 14:27
Glazman
Что такое "восходящий фронт" и "нисходящий фронт" ?
Какой из тригеров подходит для включения переменной по изменению положения датчика двери?
Помогите новичку
Добавлено: 30 мар 2016, 19:41
SirYorik
восходящий(передний) - момент смены сигнала с 0 на 1, нисходящий(онже задний фронт) наоборот с 1 на 0
Помогите новичку
Добавлено: 30 мар 2016, 19:46
SirYorik
Помогите новичку
Добавлено: 30 мар 2016, 20:01
Glazman
Спасибо большое за Ваши ответы. Вы очень помогли. Продолжу осваивать эту интереснейшую программу