Форум » » Логика света » Ответить

Логика света

Nescafe: Друзья, подскажите как лучше. Имею несколько CLCI-1SW2EX, и кое где CLCI-DIMUEX. В каждой комнате 2 зоны освещения, там где 1SW2EX - это 1 и 2 выход соответственно, где DIMUEX - там их попросту два. Физически включается обычными выключателями (импульсными). Никак не придумаю как сделать в общем-то простую вещь. Если включена любая из зон, либо обе зоны одновременно - 1 нажатие на выключатель должно выключать свет. С включением более или менее понятно, одно нажатие - включаем зону1, двойное нажатие - 2 зона, и удержание - обе зоны. Честно говоря слегка каша в голове ) Как должно правильно работать, может есть какие наработанные стандарты?

Ответов - 29, стр: 1 2 All

Nescafe: Igor Получается Buffer - по сути if ... else. Теперь логика ясна, спасибо за разъяснение! Пошел пробовать )

Вячеслав: В этих квадратиках скорее запутаться можно при сложной логике. А simpl + все изящно и компактно получится. Тем более весь код модуля я вам написал. Осталось его перенести в собственный модуль создаваемый по нажатию всего одной кнопочки. Когда откроется окно модуля там все сразу узнаете из приведенного мной кода. Там шаблон есть, просто в нужных местах правите разкомметировав эти нужные места И жмете кнопочку компилировать выбрав серию процессора. Можете скачать его по ссылке click here Положите в папку проекта, потом откроете его прямо в папке и заново откомпилируете нажав кнопочки 2 и 3 (серия процессора) и кнопочку с дискетой. После этого перезапустите проект и увидите модуль в левом списке Symbol Library в папке Project Modules. Перетяните мышкой в список логики вашей программы. Соедините с нужными элементами, как я писал выше. В итоге будет всего 1 квадратик вместо кучи буферов и one shot-ов. Конструкция if ((zone_1_fb=1)||(zone_2_fb=1)){pulse(1,zone_1_off);pulse(1,zone_2_off);} else {pulse(1,zone_1_on);pulse(1,zone_2_on);} Это условие (if) которое проверяет включен ли свет в зоне1 (или||) зоне2, если хотя бы одно условие выполняется то выдать импульс ( pulse) длительностью 1 сотая секунды на выходы отвечающие за управлением выключения света в зонах 1 и 2. В противном случае (else) отправляются импульсы на выходы отвечающие за включение света в зонах 1 и 2. P.S. Имена входов switch_lt,zone_1_fb,zone_2_fb; и выходов zone_1_off,zone_2_off,zone_1_on,zone_2_on; модуля не какие то страшные функции, а лишь придуманные мной названия. Можете отредактировать модуль и назвать их как вам будет понятнее

Igor: Nescafe пишет: Igor Получается Buffer - по сути if ... else. Именно. Кстати, можно использовать логические символы OR, но буфер настолько велик и могуч, то регулярные упражнения с ним настоятельно рекомендуются.


Nescafe: Вячеслав Спасибо, разобрался ) Работает так как надо )

Kaveckiy: Вячеслав, вопрос немного не по теме - где Вы учились писать модули? Чувствую что мне это уже очень нужно не не знаю с чего начать.

Вячеслав: У меня был хороший наставник + была практика программирования с института еще. Далее уже сам по ходу дела набирался опыта, в том числе что то был почерпнуто с applicationmarket-a

4ertjaga_88: Есть ли у кого готовы модуль для короткого и длинного нажатия?то есть при замыкании кнопки быстро- происходит одно действие,если происходит удержание этой кнопки на разные промежутки времени-другое действие

Ale4ko: вроде есть несколько модулей в базе Крестрона

4ertjaga_88: пасиб



полная версия страницы