Инструкции TIA Portal

Управление программой
Поток и Выполнение

Освойте логический поток вашей программы. От условных переходов до инструментов диагностики в реальном времени — оптимизируйте структуру выполнения вашего контроллера.

Что такое операции управления программой в TIA Portal?

Операции управления программой позволяют изменять последовательный порядок выполнения нетворков. Они используются для пропуска частей кода (Переходы), создания сложных ветвлений (Переключатели) или управления внутренним поведением CPU (Стоп, Сторожевой таймер, Измерение времени).

Эти инструкции мощны, но должны использоваться с осторожностью, особенно инструкция WAIT, которая блокирует цикл, или переходы, которые могут затруднить отладку программы при их чрезмерном количестве. TIA Portal также предлагает современные инструменты для локального перехвата ошибок в каждом блоке.

Переходы и Потоки

Инструкции перенаправления программы

JMP / JMPN — Условные переходы

JMP

Что она делает

JMP прерывает последовательное выполнение и переходит к метке (LABEL), если RLO равен 1. JMPN делает то же самое, если RLO равен 0.

Когда использовать

Пропуск участка кода, который не должен выполняться в определенном режиме, или создание простых циклов в LAD/FBD.

Советы профи

Цель перехода (LABEL) должна находиться в том же блоке (FC или FB).

Не используйте переходы назад для создания циклов без условия выхода, так как вы рискуете превысить время цикла.

В SCL используйте структуры IF...THEN или CASE...OF.

SWITCH — Многовариантный переключатель

SWITCH

Что она делает

Сравнивает входное значение с несколькими целевыми значениями и переходит к нетворку, соответствующему первому подтвержденному случаю. Графический эквивалент Switch/Case.

Когда использовать

Управление состояниями машины (простой Графсет), выбор режимов работы или маршрутизация деталей по коду типа.

Советы профи

Чище и читабельнее, чем серия последовательно соединенных компараторов ==.

Используйте вход 'ELSE' для обработки случаев, когда ни одно значение не совпало.

Идеально подходит для структур меню на HMI.

RET — Возврат

RET

Что она делает

Принудительно завершает выполнение текущего блока (FC/FB) и возвращает управление в вызывающий блок.

Когда использовать

Досрочное завершение функции при обнаружении ошибки в начале блока или невыполнении условия безопасности.

Советы профи

Полезно для оптимизации времени цикла за счет отказа от обработки остальной части кода без необходимости.

Будьте бдительны: еще не обработанные выходы блока сохранят свое последнее состояние.

В SCL используйте инструкцию RETURN;

Управление Runtime

Управление циклом CPU и измерение производительности

RUNTIME — Измерение времени

RUNTIME

Что она делает

Измеряет время выполнения участка программы или всего блока в микросекундах (мкс).

Когда использовать

Оптимизация кода, диагностика тяжелых нетворков или расчет производительности машины.

Советы профи

Вызовите RUNTIME первый раз для инициализации измерения, а второй раз — для получения результата.

Используйте тип данных LReal для хранения результата измерения.

Удобно для проверки того, не приближается ли сложный цикл FOR к пределам сторожевого таймера.

WAIT — Фиксированная задержка

WAIT

Что она делает

Приостанавливает выполнение программы на заданное время в микросекундах. ВНИМАНИЕ: в отличие от таймера, WAIT полностью блокирует цикл CPU.

Когда использовать

Ожидание в течение нескольких микросекунд для стабилизации электронного сигнала на сверхбыстрой плате ввода-вывода.

Советы профи

Использовать крайне умеренно. Слишком длинный WAIT вызовет ошибку Watchdog и остановит ПЛК.

Никогда не используйте для технологических задержек (секунды/минуты); для этого используйте таймеры TON.

Доступно только на S7-1500.

STP — Остановка CPU

STP

Что она делает

Принудительно переводит CPU в режим STOP.

Когда использовать

Состояние фатальной ошибки, при котором машиной больше нельзя управлять, или диагностический тест.

Советы профи

Остановка происходит немедленно. Для перезапуска потребуется ручное вмешательство (HMI или переключатель).

По возможности отдавайте предпочтение обработке аварий с безопасным переходом в резервный режим, а не резкой остановке CPU.

Полезно в проектах пусконаладки для постановки 'брейкпоинта' в определенном месте.

Обработка ошибок

Локальный перехват сбоев выполнения

GET_ERROR / GET_ERR_ID

Что они делают

Получают информацию о первой ошибке, возникшей внутри блока (например, доступ к несуществующему индексу массива).

Когда использовать

Повышение надежности ваших блоков за счет перехвата ошибок программирования без остановки ПЛК.

Советы профи

GET_ERROR предоставляет подробную структуру, GET_ERR_ID возвращает только номер ошибки.

Размещайте эти инструкции в конце ваших критически важных блоков.

Позволяет создать пользовательский журнал ошибок.

Переходы против структур управления

Какой метод использовать для перенаправления программы?

Вам нужно...Рекомендуемая инструкцияПочему?
Простой переход в LadderJMPПропустить нетворк
Сложный множественный выборSWITCH / CASEЧитабельнее, чем 10 JMP
Измерить внутреннюю длительностьRUNTIMEОптимизация производительности
Немедленная остановкаSTPКритическая аппаратная ошибка
Очень короткое ожиданиеWAITЭлектронная стабилизация
Локальная диагностикаGET_ERRORИзбежать STOP контроллера

Часто задаваемые вопросы

В чем разница между JMP и JMP_LIST?

JMP — это одиночный переход к цели. JMP_LIST позволяет определить список целей. В зависимости от числового индекса программа переходит к 1-й, 2-й или N-й метке из списка.

Опасна ли инструкция WAIT?

Да, при неправильном использовании. Она приостанавливает выполнение ВСЕЙ пользовательской программы. Если сумма ваших WAIT и вашего кода превысит время сторожевого таймера (часто 150 мс), CPU перейдет в STOP.

Как измерить общее время цикла ПЛК?

Для этого вам не нужна инструкция RUNTIME. Вы можете прочитать информацию непосредственно в свойствах CPU онлайн или использовать системные переменные OB1.

Где размещать метки LABEL?

Метки LABEL можно размещать в начале любого нетворка. В LAD они отображаются над левой шиной. Имя метки должно быть уникальным внутри блока.

Автоматизируйте ваши структуры управления

Опишите вашу логику переходов и потребности в диагностике, T-IA Connect сгенерирует оптимизированные нетворки JMP и SWITCH для вашего приложения.