Поясните, что у вас означает каскадное включение света в первом автоматическом режиме? И как выбираются автоматические режимы?
Вид для печати
Поясните, что у вас означает каскадное включение света в первом автоматическом режиме? И как выбираются автоматические режимы?
На примере показать будет проще, я думаю
Вот группа из трёх блоков, первого автоматического режима.
Вложение 34293
Первый блок формирует сигнал "дверь открыта снаружи".
Второй запускает собственно автофункцию, проверяя условия.
Третий, её реализация - поочерёдный запуск групп освещения с 1 секундным интервалом. Именно это я назвал каскадным включением.
Нерациональная первая цепь WF - K1 просто для наглядности процесса при отладки.
Далее, регистры К1 - К4 идут на выходные блоки.
Вложение 34294
Здесь, по сути, коллектор собирающий все выходные сигналы и окончательно формирующий команды на выход.
Т.к. условий много получилось, то и эта часть выглядит громоздкой. Но, сделать по другому, не поломав ничего, не получилось.
Вообще, автоматические режимы выбираются логически, при соответствующих условиях и при отсутствии запрета.
Ещё нужно уточнить. Когда входная дверь закрыта, на входе I5 1. Датчик движения держит сигнал около 15 сек при срабатывании. Настроен он на низкую освещённость, по этому когда боле-менее светло, свет не включается.
P.S. Сам вижу уже ошибку. Забыл убрать ненужные уже линии задержки на ODM :(
Долго пытался разобраться в вашей программе, потом бросил и написал свою, как я это вижу. Попробуйте может вам подойдёт.
Спасибо. Интересное решение. Очень красиво макрос написан. Снимаю шляпу.
Сама схема в моём случае не подойдёт, к сожалению, но я попробую использовать такой подход. Использовать XOR как триггер, замечательная идея! Ещё раз Спасибо.
Если вернуться к моей схеме, то я видимо в описании алгоритма был не точен. Попробую ещё раз.
Вот такая схема размещения:
Вложение 34324
Не абсолютно точно, но по сути.
Итак. Выключатель S1 первым шагом включает свет над порогом (выход Q1), потом, если кнопку продолжать удерживать, подключится Q2 (будет включен весь яркий свет), а затем и Q3+Q4 (декоративная подсветка).
Выключатель S2 же первым шагом включит свет в проходах (выход Q2), а затем будут последовательно подключены Q1 и Q3+Q4.
Время полного цикла 1,8 сек.
При включенных всех 4-х выходах, нажатие любого из выключателей сразу выключит яркий свет (Q1, Q2), а через 1,2 сек. выключится подсветка (Q3, Q4)
Таким образом есть возможность зонировать освещение. Например, когда ребёнок спит в своей комнате, свет у порога будет ему мешать, тогда выключателем S2 можно включить свет только в проходах. А иногда наоборот, нужен свет только над порогом.
Автоматическое включение Q1 и Q2 предусмотрено только в одном случае, когда заходишь в квартиру с улицы а дома темно и никого нет (неактивны все выходы и нет сигнала с датчика движения). Все другие автоматы включают только вспомогательное освещение (Q3+Q4 или только Q4). Не очень комфортно, когда яркий свет вспыхивает неожиданно :)
Днём и вечером при слабом освещении, по датчикам освещения и движения автоматически включаются Q3+Q4. Их света хватает чтоб ориентироваться в коридоре. Но, ночью в полной темноте, такой свет будет слишком ярок. Поэтому, введён ночной режим (переменная "Ночь"), когда после 23:00 по датчику движения будет включен только Q4 (2 LED светильника). Выключится свет либо сам через 2 минуты после последнего срабатывания датчика движения (переменная "MST"), либо от любого выключателя, но с 3-х секундной задержкой (чтобы успеть дойти до двери в спальню).
Иногда датчик движения тупит и тогда бывает полезна возможность ручного включения/выключения дежурного света (переменная "НСР").
Бывает так что ночь нужно отложить :) Если текущее время позже 23:00, но ещё остались дела, нажав на 2 секунды любую кнопку можно на полчаса отложить режим "Ночь"
Если автоматика вконец достала, её можно полностью отключить. При удержании любой кнопки дольше 5 секунд, автоматические режимы будут заблокированы (переменная "Блк") и в качестве индикации моргнёт выход Q2. Теперь светом можно управлять только выключателями. Чтобы включить автоматику, нужно ещё раз нажать кнопку на 5 сек., пока не моргнёт Q1.
Если хозяева ушли не погасив свет, то всё что включилось автоматом, выключится через 30 минут. Свет включенный от выключателя выключится при любой смене цикла день/ночь (переменная "Reset") Так, например, если свет у порога остался включенный, а хозяева заснули (бывало :) ), свет на ночь отключится сам.
Может это кому то покажется излишним, спорить не буду. Но, это работает. И к такому быстро привыкаешь. И кажется, что так и надо.
Может. Только боюсь, мне мозгов на это не хватит. Я ж не программер. Энтузиаст, можно сказать. Но,я Вас наверное понял и попробую. Хотя, пока даже не представляю как :)
например загуглить фразу : СДНФ минимизация синтез
Не, ну, пользоваться поиском я могу. Но, за готовый запрос спасибо. Да, и что такое таблица истинности я в общем то тоже знаю. Когда брался за свой проект как раз и пытался такую таблицу составит. Но, опыта тогда не хватило, плюнул и сделал "по простому"
Но, учиться надо, согласен.
Вот книжка https://lib-bkm.ru/load/1-1-0-2381
в первом разделе даже примерчик есть