Языки программирования ПЛК по стандарту IEC 61131-3
IEC 61131-3 — международный стандарт, определяющий пять языков программирования для ПЛК. Три графических: Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC). Два текстовых: Structured Text (ST) и Instruction List (IL). Каждый имеет свою область применения, и выбор зависит от задачи, опыта инженера и конкретного контроллера.
На практике 70% программ пишут на LD — это релейная логика, понятная электрикам. Ещё 20% — на ST, когда нужны математические вычисления или обработка данных. Остальное — FBD и SFC для специфических задач. IL практически вымер — его заменил ST.
Ladder Diagram (LD): релейная логика
LD выглядит как электрическая схема: контакты слева, катушки справа, логика посередине. Инженер, который читает электросхемы, прочтёт и Ladder без объяснений — вот почему этот язык доминирует.
- Сильные стороны: интуитивен для электриков, легко читать и диагностировать на объекте
- Слабые стороны: громоздкий для сложных вычислений, трудно работать с массивами и структурами
- Где использовать: дискретное управление, простые блокировки, пусковые последовательности
Пример: управление насосом с блокировками (сухой ход, перегрузка, ручной/автоматический режим) — 20-30 строк LD. То же самое на ST — 10-15 строк, но понять их сможет не каждый обслуживающий инженер на объекте.
LD поддерживают все ПЛК: Delta DVP, Mitsubishi FX5U, Siemens S7-1200 — без исключений.
Structured Text (ST / SCL): текстовый язык
ST напоминает Pascal или C. Переменные, циклы FOR/WHILE, условия IF/THEN/ELSE, массивы, структуры. Для инженеров с опытом программирования — самый удобный язык.
- Сильные стороны: компактный код, удобная работа с математикой, массивами, строками
- Слабые стороны: сложнее диагностировать онлайн (нет визуальных «горящих» контактов)
- Где использовать: ПИД-регулирование, рецептурное управление, обработка аналоговых сигналов, протоколы связи
В Siemens TIA Portal ST называется SCL (Structured Control Language). Функционально — то же самое, просто другое название. Mitsubishi GX Works3 поддерживает стандартный ST.
Function Block Diagram (FBD): блочная логика
FBD — графический язык, где логика строится из блоков: AND, OR, таймеры, счётчики, ПИД-регуляторы. Входы слева, выходы справа, блоки соединяются линиями.
- Сильные стороны: наглядна для сложных функциональных зависимостей, удобна для аналоговой обработки
- Слабые стороны: занимает много места на экране, неудобна для последовательной логики
- Где использовать: регулирование, обработка сигналов, сложные математические функции
FBD часто используют в сочетании с LD: основная логика — на Ladder, а сложные вычислительные блоки — на FBD. Большинство сред позволяют миксовать языки в одном проекте.
Sequential Function Chart (SFC): последовательности
SFC описывает процесс как последовательность шагов и переходов. Шаг — набор действий, переход — условие перехода к следующему шагу. Идеально подходит для batch-процессов, рецептурного управления, пусковых последовательностей.
- Шаг 1: заполнить резервуар (открыть клапан, контролировать уровень)
- Переход: уровень достиг 80%
- Шаг 2: нагреть (включить нагреватель, контролировать температуру)
- Переход: температура достигла 60°C
- Шаг 3: перемешать (включить мешалку на 15 мин)
SFC поддерживают Mitsubishi GX Works3 (как Graph) и Siemens TIA Portal (как S7-Graph). Delta ISPSoft имеет ограниченную поддержку SFC.
Instruction List (IL): архаизм
IL — ассемблер для ПЛК. Мнемонические коды (LD, AND, OUT, MOV) выполняются последовательно. Был популярен в 1990-х, когда память контроллеров измерялась в килобайтах. Сейчас практически не используется, так как ST делает то же самое, но понятнее.
Какой язык выбрать: сравнительная таблица
| Язык | Тип | Сложность | Лучше всего для | Поддержка |
|---|---|---|---|---|
| LD | Графический | Низкая | Дискретная логика | Все ПЛК |
| FBD | Графический | Низкая | Аналоговая обработка | Все ПЛК |
| ST/SCL | Текстовый | Средняя | Математика, массивы, рецепты | Большинство ПЛК |
| SFC | Графический | Средняя | Последовательности, batch | Siemens, Mitsubishi |
| IL | Текстовый | Высокая | Устарел | Ограничена |
Рекомендация: начните с LD для простых задач, переходите на ST для сложных вычислений.
Часто задаваемые вопросы
Какой язык учить первым?
Ladder Diagram. Он самый распространённый, поддерживается всеми контроллерами и понятен людям с электротехническим образованием.
Можно ли миксовать языки в одном проекте?
Да. Большинство современных сред (TIA Portal, GX Works3, ISPSoft) позволяют создавать разные блоки программы на разных языках.
Чем SCL отличается от ST?
По сути — ничем. SCL — это название Siemens для языка Structured Text. Синтаксис немного отличается, но логика идентична.
Нужно ли знать все пять языков?
Нет. Для 90% задач достаточно LD + ST. FBD полезен для аналоговых сигналов. SFC — только для batch-процессов. IL не нужен для новых проектов.
Где научиться программировать ПЛК?
Бесплатно: TIA Portal Basic с встроенным симулятором PLCSIM. Курсы: Siemens SCE — есть партнёрские центры в Украине.
Итог
IEC 61131-3 даёт пять языков, но на практике хватает двух: LD для дискретной логики и ST для вычислений. Выбирайте язык под задачу, а не под моду.
Контроллеры с поддержкой всех языков IEC: Siemens S7-1200, Mitsubishi FX5U. Бюджетный вариант с LD/FBD/ST: Delta DVP.