Перейти к содержимому

Таймеры, счётчики и типовые блоки ПЛК

Зачем

Таймеры (TON, TOF, TP) и счётчики в ПЛК: чем отличаются и как применять. Готовые блоки МЭК 61131-3 для задержек, выбега и счёта на конвейере.

Предложить правку

Готовые кирпичи вместо изобретения велосипеда

МЭК 61131-3 даёт стандартную библиотеку функциональных блоков — их поддерживают все среды. Это «детальки», которые ты вставляешь и настраиваешь. Самые ходовые — таймеры и счётчики.

Три таймера

Блок Что делает Аналогия
TON задержка включения: выход станет TRUE через заданное время после появления входа «подумай N секунд, потом включи»
TOF задержка выключения: выход остаётся TRUE ещё N секунд после пропадания входа «выключайся не сразу, а погодя»
TP импульс фиксированной длины при появлении входа «дай ровно N секунд импульс»

У таймера два главных параметра: вход IN (запуск) и PT (preset time — заданное время), а на выходе Q (сработал) и ET (elapsed time — сколько прошло).

Разобранный пример

TOF на выбеге насоса. Насос охлаждает двигатель, и после команды «стоп» его надо покрутить ещё 30 секунд, чтобы снять остаточное тепло. Заводим команду «насос» через TOF с PT := T#30S: пока команда есть — насос крутится; убрали команду — TOF держит выход ещё 30 секунд, потом гасит. Без таймера насос встал бы мгновенно. Это классический приём.

Счётчики

Блок Вход счёта Сброс/загрузка Что делает
CTU CU (фронт) R (reset) счётчик вверх: +1 на каждый фронт CU, Q = TRUE при достижении заданного PV
CTD CD (фронт) LD (load) счётчик вниз: −1 на каждый фронт, считает от загруженного значения к нулю

Счётчиками считают детали на конвейере, циклы оборудования, срабатывания — что угодно дискретное. Как и у таймера, у счётчика есть текущее значение — CV (current value) — которое можно вывести на мнемосхему или прочитать в программе.

Разобранный пример

CTU считает коробки на конвейере. Фотодатчик на выходе линии упаковки даёт короткий импульс на каждую прошедшую коробку — заводим этот импульс на вход CU счётчика CTU с PV := 100. Каждая коробка — фронт — счётчик +1. Дошли до 100 — Q становится TRUE, программа подаёт сигнал «паллета готова» и вызывает сброс через вход R, обнуляя CV для следующей партии.

Опасно

Механическая кнопка или концевик при срабатывании физически дребезжит — контакт несколько раз замыкается и размыкается за доли секунды, прежде чем встать окончательно. Заведённый напрямую на CU счётчика, дребезг даёт вместо одного фронта несколько — счётчик насчитает лишние коробки или циклы, и расхождение с реальностью вскроется не сразу, а через смену. Для точного счёта используй бездребезговые датчики (фотодатчик, индуктивный датчик) там, где это возможно, либо программный фильтр (антидребезг: засчитывать фронт не чаще, чем раз в N миллисекунд). Механическую кнопку для счёта товарных единиц на конвейере не ставь.

Важно

Таймеры и счётчики — это блоки с памятью (экземпляры): каждый таймер в программе нужно объявить отдельной переменной-экземпляром. Два места в коде не могут пользоваться одним таймером — они «затрут» друг другу время. Правило: один физический отсчёт = один экземпляр таймера или счётчика.

Проверь себя

  1. Чем TON отличается от TOF?
  2. Каким таймером сделать «выбег» насоса 30 секунд после стопа?
  3. Что хранят выходы Q и ET у таймера?
  4. Почему нельзя напрямую заводить механическую кнопку на вход счёта CTU, если важна точность подсчёта?

Предложить правку

Углубить понимание

Обязательные

Рекомендуемые

Войдите, чтобы предложить качественный источник

Практическое задание

Спроектируй (на бумаге или в симуляторе) логику с таймерами для автоматических ворот склада:

  1. по сигналу датчика машины ворота открываются;
  2. после того как машина проехала (датчик пропал), ворота ждут 5 секунд и закрываются — каким таймером это сделать?
  3. мигающая лампа во время движения ворот: сделай мигание периодом 1 секунда из двух таймеров TON (подсказка: один запускает другой, второй сбрасывает первый — получится генератор импульсов).

Нарисуй временну́ю диаграмму: сигнал датчика → команда «закрыть» → работа лампы. Укажи PT каждого таймера.

Предложить правку

Поддержи проект!

IndustrialProfi пока разрабатывается на энтузиазме силами одного человека. Помоги создать лучшую открытую энциклопедию для востребованных и полезных профессий. Спасибо за участие!