Скидка на подшипники из наличия!
Новое поступление товара в 2026 году!
Цикл сканирования ПЛК — это повторяющаяся последовательность операций, которую программируемый логический контроллер выполняет в рабочем режиме: чтение входов, выполнение прикладной программы и запись выходов. Абсолютное большинство контроллеров работают именно по методу периодического опроса (сканирования): ПЛК опрашивает входы, отрабатывает пользовательскую программу и устанавливает нужные значения на выходах, после чего цикл повторяется. Понимание того, как работает цикл сканирования, необходимо для корректной обработки сигналов, оценки времени реакции и настройки защиты по сторожевому таймеру.
Ниже разобраны фазы рабочего цикла, роль образа процесса, из чего складывается время цикла, зачем нужен watchdog и как всё это влияет на быстродействие системы управления.
В рабочем режиме (RUN) контроллер не обрабатывает сигналы «на лету» непрерывно, а действует тактами. Один такой такт — рабочий цикл (цикл сканирования, scan): контроллер считывает состояние входов, один раз проходит прикладную программу и обновляет выходы. Завершив цикл, ПЛК немедленно начинает следующий. В режиме STOP программа не исполняется, а выходы переводятся в заданное безопасное состояние.
Ключевая особенность: программа работает не с физическими клеммами напрямую, а с их копией в памяти — образом процесса.
Перед выполнением программы состояние всех физических входов копируется во внутреннюю область памяти — образ процесса на входах. Всю итерацию программа читает именно эту копию, поэтому в пределах одного цикла значение входа стабильно и не «дрожит». Результаты программа пишет в образ процесса на выходах, и уже он в конце цикла переносится на физические выходы. Такой подход обеспечивает целостность данных: логика оперирует согласованным «снимком» входов, снятым в начале цикла.
Прямое следствие модели образа процесса: изменение входа, произошедшее после его чтения, контроллер «увидит» только в следующем цикле. Это нормальное поведение сканирующего ПЛК, и его нужно учитывать при работе с быстрыми сигналами.
Базовое ядро цикла — три фазы: чтение входов, выполнение программы, запись выходов. К ним добавляются служебные операции (самодиагностика, сброс сторожевого таймера) и обслуживание связи. Порядок и состав служебных фаз зависят от системного ПО конкретного контроллера, но ядро «входы → программа → выходы» неизменно.
Контроллер копирует текущее состояние дискретных и аналоговых входов в образ процесса. Далее программа обращается только к этой копии. Поэтому кратковременный сигнал будет воспринят, лишь если он присутствовал на входе в момент фазы чтения.
Прикладная программа исполняется по порядку, от начала к концу, один раз за цикл. В моделях языков по стандарту программа может состоять из функций и функциональных блоков, выполняемых под управлением задач. Все обращения к входам и выходам внутри прохода идут через образ процесса, а не к физическим каналам.
По завершении прохода программы значения из образа выходов разом переносятся на физические выходные модули. Пока цикл не дошёл до этой фазы, изменения в образе выходов на клеммах не появляются.
Время цикла (время сканирования) — длительность одного полного рабочего цикла. Оно складывается из времени всех фаз: чтения входов, выполнения программы, записи выходов и служебных операций. Основной вклад обычно вносит фаза выполнения программы.
Время цикла у промышленных ПЛК обычно измеряется миллисекундами, но конкретная величина зависит от перечисленных факторов и указывается в документации на контроллер и его конфигурацию. Поскольку путь исполнения от прохода к проходу может меняться (разные ветвления, обработка связи), время цикла не строго постоянно — его колебание называют джиттером. Для задач, чувствительных к равномерности, применяют циклические задачи с заданным периодом.
Правило контроля сигналов: длительность входного сигнала должна превышать время цикла. Импульс короче цикла может прийтись на промежуток между фазами чтения и остаться незамеченным программой.
Сторожевой таймер (watchdog) контролирует, что рабочий цикл укладывается в отведённое максимальное время. В штатной работе контроллер регулярно сбрасывает таймер в начале каждого цикла. Если из-за зацикливания, чрезмерно длинной обработки или аппаратного сбоя цикл не завершается вовремя и сброс не происходит, сторожевой таймер срабатывает.
По срабатыванию watchdog контроллер фиксирует ошибку и переходит в безопасное состояние: как правило, останавливает выполнение программы и переводит выходы в заданное безопасное значение. Это защищает управляемое оборудование от «зависшего» контроллера, у которого выходы застыли бы в произвольном положении.
Порог срабатывания сторожевого таймера задаётся в конфигурации контроллера и должен быть больше нормального времени цикла с запасом, иначе возможны ложные остановки на легитимных пиках нагрузки.
Сканирующая модель делает поведение ПЛК предсказуемым, но задаёт и предел реакции. Между появлением сигнала на входе и изменением выхода проходит время, зависящее от того, на какую фазу пришёлся сигнал. Худший случай — сигнал появился сразу после фазы чтения: он ждёт следующего цикла и лишь затем отрабатывается до фазы записи выходов. Поэтому время реакции самого контроллера не превышает удвоенного времени цикла. К нему добавляются собственные задержки датчиков и исполнительных механизмов, которые нужно учитывать при оценке общего времени реакции системы.
Когда штатного времени цикла недостаточно для быстрых событий, применяют механизмы, работающие в обход обычной последовательности сканирования:
Эти средства снимают ограничения там, где они критичны, но усложняют логику, поэтому применяются точечно — для действительно быстрых сигналов, а не для всей программы.
Контроллер повторяет один и тот же такт: считывает входы в память, один раз проходит программу, обновляет выходы, затем начинает цикл заново. Программа при этом работает с копией входов и выходов (образом процесса), а не с клеммами напрямую.
Это копия состояния входов и выходов в памяти контроллера. Входы копируются в образ в начале цикла, программа работает с этой копией, а образ выходов переносится на клеммы в конце. Так обеспечивается целостность данных: в пределах цикла значения не меняются, и логика оперирует согласованным снимком.
От объёма прикладной программы, числа каналов ввода-вывода, производительности процессора, а также нагрузки на коммуникации. Основной вклад обычно даёт выполнение программы. Точные значения приводятся в документации на конкретный контроллер.
Входы читаются один раз за цикл. Если импульс короче времени цикла, он может прийтись на промежуток между фазами чтения и не попасть в образ входов. Чтобы гарантированно поймать такой сигнал, используют аппаратные прерывания, прямой доступ к входу или скоростные счётчики.
Сторожевой таймер следит, что цикл завершается за отведённое время. Если контроллер «завис» и вовремя не сбросил таймер, watchdog срабатывает и переводит ПЛК в безопасное состояние с остановкой программы и переводом выходов в заданное значение. Это защищает оборудование от последствий отказа контроллера.
В режиме RUN контроллер циклически исполняет прикладную программу и обновляет выходы. В режиме STOP программа не выполняется, а выходы переводятся в заданное безопасное состояние; этот режим используется при загрузке, отладке и при обнаружении критических ошибок.
Вы можете задать любой вопрос на тему нашей продукции или работы нашего сайта.