Счетчики - широко применяемый инструмент. Используется в основном для построения таймеров, задержек, фильтров дискретных сигналов (антидребезг), подсчета событий (например можно подсчитывать нажатия кнопки). Есть два основных типа счетчиков: инкрементирующий и декрементирующий. Существует еще с двумя направлениями счета.
Инкрементирующий увеличивает свое значение на единицу.
Декрементирующий уменьшает свое значение на единицу.
Рассмотрим реализацию в smlogix.
Слева у блока входы, справа - выходы.
Нас интересует временная диаграмма (по ней смотрим, как зависит состояние выходов от значений входов)
У этого счетчика два выхода
DO - значение счетчика
QU - флаг "счет окончен" (когда DO достигает значения DI, выставляется 1 , счет останавливается)
Reset - сброс счетчика. При RESET = "1", выход DO и QU сбрасываются в ноль, счет не ведется.
"+" - если "1", то выход DO увеличивается на единицу. (не забываем про RESET,) Если "1" висит постоянно, то приращение происходит каждый тик работы программы. (Если надо, например, подсчитывать нажатия кнопок, то заводить на счетчик нужно через блок определения переднего фронта сигнала (об этом позже))
DI - уставка счетчика (величина, до которой ведется счет)
#Задержка включения (#delay on )
#Задержка выключения (#delay of )
PS. Не по теме.