PDA

Просмотр полной версии : Подсчет количества нажатия кнопки



Rs219
25.03.2026, 20:19
Добрый день.
Подскажите подробно��, как в codesys2.3 на языке LD или CFC, написать код, который будет считать количество нажатия кнопки подряд.
К примеру нажатия 3раза посчитал, потом через 1-2 сек нажатия 5раз подряд эту же кнопку.
А плк считал эти нажатия и в зависимости от того, сколько раз гадали включал тот или иной выход.
Или записывал их в список. ???
Если я просто применяю "счётчик", то они считает все нажатия, не разделяя на 2нажатия подряд, пять нажатия подряд.
Большое спасибо.

kondor3000
25.03.2026, 21:14
Добрый день.
Подскажите подробно��, как в codesys2.3 на языке LD или CFC, написать код, который будет считать количество нажатия кнопки подряд.
К примеру нажатия 3раза посчитал, потом через 1-2 сек нажатия 5раз подряд эту же кнопку.
А плк считал эти нажатия и в зависимости от того, сколько раз гадали включал тот или иной выход.
Или записывал их в список. ???
Если я просто применяю "счётчик", то они считает все нажатия, не разделяя на 2нажатия подряд, пять нажатия подряд.
Большое спасибо.

Пример из Овен Лоджика, часть макроса ONE_TOUCH2, управление 3 выходами 1,2,3 быстрыми нажатиями кнопки 88593
Пунктирные линии это задержка на 1 цикл.
Можно повторить на CFC, задержки не понадобятся (поставить перемычки), если правильно расставить поседовательность работы блоков (По ПКМ, Порядок_По потоку данных).

Сергей0308
25.03.2026, 23:17
Добрый день.
Подскажите подробно��, как в codesys2.3 на языке LD или CFC, написать код, который будет считать количество нажатия кнопки подряд.
К примеру нажатия 3раза посчитал, потом через 1-2 сек нажатия 5раз подряд эту же кнопку.
А плк считал эти нажатия и в зависимости от того, сколько раз гадали включал тот или иной выход.
Или записывал их в список. ???
Если я просто применяю "счётчик", то они считает все нажатия, не разделяя на 2нажатия подряд, пять нажатия подряд.
Большое спасибо.

Сформируйте сигнал паузы между нажатиями кнопок(по времени), по которому значение счётчика будет писаться в отдельную переменную или стек и сбрасываться значение счётчика, всё!

kondor3000
27.03.2026, 14:45
Накидал подсчёт кол-ва импульсов, по быстрому нажатию кнопки и сохранение их в переменные 88626
Запись 5 переменных на FBD со сдвигом,
или сохранение в массив 10 переменных на ST, новые записываются, старые удаляются, кол-во можно изменить, в среде ОЛ
Можно сохранять что угодно, от кол-ва нажатий, до времени возникновения, перенести в CDS 2.3 на ST не проблема.

Rs219
27.03.2026, 19:41
88635
Вот что получается.
Счётчик считает и через визуализацию выводит в таблицу, но только одно.
А, что бы сохранять предыдущие значения этой переменной в таблице по строкам, а не удалять, так возможно? Как это реализовать?
Большое спасибо

kondor3000
27.03.2026, 19:55
Вот что получается.
Счётчик считает и через визуализацию выводит в таблицу, но только одно.
А, что бы сохранять предыдущие значения этой переменной в таблице по строкам, а не удалять, так возможно? Как это реализовать?
Большое спасибо

Выше написал, что можно сохранять что угодно и сколько угодно раз, вот пример с массивами на CFC, сохраняет 5 раз до 5 нажатий в Массиве 1
и на ST массив на 10 переменных, до 10 нажатий Массив 2 (кол-во сохранений зависит от глобальной константы N=10, можно изменить). Массив обрабатывается в цикле FOR.
В эмуляции нажимайте в конфигурации In1 быстро и после паузы в массиве увидите сохранённые значения, а на выходах будут включаться 5 бит Out1- Out5 схема на CFC.
Пример на старом ПЛК110-60М.