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

Логика света

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

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

Igor: Тут многое зависит от того как проектировалась электрика - с расчетом на автоматизацию или без оного. Иными словами, от соотношения количества клавиш на выключателях и количества групп светильников в отдельно взятом помещении.

Вячеслав: Два прихлопа Три притопа Ну а если серьезно и не вдаваясь в функционал неведомых мне девайсов: 1.Короткое нажатие в тогле включает или выключает обе зоны 2.Длинное нажатие (удержание) последовательно включает 1 зону, затем включает 2 зону, затем выключает 1 зону, затем выключает 2 зону. - отпустить в нужный момент.

Nescafe: Igor Делалось без расчета на автоматизацию, в виду того что выход на выключатель с данных девайсов один - все они поменяны на одноклавиные. Вячеслав Попробую, интересно )


Nescafe: Вячеслав А если обе зоны включены? Какая логика удержания? )

Вячеслав: Такая же, просто при старте удержания всегда начинайте выключить вторую и включить первую. Или в чем вопрос?

p.vladi: Один выключатель на две зоны? игра в код Морза :-)) тут да, Ring Counter можно например. Притом два. Один на быстрое нажатие, другой на удерживание...

Igor: Чувствую, очередной тред уходит в космос. Nescafe, уточните, правильно ли я понимаю, что в системе используются все же CLCI-1SW2EX-W и кое где CLCI-DIMUEX-W, к которым напрямую подключены силовые выключатели, а центральный контроллер отсутстувует?

Nescafe: Igor Верно, с префиксом W. Контроллер - MC2E + RFGW. p.vladi Выключатели одноклавишные, так как выход на него только один. По схеме можно подключить и двухклавишный, но, как я понял, обе клавиши будут делать одно и тоже.

Igor: Nescafe правильно ли я понимаю, что в системе используются все же CLCI-1SW2EX-W и кое где CLCI-DIMUEX-W, к которым напрямую подключены силовые выключатели?

Nescafe: Igor Да, совершенно верно.

Igor: Nescafe, вот теперь ясность. Чем детальнее сформулирована задача и условия ее решения, тем больше шансов выйти на достойное решение. Тут действительно есть определенное пространство для маневра. Мы работали в похожих условиях - модернизировали мини-отель. В итоге остановились на следующем алгоритме: короткое нажатие клавиши выключателя меняет состояние всего освещения в помещении (вкл./выкл.), двойное нажатие циклически перебирает пять световых сцен. Сами сцены я изначально зашил в программе намертво, но позже была заказана доработка в виде централизованного мониторинга объекта. Сделал XPANEL для ПК - появилась возможность ручной нстройки сцен.

Nescafe: Igor Спасибо! А как сделать так, чтобы при включенном свете (неважно 1 зона или 2, или обе горят) короткое нажатие всегда выключало свет?

Igor: Nescafe, тут в вопросе половина ответа. У вас есть истинная обратная связь от диммера или реле и есть логические условия, определяющие реакцию системы на нажатие клавиши. Надо просто описать это программно.

Nescafe: Igor Подскажите что именно использовать?

Igor: Nescafe, затрудняюсь ответить. Если пользуете SIMPL Windows - использовать Toggle, Buffer и Multiple One Shots, количество, комбинацию и взаимосвязи между которыми вам нужно определить самостоятельно в ходе разработки программного проекта.

Вячеслав: Проще будет на Simpl+ реализоватьNescafe пишет: Если только это: А как сделать так, чтобы при включенном свете (неважно 1 зона или 2, или обе горят) короткое нажатие всегда выключало свет? ну и включить в противном случае Вариант кода такой: DIGITAL_INPUT switch_lt,zone_1_fb,zone_2_fb; DIGITAL_OUTPUT zone_1_off,zone_2_off,zone_1_on,zone_2_on; PUSH switch_lt { 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);} } На вход switch заводите сигнал с выхода Button_1 (элемента slot-05 CLCI-1SW2EX Switch Remote Buttons) На входы zone_1_fb,zone_2_fb подавайте сигналы с соответствующих выходов load_is_on элементов CLCI-1SW2EX Switch 1 Controls и CLCI-1SW2EX Switch 2 Controls Выходы zone_1_off,zone_2_off,zone_1_on,zone_2_on заводите на входы off и on элементов CLCI-1SW2EX Switch 1 Controls и CLCI-1SW2EX Switch 2 Controls

Nescafe: Вячеслав Нет, до SIMPL+ мне далеко ) С SIMPL Windows бы справиться :) Igor Как использовать toggle я примерно понимаю ) А как в моем случает buffer (и зачем он) и multiple one shot?

Igor: Nescafe, как я могу объяснить на русском то что должно быть выражено на крестроновском? Хорошей рекомендацией для изучающего какой-либо иностранный язык является не мыслить сначала на родном языке и потом переводить на иностранный, а мыслить сразу на иностранном. То же применимо к программированию. Если вы и дальше будете заниматься программированием, то, возможно, года через 3-4 вспомните мои слова. У вас имеется одно событие - одиночное короткое нажатие клавиши выключателя. В момент наступления этого события справедливо одно из условий: 1) "Свет уже включен", или 2) "Свет уже выключен". Алгоритм обработки данного события зависит от того, какое условие справедливо в момент его наступления. Buffer как раз видится как средство пропускания события в нужное русло. Пробуйте мыслить самостоятельно. Это в наше странное время можно написать на форум, позвонить в Crestron. На рынке околачиваются толпы горе-специалистов, загибающих пальцы в рекламе, но в реальности творящих на своих объектах ад. Когда мы начинали, ничего этого не было, учились преимущественно самостоятельно.

Nescafe: Igor Текущий проект я делаю у себя дома, сам для себя. Я не претендую на загибание пальцев в рекламе, так же как и на оказание услуг за деньги. Я учусь самостоятельно, читая по возможности всякую документацию, и тд. Но разве не лучше спросить у знающего человека? Очень жаль, что когда вы учились, вам было не у кого спрашивать. В мое время ситуация изменилась, появился интернет, люди придумали форумы, для обмена знаниями. Я, вот, пытаюсь эти знания получить, задавая вопросы, по моему мнению, специалистам. Разве это плохо? Я не отказываюсь мыслить самостоятельно, и не прошу сделать что-то за меня. При желании, можно на русском языке объяснить, что именно, и как делает Buffer, и что именно и как делает Multiple One Shot. Если желания нет - к чему такие дискуссии?

Igor: На креативе мы видим четыре бинарных сигнала (Play, Stop, FastForward и Rewind), приходящих одновременно на четыре буфера. Вместо этих четырех сигналов представим на их месте наш один сигнал короткого нажатия клавиши выключателя. Буфер пропускает сигнал(ы) с входа на соответствующий выход только в том случае, если его бинарный сигал 'enable' активен. На креативе видно, что в один и тот же момент времени может быть выбран только один источник медиа - видеомагнитофон №1, видеомагнитофон №2, проигрыватель LD или проигрыватель CD. Если выбран видемагнитофон №2 (сигнал 'VCR2_Selected' активен), то управляемый им буфер превратит исходную команду Play в команду VCR2_PLay, команду Stop - в команду VCR2_Stop, и т.д. В вашем случае буферов видится два - один управляется истинной обратной связью о включенном канале актуатора, другой - обратной связью о выключенном канале актуатора, формируемой путем инвертации истинной обратной связи о включенном канале актуатора при помощи логического символа NOT. Вот так это может выглядеть на русском, без проверки грамматики и литературной правки.

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: пасиб



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