Производство по чертежам Подбор аналогов Цены производителя Оригинальная продукция в короткие сроки
INNERпроизводство и поставка промышленных комплектующих и оборудования
Отзыв ★★★★★ Будем благодарны за отзыв в Яндексе — это помогает нам развиваться Оставить отзыв →
Правовая информация Условия использования технических материалов и калькуляторов Правовая информация →
INNER
Контакты

Языки МЭК 61131-3 для ПЛК — сравнение Ladder, FBD, ST, SFC

  • 24.04.2026
  • Познавательное

Стандарт МЭК 61131-3 (IEC 61131-3) определяет языки программирования программируемых логических контроллеров (ПЛК), обеспечивая унификацию и переносимость программного обеспечения между контроллерами различных производителей. Понимание сильных и слабых сторон каждого языка позволяет инженеру-автоматчику выбрать оптимальный инструмент для конкретной задачи, будь то дискретная логика, непрерывное регулирование, последовательное управление или сложные вычисления.

1. Стандарт МЭК 61131-3: история и структура

Стандарт IEC 61131-3 впервые опубликован в 1993 году Международной электротехнической комиссией (МЭК/IEC). Его задача — унифицировать архитектуру программного обеспечения и языки программирования ПЛК, которые до того момента существенно различались у разных производителей.

РедакцияГодКлючевые изменения
1-я1993Определены 5 языков: LD, FBD, ST, IL, SFC. Базовые типы данных и программные организационные единицы (POU)
2-я2003Уточнения синтаксиса, расширение типов данных, улучшение описания SFC
3-я2013Объектно-ориентированное программирование (ООП): классы, методы, интерфейсы, наследование. IL объявлен устаревшим (deprecated)
4-я2025IL полностью исключён. Остаются: ST (текстовый), LD, FBD (графические), SFC (организующая структура). Пространства имён (namespaces). Расширения для OPC UA

В России действует ГОСТ Р МЭК 61131-3-2016, идентичный 3-й редакции международного стандарта (2013). Четвёртая редакция (2025) на момент подготовки материала в национальный ГОСТ ещё не переведена.

Стандарт определяет не только языки, но и общие программные элементы: типы данных (BOOL, INT, REAL, TIME, STRING и др.), переменные, функции (FUNCTION), функциональные блоки (FUNCTION_BLOCK) и программы (PROGRAM) — так называемые программные организационные единицы (POU). Эти элементы могут использоваться во всех языках стандарта.

↑ К содержанию

2. Сводная таблица сравнения языков

Характеристика LD FBD ST SFC IL
Тип Графический Графический Текстовый Графический + текстовый Текстовый
Статус в IEC 61131-3:2025 Действующий Действующий Действующий Действующий Исключён
Парадигма Релейная схема Поток данных Процедурный / ООП Автомат состояний Ассемблер
Основная область Дискретная логика, блокировки Непрерывное регулирование, аналоговая обработка Математика, алгоритмы, обработка данных Последовательное управление, рецепты Низкоуровневая оптимизация (legacy)
Читаемость для электрика Высокая Средняя Низкая Высокая (схема состояний) Очень низкая
Читаемость для программиста Средняя Средняя Высокая Высокая Средняя
Поддержка ООП (IEC 61131-3 Ed.3+) Нет Частично (FB) Полная Частично Нет
Сложные вычисления Затруднены Средне Оптимально Через вложенные языки Затруднены
↑ К содержанию

3. Ladder Diagram (LD) — язык релейных диаграмм

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

Преимущества LD

Интуитивно понятен электротехническому персоналу. Наглядное визуальное отображение состояния каждого контакта при отладке в режиме онлайн. Идеален для булевой логики, блокировок, пусков/остановок двигателей, управления дискретными входами/выходами. Легко диагностируется обслуживающим персоналом на производстве.

Ограничения LD

Не подходит для сложных математических вычислений, обработки массивов данных, работы со строками. Программы с большим объёмом аналоговой обработки становятся громоздкими и трудночитаемыми. При реализации последовательных алгоритмов (рецептов, циклограмм) код на LD быстро усложняется.

Пример на LD (описательно): Пуск двигателя M1 при нажатии кнопки «Пуск» (Start), наличии разрешения (Enable) и отсутствии аварии (NOT Fault). Самоподхват через контакт M1:

|--[Start]--+--[Enable]--[/Fault]--(M1)--|
|--[M1]----+                                  |
↑ К содержанию

4. Function Block Diagram (FBD) — язык функциональных блоков

Function Block Diagram (FBD, язык функциональных блоковых диаграмм) — графический язык, представляющий программу в виде сети взаимосвязанных функциональных блоков, через которые проходят потоки данных (сигналов). Каждый блок выполняет определённую операцию: от элементарных логических (AND, OR, NOT) до сложных алгоритмических (ПИД-регулятор, таймер, счётчик, масштабирование аналогового сигнала).

Преимущества FBD

Наглядное представление потока данных от входов к выходам. Отлично подходит для непрерывного регулирования (ПИД-контуры, аналоговая обработка сигналов). Модульность: функциональные блоки легко переиспользовать в различных проектах. Понятен инженерам по автоматизации, знакомым со схемами функциональной автоматизации (P&ID).

Ограничения FBD

Менее удобен для чисто булевой логики по сравнению с LD. При большом количестве блоков схема может стать запутанной. Реализация сложных условных ветвлений и циклов требует дополнительных блоков-переключателей.

↑ К содержанию

5. Structured Text (ST) — структурированный текст

Structured Text (ST) — текстовый язык высокого уровня, синтаксически близкий к Pascal/Ada. Поддерживает все конструкции структурного программирования: условные операторы (IF...THEN...ELSE, CASE), циклы (FOR, WHILE, REPEAT), вызовы функций и функциональных блоков. Начиная с 3-й редакции стандарта (2013), ST поддерживает объектно-ориентированное программирование: классы, методы, интерфейсы, наследование.

Преимущества ST

Оптимален для сложных математических вычислений, обработки массивов, строк, реализации алгоритмов рецептурного управления (ISA-88), коммуникационных протоколов. Компактный код. Легко переносим между платформами. Привычен разработчикам с опытом в языках высокого уровня (C, Pascal). С 3-й редакции — полноценная поддержка ООП, что делает ST основным языком для масштабных и модульных проектов.

Ограничения ST

Менее понятен обслуживающему персоналу без программистского опыта. Отладка в реальном времени менее наглядна, чем в графических языках (нет визуальной индикации состояния контактов). Для простой дискретной логики — избыточен.

Пример на ST — ПИД-регулирование температуры:
VAR
    PV     : REAL;   (* Текущая температура *)
    SP     : REAL := 150.0; (* Уставка *)
    Output : REAL;   (* Выход регулятора 0-100% *)
    PID_FB : PID;    (* Экземпляр ФБ ПИД *)
END_VAR

PID_FB(
    SetPoint := SP,
    ProcessVar := PV,
    Kp := 2.5,
    Ti := T#30s,
    Td := T#5s,
    ManualMode := FALSE
);
Output := PID_FB.Out;
↑ К содержанию

6. Sequential Function Chart (SFC) — последовательные функциональные схемы

Sequential Function Chart (SFC) — графический язык (точнее, организующая структура), предназначенный для описания последовательного и параллельного выполнения управляющих действий. SFC представляет программу в виде набора шагов (steps) и переходов (transitions). Каждый шаг содержит действия (actions), реализуемые на любом из базовых языков (LD, FBD, ST). Переходы определяют условия перехода от одного шага к другому.

Преимущества SFC

Идеален для описания циклограмм, последовательностей технологических операций, рецептурного управления (ISA-88 / ГОСТ Р МЭК 61512). Наглядно отображает логику автомата состояний: активные шаги, условия перехода, параллельные ветви. Легко документируется и согласовывается с технологами. Поддерживает параллельное ветвление (divergence) и схождение (convergence).

Ограничения SFC

Не предназначен для реализации непрерывного регулирования или сложных вычислений — для этого используются вложенные языки (ST, FBD). Требует дисциплинированного проектирования: каждый шаг и переход должны быть чётко определены. Отладка может быть сложной при большом количестве параллельных ветвей.

↑ К содержанию

7. Instruction List (IL) — список инструкций (исключён)

Instruction List (IL) — текстовый низкоуровневый язык, аналогичный ассемблеру. Программа представляет собой последовательность инструкций, каждая из которых выполняет одну элементарную операцию (загрузка значения, логическое И/ИЛИ, присваивание, переход).

IL объявлен устаревшим (deprecated) в 3-й редакции IEC 61131-3 (2013) и полностью исключён из 4-й редакции (IEC 61131-3:2025, Ed.4). Для новых разработок использование IL не рекомендуется. IL может встречаться в унаследованных (legacy) проектах, преимущественно на контроллерах европейских производителей (Siemens SIMATIC S5, ранние проекты S7).

IL был востребован в эпоху ограниченных вычислительных ресурсов ПЛК, когда каждый байт памяти и каждый такт процессора были на счету. Современные контроллеры обладают достаточной производительностью, и преимущества IL утрачены, а его низкая читаемость и сложность сопровождения делают его непригодным для современных проектов.

↑ К содержанию

8. Выбор языка по типу задачи

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

Тип задачиРекомендуемый языкОбоснование
Блокировки, пуск/останов двигателей, дискретная логикаLDНаглядность, простота диагностики, понятность электрикам
ПИД-регулирование, масштабирование аналоговых сигналовFBDНаглядное представление потока данных, модульность
Сложные вычисления, обработка массивов, коммуникацииSTМощь текстового языка, компактность, поддержка ООП
Последовательное управление, циклограммы, дозированиеSFCВизуализация автомата состояний, чёткая структура
Управление осями движения (Motion Control)FBD или STСтандартные FB PLCopen Motion, сложные траекторные расчёты
Рецептурное управление (ISA-88)SFC + STSFC для последовательности фаз, ST для параметрических вычислений
Обработка данных, протоколы (Modbus, OPC UA)STПобайтовая/побитовая обработка, строки, массивы
Простая визуализация состояний на HMILD или FBDСтандартные биты состояний, флаги
↑ К содержанию

9. Поддержка языков в средах разработки

Большинство современных сред разработки ПЛК поддерживают все четыре действующих языка стандарта (LD, FBD, ST, SFC) и допускают их смешанное использование в одном проекте.

Среда разработки Производитель ПЛК LD FBD ST SFC IL Дополнительно
TIA Portal (STEP 7)Siemens (SIMATIC S7-1200/1500)Да (LAD)Да (FBD)Да (SCL)Да (GRAPH)Нет (S7-1500)CFC (S7-1500)
Studio 5000 Logix DesignerRockwell (Allen-Bradley ControlLogix, CompactLogix)ДаДаДаДаНет
EcoStruxure Control Expert (Unity Pro)Schneider Electric (Modicon M340/M580)ДаДаДаДаДа (legacy)CFC
Automation Builder / AC500ABBДаДаДаДаДа (legacy)CFC
TwinCAT 3BeckhoffДаДаДаДаДа (legacy)CFC, C/C++
CODESYS V3Платформонезависимая (3S-Smart Software)ДаДаДаДаДа (legacy)CFC, Python (скрипты)
GX Works3Mitsubishi (MELSEC iQ-R/F)ДаДаДаДаНет
Sysmac StudioOmron (NJ/NX)ДаДаДаНетНет
Обозначения в среде Siemens TIA Portal отличаются от стандартных: LAD = LD, SCL (Structured Control Language) = ST, GRAPH = SFC, FBD совпадает. STEP 7 для S7-300/400 поддерживал STL (аналог IL); для S7-1500 STL исключён. CFC (Continuous Function Chart) — расширение FBD с произвольными связями, не входящее в стандарт IEC 61131-3, но широко поддерживаемое.
↑ К содержанию

10. Смешанное программирование и модульный подход

Современная практика промышленной автоматизации предполагает мультиязыковой подход: различные POU (функции, функциональные блоки, программы) внутри одного проекта реализуются на разных языках в зависимости от решаемой задачи. Среды разработки, поддерживающие IEC 61131-3, позволяют свободно комбинировать языки на уровне отдельных POU.

Пример структуры проекта с несколькими языками:

Программа Main (SFC): последовательность технологических шагов — «Загрузка», «Нагрев», «Выдержка», «Охлаждение», «Выгрузка».
FB_HeaterControl (FBD): ПИД-регулирование температуры нагревателя, вызывается из шага «Нагрев».
FB_Interlocks (LD): блокировки и защиты оборудования — контроль давления, уровня, аварийные кнопки.
FC_RecipeCalc (ST): расчёт параметров рецепта, обработка массива данных, выбор уставок по номеру рецепта.

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

↑ К содержанию

11. Вопросы и ответы (FAQ)

Для инженера-электрика или техника по обслуживанию рекомендуется начинать с LD (Ladder Diagram), так как он интуитивно понятен и напоминает электрические схемы. Для инженера-программиста или разработчика с опытом в языках высокого уровня — с ST (Structured Text). Впоследствии целесообразно освоить FBD для аналоговых задач и SFC для последовательного управления.

Instruction List был объявлен устаревшим в 3-й редакции (2013) и полностью исключён из 4-й редакции IEC 61131-3:2025. Основные причины: крайне низкая читаемость кода, сложность сопровождения, отсутствие преимуществ перед ST на современных контроллерах с достаточными вычислительными ресурсами. Все задачи, ранее решавшиеся на IL, эффективнее реализуются на ST.

SCL (Structured Control Language) в Siemens TIA Portal является реализацией ST (Structured Text) по IEC 61131-3. Синтаксис и семантика в основном совпадают. Различия касаются платформо-специфичных расширений: доступ к системным функциям (SFC/SFB), работа с блоками данных (DB), специфические типы данных Siemens (S5TIME и др.). Программа на стандартном ST, как правило, легко адаптируется под SCL и наоборот.

Да, все современные среды разработки, соответствующие IEC 61131-3, поддерживают мультиязыковое программирование на уровне отдельных POU (программных организационных единиц). Каждая функция, функциональный блок или программа может быть написана на своём языке. Функциональный блок на FBD может вызываться из программы на ST, а SFC-последовательность может содержать действия на LD. Это рекомендуемый подход для сложных промышленных проектов.

CFC (Continuous Function Chart) — расширение FBD, позволяющее произвольно размещать блоки на рабочем поле и соединять их линиями связи без ограничений на направление потока данных. CFC не входит в стандарт IEC 61131-3, но поддерживается многими средами разработки: Siemens TIA Portal (для S7-1500), CODESYS, ABB Automation Builder, Schneider Electric Control Expert. CFC удобен для сложных схем регулирования, где стандартная FBD-компоновка слева направо становится ограничивающей.

В России действует ГОСТ Р МЭК 61131-3-2016 «Контроллеры программируемые. Часть 3. Языки программирования», идентичный 3-й редакции международного стандарта IEC 61131-3:2013. Четвёртая редакция (IEC 61131-3:2025, Ed.4) пока не переведена в национальный ГОСТ. Для общей части стандарта действует ГОСТ Р МЭК 61131-1/2.

Да, начиная с 3-й редакции (2013) IEC 61131-3 включает элементы ООП: классы (через расширение FUNCTION_BLOCK), методы (METHOD), интерфейсы (INTERFACE), наследование (EXTENDS), полиморфизм. ООП реализуется преимущественно в языке ST. Поддержка ООП зависит от конкретной среды разработки: полная в TwinCAT 3, CODESYS V3, TIA Portal (S7-1500 с FW V2.0+); ограниченная или отсутствующая в ряде контроллеров начального уровня.

На современных контроллерах разница в скорости выполнения между языками IEC 61131-3 минимальна, поскольку все они компилируются в один и тот же машинный код (native code) или промежуточный байт-код. Выбор языка следует делать по критериям читаемости, сопровождаемости и соответствия задаче, а не по скорости выполнения. Исключение — устаревшие интерпретируемые системы, где IL мог выполняться быстрее, но такие системы на практике уже не актуальны.

↑ К содержанию

Отказ от ответственности

Настоящая статья носит исключительно ознакомительный и информационный характер. Автор и владелец сайта не несут ответственности за любые прямые или косвенные убытки, ущерб или последствия, возникшие в результате использования или невозможности использования информации, представленной в данном материале. Перед принятием проектных решений необходимо обращаться к актуальным редакциям стандартов и документации конкретных производителей ПЛК.

Источники

  1. IEC 61131-3:2025 (Ed. 4) — Programmable controllers — Part 3: Programming languages.
  2. IEC 61131-3:2013 (Ed. 3) — Programmable controllers — Part 3: Programming languages.
  3. ГОСТ Р МЭК 61131-3-2016 — Контроллеры программируемые. Часть 3. Языки программирования.
  4. John K.-H., Tiegelkamp M. IEC 61131-3: Programming Industrial Automation Systems, 2nd ed. — Springer.
  5. Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования. — М.: СОЛОН-Пресс.
  6. Bolton W. Programmable Logic Controllers, 6th ed. — Elsevier.
  7. PLCopen. Introduction on IEC 61131-3 — www.plcopen.org.
  8. Siemens. TIA Portal — Programming and Operating Manual (SIMATIC S7-1500).
  9. Beckhoff. TwinCAT 3 — Programming Reference.
  10. CODESYS Group. CODESYS V3 — Online Help and Programming Guide.

© 2025 Компания Иннер Инжиниринг. Все права защищены.

Появились вопросы?

Вы можете задать любой вопрос на тему нашей продукции или работы нашего сайта.