1. Что разбираем
PLC не выполняет программу один раз. Он повторяет ее постоянно. Один проход программы называется циклом выполнения или scan cycle.
1. Прочитать входы
2. Выполнить программу 3. Обновить выходы 4. Повторить снова
Понимание цикла PLC важно для чтения FBD-схем, работы таймеров, триггеров и обработки коротких сигналов.
2. Упрощенная схема цикла
В начальном варианте цикл можно представить так:
[Входы] -> [Программа PLC] -> [Выходы] ^ |
| ____________________________ |
|---|
PLC постоянно возвращается к началу и снова проверяет состояние входов.
3. Шаг 1: чтение входов
В начале цикла PLC считывает состояние входных сигналов.
- нажата ли кнопка Start;
- нажата ли кнопка Stop;
- видит ли датчик деталь;
- закрыта ли дверь;
- активна ли авария;
- готов ли привод.
После чтения входов программа использует эти значения в логике текущего цикла.
4. Шаг 2: выполнение программы
После чтения входов PLC выполняет программу. В FBD это означает вычисление блоков и связей.
[Start_Button] ----+ +-- [AND] ---> [Motor_Run] [Safety_OK] -------+
Если Start_Button = TRUE и Safety_OK = TRUE, результат блока AND тоже будет TRUE. Этот результат используется для формирования выхода Motor_Run.
5. Шаг 3: запись выходов
После выполнения программы PLC обновляет выходы. Только после этого внешние устройства получают новое состояние команды.
| Сигнал | Роль | Пример |
|---|---|---|
| Motor_Run | выход | команда на запуск двигателя |
| Valve_Open | выход | команда открыть клапан |
| Alarm_Lamp | выход | включить аварийную лампу |
В учебном симуляторе это отображается как изменение состояния выходного блока.
6. Почему PLC повторяет цикл
Оборудование постоянно меняет состояние: оператор нажимает кнопки, датчики срабатывают, механизмы доходят до конечных положений. Поэтому PLC должен постоянно перечитывать входы и пересчитывать логику.
Если вход изменился, программа учтет это на одном из следующих циклов.
цикл 1: Start_Button = FALSE -> Motor_Run = FALSE цикл 2: Start_Button = TRUE -> Motor_Run = TRUE цикл 3: Start_Button = TRUE -> Motor_Run = TRUE
7. Пример: кнопка и лампа
Рассмотрим простую схему, где выход повторяет состояние входа.
[Button] ----------------> [Lamp]
| Цикл | Button | Lamp |
|---|---|---|
| 1 | FALSE | FALSE |
| 2 | TRUE | TRUE |
| 3 | TRUE | TRUE |
| 4 | FALSE | FALSE |
Когда вход изменяется, выход меняется после выполнения логики в очередном цикле.
8. Почему короткий импульс может быть важен
Кнопка может быть нажата на короткое время. Если программа должна реагировать только на момент нажатия, используют детектор фронта или триггер.
состояние кнопки: FALSE -> TRUE -> TRUE -> FALSE фронт нажатия: FALSE -> TRUE -> FALSE -> FALSE
Фронт - это не удержание сигнала, а момент перехода из FALSE в TRUE или наоборот.
9. Память между циклами
Некоторые блоки должны помнить состояние между циклами. Например, триггер может запомнить, что двигатель был запущен кнопкой Start.
Start нажали один раз -> триггер запомнил состояние -> Motor_Run остается TRUE
Без памяти выход часто будет активен только пока вход активен. С памятью программа может сохранять состояние после отпускания кнопки.
10. Таймеры и цикл PLC
Таймеры тоже работают через повторение циклов. На каждом цикле PLC проверяет, активен ли вход таймера и сколько времени прошло.
| Сигнал | Смысл |
|---|---|
| IN | вход запуска таймера |
| PT | заданное время |
| Q | выход таймера |
| ET | накопленное время |
Например, для TON выход Q становится TRUE не сразу, а после того, как вход IN остается TRUE заданное время.
11. Практика в симуляторе
Откройте простой пример в редакторе PLC Portal.
1. Запустите симуляцию.
2. Переключите вход Button в TRUE.
3. Посмотрите, как меняется выход Lamp.
4. Верните Button в FALSE.
5. Повторите опыт с блоком триггера или таймера, если он есть в примере.
6. Сравните поведение прямой связи и блока с памятью.
Цель упражнения - увидеть, что программа пересчитывает состояние выходов постоянно, а не один раз при запуске.
12. Краткий итог
PLC работает циклически.
чтение входов -> выполнение программы -> запись выходов -> повтор
Из-за этого важно понимать, когда сигнал просто удерживается, когда появляется короткий импульс и какие блоки сохраняют память между циклами.
Practice block
Open the related example in the editor, run the simulation, and repeat the exercise from the article. The JSON is also available as a direct download.