Opened 6 лет ago

Closed 6 лет ago

Last modified 6 лет ago

#7 closed задача (fixed)

Фильтрация значений с логических входов

Сообщил: andrei Владелец: alx
Приоритет: Срочно Этап разработки: 1-я очередь
Ключевые слова: Копия: san, alx, andrei, Art_M

Описание (последним изменил san)

Нужно ввести фильтр детектирования изменения состояния входов чтобы исключить дребезг контактов, наводки, гонки и др..
Входы:

  • переключатель режимов работы
  • кнопки панели оператора ?
  • магнитные датчики положения
  • УМ
  • ЭКМ
  • контроль исправности ЭК

История изменений (22)

comment:1 by alx, 6 лет ago

Давайте для начала составим список входов, для которых это необходимо. Из устной беседы я знаю, что такая фильтрация необходима для переключателя режима работы. Это будет пункт 1 в списке...

comment:2 by andrei, 6 лет ago

Копия: andrei added

comment:3 by alx, 6 лет ago

Приоритет: среднийПолный атас
Этап разработки: 2-я очередь1-я очередь

comment:4 by alx, 6 лет ago

Так как, по мнению Саши, эту функцию необходимо реализовать как можно скорее, прошу активнее дополнять список входов, которым требуется такая фильтрация.

comment:5 by alx, 6 лет ago

Приоритет: Полный атассредний

Вернул приоритет обратно, так как, похоже, Андрей поспешил с выводом насчет источника проблемы - см. #13.

comment:6 by san, 6 лет ago

Владелец: установлено в andrei
Состояние: newassigned

comment:7 by san, 6 лет ago

Владелец: изменён с andrei на alx
Копия: Art_M added
Краткое описание: Фильтрация дребезга?Фильтрация значений с логических входов
Описание: изменено (отличие)

Может быть я забыл какие-то входы которые нужно фильтровать?

comment:8 by alx, 6 лет ago

Саша, поясни, пожалуйста, по каким соображениям ты внес в список сигналы контроля исправности ЭК. Мне смысл этого непонятен...

comment:9 by san, 6 лет ago

Насколько я понимаю "контроль исправности ЭК" это тоже цифровой вход контроллера, значения полученные с которого предлагается фильтровать, аналогично другим входам.

in reply to:  9 comment:10 by alx, 6 лет ago

Replying to san:

Насколько я понимаю "контроль исправности ЭК" это тоже цифровой вход контроллера, значения полученные с которого предлагается фильтровать, аналогично другим входам.

??? Если это был ответ на мой comment:8, то я его не понял. То, что ты предлагаешь фильтровать этот сигнал, было понятно по факту его добавления в список в описании тикета. А вот почему (или зачем) ты это предлагаешь, в твоем комментарии, к сожалению, не говорится...

comment:11 by san, 6 лет ago

А вот почему (или зачем) ты это предлагаешь

Очевидно потому же, что и остальные входы...

наводки

Например, в целях защитить вход от влияний ЭМ помех

in reply to:  11 comment:12 by alx, 6 лет ago

Replying to san:

Очевидно потому же, что и остальные входы...

Хм... У разных входов разные причины фильтрации...

Например входы переключателя режима работы требуется фильтровать из-за дребезга контактов. У ЭК никаких контактов нет, следовательно, в случае ЭК данной причины не может быть в принципе.

Или, например, магнитный датчик положения имеет два входа, переключающиеся не очень синхронно. Им требуется фильтрация чтобы исключить гонки и ложное сообщение об аварии датчика. У ЭК только один вход, поэтому в случае ЭК данной причины опять-таки не может быть в принципе.

Поэтому я и хочу знать причину, по которой ты считаешь, что конкретно вход ЭК необходимо фильтровать...

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

comment:13 by alx, 6 лет ago

Андрей, каково (хотя бы приблизительно) время дребезга контактов переключателя режима работы, датчика уровня масла и ЭКМ?

comment:14 by alx, 6 лет ago

Я потестировал имеющийся у меня образец переключателя режима работы. Во всех экспериментах время переходного процесса не превышало 20 мкс., что на три порядка меньше периода опроса. Это у меня экземпляр такой идеальный попался?

comment:15 by san, 6 лет ago

Приоритет: среднийСрочно

comment:16 by san, 6 лет ago

Решение: не будем делать
Состояние: assignedclosed

Фильтрация магнитных датчиков перенесена в #66
По остальным приняли решение ничего не делать, т.к. в результате разговора выяснилось что причин для фильтрации нет.

comment:17 by san, 6 лет ago

Алексей, у меня вопрос в связи с новым витком обсуждения "фильтрации": можешь ли ты опрашивать значения регистров с дискретностью порядка 1 мс., если нет, каков примерно минимально возможный период опроса?

in reply to:  17 comment:18 by alx, 6 лет ago

Replying to san:

Алексей, у меня вопрос в связи с новым витком обсуждения "фильтрации":

Что? Опять??? :(

можешь ли ты опрашивать значения регистров с дискретностью порядка 1 мс.,

Да.

comment:19 by san, 6 лет ago

Решение: не будем делать
Состояние: closedreopened

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

  • магнитные датчики положения (фильтруем только сигналы кз/обрыв, срабатывания не фильтруем)
  • УМ
  • ЭКМ (срабатывание, неисправность)
  • контроль исправности ЭК
  • контроль пускателей вентилятора и доп. насоса
  • термозащита двигателей вентилятора и доп. насоса

Также с целью защиты от "ложных действий пользователя" в следствии влияния помехи нужно по аналогичному алгоритму фильтровать входы:

  • переключатель режимов работы
  • кнопки панели оператора

comment:20 by alx, 6 лет ago

Решение: fixed
Состояние: reopenedclosed

In 448/smartHDC:

Задержка между обращениями к дискретным входам/выходам уменьшена до 10 мс.
Добавлена фильтрация дискретных входов: изменение значения входа действует
только если оно принято онинаково два раза подряд. Closes #7.

comment:21 by alx, 6 лет ago

In 449/smartHDC:

В связи с фильтрацией всех дискретных входов (See #7) отдельная фильтрация
аварийных состояний магнитных датчиков положения (See #66) стала неактуальной.
Коммит 429 откачен.

comment:22 by alx, 6 лет ago

In 450/smartHDC:

Переделан алгоритм фильтрации дискретных входов: ранее результат фильтрации
копировался в общий регистр last_input поразрядно по мере обработки, что
нарушало синхронность изменения входов дифференциальных датчиков.
Теперь сначала результат по всем входам "параллельно" копируется в last_input,
а затем входы перебираются для сигнализации изменения их состояния. See #7.

Note: See TracTickets for help on using tickets.