Read the book: «АСУТП с нуля практическое руководство»

Font::

© Ленар Ильдарович Садыков, 2026

ISBN 978-5-0071-4264-9

Создано в интеллектуальной издательской системе Ridero

АСУТП с нуля
практическое руководство инженера

50 практических задач по программированию ПЛК

Предисловие

Эта книга — не теоретический курс, а сборник практических задач для тех, кто хочет научиться программировать промышленные логические контроллеры (ПЛК) через реальную практику.

Каждая задача построена по одной и той же схеме:

— Условие — что должна делать система.

— Входы/выходы — таблица сигналов.

— Решение — программа на языке Ladder Diagram (релейно-контактная логика, LD), как наиболее универсальном и наглядном языке стандарта IEC 61131—3. Для части задач дополнительно приведён вариант на Structured Text (ST).

— Пояснение — разбор логики и типичных ошибок.

Задачи не привязаны к одному бренду. Логика, представленная здесь, переносится на любую платформу — Siemens (TIA Portal / STEP 7, язык LAD), Allen-Bradley (Studio 5000 / RSLogix, язык Ladder), российские контроллеры ОВЕН (программируются в среде CODESYS или ISaGRAF, в зависимости от серии) и любые другие среды, поддерживающие IEC 61131—3. Там, где есть значимые отличия в реализации между платформами, дана отдельная врезка «Особенности платформ».

Книга разделена на три части по нарастанию сложности:

— Часть I. Основы (задачи 1—15) — базовые элементы: контакты, катушки, таймеры, счётчики, фиксация состояния.

— Часть II. Типовые промышленные алгоритмы (задачи 16—35) — конвейеры, насосные станции, сигнализация, взаимные блокировки, ПИД-регулирование на уровне логики.

— Часть III. Комплексные задачи (задачи 36—50) — многошаговые последовательности (Sequential Function Chart), аварийные сценарии, диагностика, интеграция нескольких подсистем.

Как пользоваться книгой

Рекомендуется решать задачи по порядку, даже если какие-то темы кажутся знакомыми: каждая следующая задача использует приёмы из предыдущих. Перед тем как смотреть решение, попробуйте написать программу самостоятельно по условию и таблице сигналов — это даёт основной обучающий эффект.

Для проверки решений на реальном или виртуальном ПЛК подойдут:

— Siemens: TIA Portal (есть версия PLCSIM для симуляции без железа);

— Allen-Bradley: Studio 5000 + эмулятор RSLogix Emulate;

— Универсально: CODESYS с виртуальным контроллером CODESYS Control Win.

Глава 0. Минимум теории перед стартом

ПЛК (программируемый логический контроллер) — промышленный компьютер, циклически выполняющий программу: читает входы → выполняет логику → обновляет выходы. Этот цикл называется сканированием (scan cycle).

Языки программирования по IEC 61131—3:

— LD (Ladder Diagram) — релейная логика, графический язык, похожий на электрическую схему с «контактами» и «катушками». Самый распространён на практике.

— ST (Structured Text) — текстовый язык, похожий на Pascal, удобен для сложных вычислений.

— FBD (Function Block Diagram) — блоки функций, соединённые линиями.

— SFC (Sequential Function Chart) — язык шагов и переходов для последовательных процессов.

Базовые элементы Ladder Diagram:

— — | | — нормально разомкнутый контакт (NO) — пропускает «ток», если сигнал = 1 (TRUE).

— — |/| — нормально замкнутый контакт (NC) — пропускает «ток», если сигнал = 0 (FALSE).

— — () — катушка — устанавливает выход в 1, пока по цепи «течёт ток».

— — (S) — / — (R) — катушки Set/Reset — фиксируют выход в 1 или 0 без удержания условия.

— Таймеры TON (задержка на включение), TOF (задержка на выключение), TP (импульс).

— Счётчики CTU (вверх), CTD (вниз), CTUD (реверсивный).

Этого достаточно, чтобы приступить к задачам.

Часть I. Основы (задачи 1—15)

Задача 1. Управление лампой одной кнопкой (без фиксации)

Условие. Лампа горит, пока нажата кнопка. Отпустили кнопку — лампа гаснет.

Входы/выходы:


Решение (LD):

SB1 HL1

— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — — ()

Пояснение. Простейшая цепь: катушка HL1 активна, пока замкнут контакт SB1. Это базовый принцип — «выход = функция входов в данный момент сканирования», без памяти.


Задача 2. Фиксация состояния (самоподхват / Seal-in)

Условие. Кнопка SB1 запускает двигатель, кнопка SB2 останавливает. После нажатия SB1 двигатель должен продолжать работать после отпускания кнопки.

Входы/выходы:



Решение (LD):

SB1 SB2 KM1

— | | — ——|/| — —— — —— — —— — —— — —— — —— — —— — —— — —— ()

| |

KM1 |

— | | — —— — —— — ——┘

Пояснение. Это классическая схема «самоподхвата»: параллельно контакту SB1 стоит контакт самого выхода KM1. Как только KM1 включился, он сам себя удерживает, пока не сработает SB2 (нормально замкнутый в логике — то есть NC-условие «SB2 не нажата»). Обратите внимание: физическая кнопка SB2 обычно NO-типа, а инверсия делается в программе.

Особенности платформ. В Siemens и Allen-Bradley синтаксис контактов идентичен показанному. В ST этот же алгоритм записывается так:

KM1:= (SB1 OR KM1) AND NOT SB2;


Задача 3. Реверс кнопки: Set/Reset вместо самоподхвата

Условие. То же самое, что и в задаче 2, но реализовать через инструкции Set/Reset.

Решение (LD):

 
SB1 KM1
— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — — (S)
 
 
SB2 KM1
— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — — (R)
 

Пояснение. Set (S) устанавливает KM1 в 1 и держит его так независимо от состояния SB1. Reset (R) сбрасывает в 0. Важное правило: если в одном скане активны и Set, и Reset, приоритет имеет тот блок, который расположен в программе ниже (выполняется последним) — в данном случае Reset. Это нужно всегда проверять в документации конкретной платформы, так как порядок приоритета иногда настраивается.


Задача 4. Задержка включения лампы (таймер TON)

Условие. После нажатия кнопки лампа должна загореться через 5 секунд и гореть, пока кнопка удерживается.

Входы/выходы:



Решение (LD):

SB1 T1 (TON, PT=5s)

— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — — ()


T1.Q HL1

— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — — ()

Пояснение. Таймер TON начинает отсчёт, пока вход IN=1 (в нашем случае — пока нажата SB1). Через заданное время PT выход Q таймера становится 1. Если SB1 отпустить раньше 5 секунд, таймер сбрасывается.


Задача 5. Задержка выключения лампы (таймер TOF)

Условие. Лампа в коридоре должна загораться сразу при срабатывании датчика движения и гаснуть через 30 секунд после того, как движение прекратилось.

Входы/выходы:



Решение (LD):

SQ1 T1 (TOF, PT=30s)

— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — — ()


T1.Q HL1

— | | — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — —— — — ()

Пояснение. TOF работает наоборот: выход Q становится 1 сразу, как только IN=1, но при переходе IN обратно в 0 выход остаётся включённым ещё в течение времени PT, а затем гаснет.


Задача 6. Мигающая лампа (генератор импульсов на двух таймерах)

Условие. Реализовать лампу-мигалку: 1 секунда горит, 1 секунда не горит, пока включен общий тумблер SA1.

Решение (LD, вариант «перекрёстные таймеры»):

SA1 T2.Q T1 (TON, PT=1s)

— | | — ——|/| — —— — —— — —— — —— — —— — —— — —— — ()

The free sample has ended.

Genres and tags

Age restriction:
12+
Release date on Litres:
08 October 2026
Volume:
27 p.
ISBN:
9785007142649
Download format:

Similar books