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

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

Зачем

Таймеры (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 пока разрабатывается на энтузиазме силами одного человека. Помоги создать лучшую открытую энциклопедию для востребованных и полезных профессий. Спасибо за участие!