Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Правильная реализация функции "Выключить всё"
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем > EIB/KNX
Д.Митрий
Добрый день!
Наконец то дошли руки собрать небольшой стенд на оборудование приобретенном после обучения в школе АСУЗ.
Получилось вот это:
http://www.youtube.com/watch?v=iyFvnsjTa6Q

Изображение 1 - функция включения выключения каждой группы света.
Изображение 2 - функция\сцена выключить всё.

Проблема в следующем. Включение и выключение каждой группы работает отлично.
Но вот если выключить всё, то чтобы потом включить какую нибудь из групп, надо надо нажать 2 раза, а потом всё начинает работать как обычно.

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

Подскажите в чём проблема, опыта в общем то и нет, поэтому прошу сильно не пинать.
AlexUnder
Проблема в том, что изменение состояния отслеживается только по одному групповому адресу и если вы использовали для выключить все отдельный адрес то получите результат, это особенность использования триггерных кнопок. Эту проблему можно решить если у исполнительных модулей есть внутренняя логика
ANTim
Добрый день. Вот если бы вы описали какое конкретно оборудование используется, то было бы легче. Вообще-то можно и без всякой логики, просто гр. адрес, который делает "выключить все" свяжите с объектами кнопок, которые управляют светом по отдельности. поставьте флаг, чтобы они читались. Или второй путь, это связать их со статусом, который отправляет актуатор - этот путь универсальнее, т.к. если управлять группами будете из разных мест или с разных устройств, то получите тот же эффект.
AlexUnder
Я вот не совсем понял про статус
Д.Митрий
Оборудование на стенде вот такое:
Д.Митрий
в картинку не влезло основное -
ACTinBOX Hybrid AD
ACTinBOX QUATRO
Д.Митрий
Проблему решил следующим способом: у бинарных выходов к которым подключены группы сделал активными Status Object. Эти объекты добавил в групповые адреса индивидуального управления каждой группой. Что, как я понял, в итоге получилось - когда я вызываю функцию Выключить всё, она размыкает цепи на всех бинарных выходах, после чего каждый бинарник сообщает свой статус в соответсвующую функцию управления каждым выходом отдельно - и переключает триггер в состояние Выключено.
Как я понял - это второй вариант.
Цитата(ANTim @ 8.1.2013, 22:41) *
Или второй путь, это связать их со статусом, который отправляет актуатор - этот путь универсальнее, т.к. если управлять группами будете из разных мест или с разных устройств, то получите тот же эффект.

А как реализовать 1й?
AlexUnder
Первый способ, это когда ты свой адрес выключить все прицепляешь к коммуникационному объекту кнопки где у тебя уже привязана команда на включение группы. Главное что б в свойствах этого объекта флаг Read стоял.
MrBond
Цитата(AlexUnder @ 9.1.2013, 14:20) *
Первый способ, это когда ты свой адрес выключить все прицепляешь к коммуникационному объекту кнопки где у тебя уже привязана команда на включение группы. Главное что б в свойствах этого объекта флаг Read стоял.


День добрый

прошу прощения (у меня мало опыта и возможно я чего не понимаю) - если toggle кнопка меняет свое состояние при получении телеграммы "выключить все", то зачем ей нужен флаг Read? Зачем иметь возможность читать значение этого объекта (т.е. кнопки) через шину? Может быть у объекта кнопки должен быть выставлен флаг Write, т.е надо именно иметь возможность менять значение объекта через шину?

С уважением,
AlexUnder
Коммуникационный объект не может отправлять данные в несколько групповых адресов, он может отправлять только в один, а остальные привязанные к нему он может только слушать. Вот тут и нужен флаг read.
Melnikov
Флаг read нужен исключительно для того, чтобы данноне устройство с отмеченого данным флагом объекта могло послать ответ на телеграмму с командой read, по любому из групповых адресов из присвоенных данному объекту связи. И для выключателей этот флаг - только проблема при наладке и работе.
Д.Митрий
Прощу прощения, читаю - вроде бы всё понятно, и вот небольшой мануал нашёл по флагам:
http://www.knx.org/fileadmin/template/docu...lags_E1008a.pdf

Но реализовать на практике не получается. То что у объекта бинарного входа на котором висит кнопка нужно взвести флаг Read, это сделал, но вот как в ETS сделать чтобы этот объект читался групповым адресом (если я правильно понял) - не могу разобраться blink.gif
Д.Митрий
Вроде заработало..
Но так и не понял, при чём тут флаг Read helpsmilie.gif
leonid
Цитата(Д.Митрий @ 22.1.2013, 0:35) *
Но так и не понял, при чём тут флаг Read helpsmilie.gif

1. Если коротко, то флаги изменять рекомендуется очень-очень редко. И обязательно с пониманием, что и зачем. Как правило, это указывается в описании на изделия.
В Вашей задаче его менять уж точно не надо.
2. А если уж очень хочется разобраться с флагами - смотрите здесь
Но не забывайте о п. 1 wink.gif
3. Из практики. Необходимое обязательное изменение флагов встречал -
  • при использовании световых сцен для старых клавиш световых сцен (типа 2094LZ - JUNG), но сейчас это не актуально (для академического интереса - можете ознакомиться)
  • для шлюза KNX-Viessmann (в программе изначально флаги чтения-записи не выставлены вообще и их нужно задавать самому в зависимости от типа объекта)
  • для систем визуализации или SCADA (флаги надо выставлять для возможности чтения объектов, особенно при начальном опросе)
... может и есть другие случаи, но пока не встречались...
.... но случаи бывают разные wink.gif ...



Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.