Автор Тема: Проблема "двойного нажатия кнопок"  (Прочитано 6580 раз)

knxtrade

  • Специалист KNX
  • Адепт
  • ***
  • Сообщений: 77
  • Репутация: +8/-0
  • Пол: Мужской
  • Просто нравится KNX
    • KNX·TRADE
  • Сертификат KNX: (подтверждение)
Проблема "двойного нажатия кнопок"
« : 2016-10-01, 12:23:32, Суббота »
В данной статье рассматриваются некоторые вопросы управления освещением в системе KNX и связанные с этим проблемы. В частности, так называемая «проблема двойного нажатия клавиш», о которой знают многие КаНэИксоиды :)

Собственно говоря, проблемой это не является, если знать некоторые правила работы KNX.

Рассмотрим логику проходного включения, которая часто используется в системах «Умный дом». Под проходным включением имеется в виду включение одной нагрузки с 2 и более выключателей. В традиционной электропроводке это решается установкой специальных проходных выключателей, а также выполнения проводки по специальной схеме. В системе KNX это решается очень просто - без каких-либо ограничений (любое количество выключателей) или специальных электрических схем.

Все практические примеры в данной статье сделаны на оборудовании Zennio.

На рисунке показана структура управления 1 лампой с двух сенсорных панелей SQTMD. Используется режим переключения - для включения и выключения лампы используется только одна сенсорная кнопка панели. В базах на английском языке этот режим называется toggle. В этом режиме кнопки при каждом нажатии посылают поочередно «0» и «1» - то есть 0-1-0-1…

Только пользователям форума доступен просмотр содержимого спойлеров!


Для того, чтобы кнопки могли управлять одной нагрузкой, они должны посылать команды управления в один групповой адрес (на рисунке - «1/1/1»).

Если в проекте вы будете использовать указанные изделия Zennio, то никаких проблем при проходном включении у вас не будет.

Однако с изделиями других производителей может возникать эффект двойного нажатие - для того, чтобы включить или выключить освещение с другого выключателя, мы иногда должны нажать на него два раза. Почему это происходит или не происходит?

В нашем случае. В режиме переключения каждая кнопка передает попеременно команды «1» и «0». При этом все остальные кнопки в данной группе «0/0/1» также видят эту команду и меняют свое состояние на последнее, переданное в данной группе. И при следующем нажатии на любую кнопку продолжают последовательность 1-0-1-0.

Происходит это благодаря тому, что для данного объекта у кнопки установлен флаг записи.

Только пользователям форума доступен просмотр содержимого спойлеров!


Только пользователям форума доступен просмотр содержимого спойлеров!


Кнопка видит все команды, передаваемое в данной группе, и соответственно меняет свое состояние, чтобы в следующий раз передать правильную команду – т.е. противоположную последней переданной телеграмме.

Однако, для передающих объектов сенсоров флаг записи производители не всегда устанавливают в ETS по умолчанию, а используют минимально необходимую конфигурацию, которая показана на рисунке.

Только пользователям форума доступен просмотр содержимого спойлеров!


Небольшой эксперимент. Если мы снимем флаг записи в объектах наших кнопок

Только пользователям форума доступен просмотр содержимого спойлеров!


и посмотрим, что происходит (в групповом мониторинге), то увидим две разные ситуации.

Первый рисунок - работа с флагами, установленными в нашем случае по умолчанию, то есть флаг записи установлен. Имеем корректную последовательность 0-1-0-1-...

Только пользователям форума доступен просмотр содержимого спойлеров!


Второй рисунок - флаг записи не установлен (снят). Видно, что последовательность 1-0-1-0-… не соблюдается. Для наглядности в обоих примерах делается одинаковая последовательность нажатия на кнопки.

Только пользователям форума доступен просмотр содержимого спойлеров!


Вывод. Для того чтобы не возникало двойного нажатия на кнопки в логике с проходным включением, необходимо не забывать проверить наличие флага записи в передающих объектах.

Другая ситуация. К нашей схеме добавим еще одну кнопку для общего выключения всех нагрузок в здании. В ETS будет такая ситуация -

Только пользователям форума доступен просмотр содержимого спойлеров!


Кнопка общего выключения всегда посылает только телеграмму «0». И потому опять возникает эффект двойного нажатия! Суть проблемы в том же. Кнопки (выключатель 1.1.14) не видят телеграммы, которая передается кнопкой  общего выключения.

Решение очень простое. Одно из правил KNX гласит, что любой объект любого изделия KNX может принадлежать нескольким групповым адресом. Добавляем адрес, по которому передается команда общего выключение, объектам наших кнопок.

Только пользователям форума доступен просмотр содержимого спойлеров!


Теперь, при передаче команды «Все выключить» («0»), в объекты кнопок записывается «0», и далее при следующем нажатии они будут передавать «1». Двойного нажатия не будет!

Описанное выше решение является абсолютно правильным с точки зрения технологии KNX. Но, на практике, этот вариант не совсем удобен, так как имеет некоторые  недостатки. Статус по управляющей телеграмме (выход кнопки) не всегда отражает реального состояния канала управления (выход актуатора). Некорректные ситуации могут возникать в разных случаях. Например, если в канале актуатора используются таймерные функции или блокировки. Та же проблема будет существовать при использовании световых стен.

Но понять описанные выше примеры логики работы KNX очень полезно для более правильного и точного понимания работы изделий KNX c групповыми телеграммами.

Более удобное и универсальное решение - использование объекта статуса канала актуатора. В этом случае необходимо для каждого выхода актуатора создать свою отдельную группу состояния, в которой должны быть объект статуса актуатора и передающий объект  кнопки, с которой идет прямое управление этим выходом актуатора. Групповые адреса в ETS будут выглядеть вот так -

Только пользователям форума доступен просмотр содержимого спойлеров!


Теперь кнопка всегда видит актуальное состояние выхода актуатора независимо от того, через какую группу и когда он был включен/выключен и меняет свое состояние соответствующим образом. Проблемы с двойным нажатием не будет!

{ссылка доступна нашим форумчанам}

Kirpalitsch

  • Дебютант
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Пол: Мужской
  • Я НОВИЧОК
Re: Проблема "двойного нажатия кнопок"
« Ответ #1 : 2018-01-10, 17:44:07, Среда »
Спасибо большое за доступное изложение материала!
Есть вопрос связанный с расширением этой темы.
Допустим в схему с переключателем (выключателем) добывляем датчик движения.
Т.е. кнопкой мы включаем группу освещения до следующего нажатия кнопки, а по датчику движения идет временное включение этой же группы освещения при условии что она выключена.

leonid

  • Специалист KNX
  • Дебютант
  • ***
  • Сообщений: 7
  • Репутация: +4/-0
  • Пол: Мужской
    • Все "о" и "для " KNX. Официальный сайт фирмы "Смартхаус" (Украина).
Re: Проблема "двойного нажатия кнопок"
« Ответ #2 : 2018-01-11, 10:52:12, Четверг »
Также добавляете выход ДД в ту же группу.
Если освещение уже вкл и ДД дает вкл - освещение так и остается вкл.
Если освещение в состоянии выкл и ДД дает вкл - освещение вкл.

Никаких особенностей нет

Kirpalitsch

  • Дебютант
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Пол: Мужской
  • Я НОВИЧОК
Re: Проблема "двойного нажатия кнопок"
« Ответ #3 : 2018-01-16, 23:19:35, Вторник »
Также добавляете выход ДД в ту же группу.
Если освещение уже вкл и ДД дает вкл - освещение так и остается вкл.
Если освещение в состоянии выкл и ДД дает вкл - освещение вкл.

Никаких особенностей нет

Почти, но не совсем.
Я понял что не совсем точно описал ситуацию (упростил).
Имеем две группы освещения: малая и большая. ДД включает и выключает только малую группу, а кнопка включает и выключает обе группы.
Кнопка находится в зоне действия ДД. ДД до нажатия кнопки успевает включить малую группу освещения и запустить таймер на отправку сигнала отключения. Я же допустим решил задержаться в комнате подольше и нажимаю кнопку включения малой и большой группы света. Все включилось, но через 30 секунд малая группа освещения вырубается.
Принцип, который Вы описываете работает в данном случае только если притаиться и когда после таймера ДД малая группа освещения отключится (или дважды щелкнуть кнопкой, чтобы принудительно все вырубить) нажать кнопку включения двух групп освещения, тогда ДД не конфликтует.