Приветствую!
Столкнулся с непонятным поведением триггеров событий.
Есть 4 типа условий: ON, OFF, ON->OFF, OFF->ON
С первыми понятно: условие возникло - триггер включился, условие ушло - триггер выключился.
А с ON->OFF, OFF->ON логично, что они работают как детекторы переднего и заднего фронтов: прошел нужный фронт - триггер сработал, прошел обратный фронт - триггер не реагирует.
Но почему-то работа триггеров ON и OFF->ON одинаковы, как и противоположные!
Объясните, пожалуйста, чего я не понимаю в чем различия ON и OFF->ON, если работают они одинаково? Или это баг?
В приложении тестовый проект, можно пощелкать.
А потребность возникла по причине того, что в режиме реального времени события отображается очень удобно: в одной строке отображается время начала и окончания события, но в этом режиме при перезагрузке панели информация пропадают; в режиме журнала информация сохраняется, но почему-то нет возможности отобразить время окончания события в этой-же строке.
В итоге сообщения с началом и концом события генерируются в разных строках и при наличии других событий могут быть сильно разнесены и непросто их найти. Я же планировал организовать начало и конец события в отдельных сообщениях, типа "Бит 1 включился/Бит 1 выключился" но из-за непонятной работы триггеров фронтов это не получается.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Триггеры событий
Модераторы: Глоб.модераторы, специалисты Weintek
-
- специалист по WEINTEK
- Сообщения: 120
- Зарегистрирован: 05 фев 2014, 12:22
- Имя: Иван Николаевич
- Поблагодарили: 21 раз
Триггеры событий
Добрый день.
Разница в том, что в одном случае отслеживается состояние бита, а в другом именно фронт.
Разницу можно заметить при включении панели(симулятора), когда первоначально нет смены состояния.
Но при работающей панели разницы не будет, поведение будет одинаковое.
Триггер окончания события работает одинаково в обоих случаях.
Что касается отображения журнала из файла(режим Журнал), возникновение события и окончание события можно различить только по цветам. Дело в том, что в файл события пишутся именно так как их выводит Дисплей событий - возникновение и завершение в разных строках.
Теоретически, с помощью WATCH можно сформировать сообщение события типа "Бит 1 включился/выключился", но для этого нужно придумать механизм формирования строк "включился", "выключился" во внутренних регистрах на которые будет ссылаться WATCH.
Разница в том, что в одном случае отслеживается состояние бита, а в другом именно фронт.
Разницу можно заметить при включении панели(симулятора), когда первоначально нет смены состояния.
Но при работающей панели разницы не будет, поведение будет одинаковое.
Триггер окончания события работает одинаково в обоих случаях.
Что касается отображения журнала из файла(режим Журнал), возникновение события и окончание события можно различить только по цветам. Дело в том, что в файл события пишутся именно так как их выводит Дисплей событий - возникновение и завершение в разных строках.
Теоретически, с помощью WATCH можно сформировать сообщение события типа "Бит 1 включился/выключился", но для этого нужно придумать механизм формирования строк "включился", "выключился" во внутренних регистрах на которые будет ссылаться WATCH.
-
- эксперт
- Сообщения: 1030
- Зарегистрирован: 27 июн 2013, 12:20
- Имя: Валерич
- Страна: СССР
- Благодарил (а): 44 раза
- Поблагодарили: 106 раз
Триггеры событий
Обнаружил, что пункт меню сортировки "Вернуться к нормальному" изменяет формирование событий!
Если пункт отмечен, то событие формируется 2 раза: по переднему и заднему фронту, если пункт не отмечен, то событие формируется только по фронту!
И действия триггеров ON и OFF->ON все равно одинаковы и непонятно их назначение, ведь в реале эта функция переключается пунктом "Вернуться к нормальному".
Вот такая китайская логика
Отправлено спустя 27 минут 46 секунд:
Если пункт отмечен, то событие формируется 2 раза: по переднему и заднему фронту, если пункт не отмечен, то событие формируется только по фронту!
И действия триггеров ON и OFF->ON все равно одинаковы и непонятно их назначение, ведь в реале эта функция переключается пунктом "Вернуться к нормальному".
Вот такая китайская логика
Отправлено спустя 27 минут 46 секунд:
Не получается. WATCH загружается при возникновении сообщения и при заднем фронте отображается то-же сообщение, что и при переднем, даже если WATCH за время сообщения изменился.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- специалист по WEINTEK
- Сообщения: 120
- Зарегистрирован: 05 фев 2014, 12:22
- Имя: Иван Николаевич
- Поблагодарили: 21 раз
Триггеры событий
Не событие формируется 2 раза, а выводится, или не выводится завершение события. Завершение события всегда пишется в файл отдельной строкой и формируется по обратному фронту.
Еще раз, "Вернуться к нормальному" - выводит в дисплей событий завершающие сообщения, эти сообщения всегда есть в файле журнала, но этой опцией их можно скрывать, они специально выделены другим цветом. При работающей панели триггеры ON и OFF->ON не отличаются друг от друга на практике.
Поэтому, нужно либо заранее сформировать правильную надпись макросом, либо макросом ловить событие, формировать сообщение, а потом формировать событие в Журнале событий. Может и можно без макроса обойтись, но я пока не представляю как.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Триггеры событий
Я предполагаю, что сначала к OFF добавился ON->OFF на случай того, что панель на какое-то время потеряет питание - чтобы гарантированно ловить или не ловить эти события после перезагрузки. Потом, заодно, добавили и OFF->ON, но по факту разницы нет от ON.
Это всё будет иметь значение, если сами события (биты) обрабатываются макросами и задана задержка на исполнение этого макроса после рестарта, а в других случаях разницу не увидеть.
Могу ошибаться, но кажется так.
Отправлено спустя 3 минуты 57 секунд:
Например на моих установках. Агрегат работает может обозначаться одним битом: 1 = работает, 0 = остановлен. И можно завести два события: агрегат запустился и агрегат остановился. Если при стоящем агрегате перезапустить панель, то в журнале получим событие "агрегат остановился", хотя он и так стоял и не запускался. И с помощью этих игр можно избежать этих ложных сообщений.
Это просто пример что на ум пришёл.
По вопросам работы Форума можно обратиться по этим контактам.
-
- здесь недавно
- Сообщения: 8
- Зарегистрирован: 12 сен 2017, 08:41
- Имя: Александр
- Страна: Россия
- город/регион: Воронеж
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Триггеры событий
Не одинаковы. Допустим мы имеем какой либо бит передающийся из контроллера который в момент загрузки панели уже равен 1 , если триггер ON , то событие сработает , а если OFF-> ON , то не сработает.