Вход

Просмотр полной версии : Ложный импульс по фронту R_TRIG



skinnbatter
16.07.2017, 23:20
Доброго времени суток господа!
Столкнулся с таким не приятным эффектом как ложный импульс в детекторе по фронту. Суть в том что положим есть команда срабатывания по фронту ,нажали кнопку что то записалось по фронту. При аварийном снятие питания и перезагрузке PLC проходит ложный импульс что приводит к повторной записи по фронту. Конечно можно подключить два таймера встречно и решить проблему, но хочется понимать как не допустить такого срабатывания без всяких костылей. Уточню триггер храниться в энергонезависимой памяти. Поделитесь идеями...:cool:

skinnbatter
17.07.2017, 00:13
Чушь какая-то.
Тригер это не что-то волшебное а обычный кусок кода типа :
q := not m and clk
m := clk;
Раз r_trig отработал - значит сейчас clk true, а накануне clk был false и/или была не сохранена (почему-то) внутренняя переменная М. Никаких других вариантов нет. Разбирайтесь со своей логикой и/или батарейкой и учитывайте что при снятии питания цикл может пройти, а входов уже нет.

Получается вход CLK связан с аппаратной частью и уже имеет TRUE, значит экзепмляр R_TRIG сформирует ложный единичный импульс при первом вызове в любом случае. Это как-то аппаратно в среде решается или костыли городить? в siemens область процесса входов создавалсь и таких проблем не было, тут немного подругому..

krollcbas
17.07.2017, 00:31
В чем разница то от Сименса, те же грабли (I,M,Q). Мне видится ответ находится в вопросе.
А для чего вы триггер (ловушку переднего фронта) разместили в энергонезависимую память?
Скорее не CLK связан с памятью или аппаратной частью, а память блока R_TRIG.
Попробуйте его оттуда вытащить. Далее попробуйте ничего не выполнять после перезагрузки (установите пару секунд таймер)

skinnbatter
18.07.2017, 23:56
В чем разница то от Сименса, те же грабли (I,M,Q). Мне видится ответ находится в вопросе.
А для чего вы триггер (ловушку переднего фронта) разместили в энергонезависимую память?
Скорее не CLK связан с памятью или аппаратной частью, а память блока R_TRIG.
Попробуйте его оттуда вытащить. Далее попробуйте ничего не выполнять после перезагрузки (установите пару секунд таймер)

Таймер я изначально использовал чтобы убрать ложное срабатывание. А обратился к корефеям сюда потому что не понимаю , почему при инициализации проскакивает импульс. Т.е пример я ставлю тригер по фронту далее счётчик и при каждой перезагрузке значение счётчика увеличивается.От RETAIN я не тащусь прост уже ради эксперемента туда затащил детектор фронта. Siemens затронул потому что аналогичная ситуация и такой проблемы нет.

capzap
19.07.2017, 05:02
Таймер я изначально использовал чтобы убрать ложное срабатывание. А обратился к корефеям сюда потому что не понимаю , почему при инициализации проскакивает импульс. Т.е пример я ставлю тригер по фронту далее счётчик и при каждой перезагрузке значение счётчика увеличивается.От RETAIN я не тащусь прост уже ради эксперемента туда затащил детектор фронта. Siemens затронул потому что аналогичная ситуация и такой проблемы нет.

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