Обзор пяти языков программирования ПЛК по МЭК 61131-3: их назначение, различия и области применения. Из статьи можно понять, какой язык уместен для конкретной задачи и как их сочетать в одном проекте.
- Стандарт МЭК 61131-3 включает пять языков: LD, FBD, SFC, ST и IL.
- LD вырос из релейной автоматики и удобен для дискретной логики, FBD — самый простой для изучения графический язык.
- SFC описывает алгоритм через шаги и переходы, ST — высокоуровневый текст, IL — низкоуровневый и устаревший.
- В одном проекте языки принято сочетать: логику и блокировки — на LD или FBD, вычисления — на ST, последовательность — на SFC.
- Новички часто перегружают LD сложными вычислениями или пишут на ST простую логику, что снижает читаемость.
- IL не рекомендуется для новых проектов из-за устаревания и неполной поддержки в средах.
- МЭК 61131-3
- LD
- FBD
- SFC
- ST
- IL
- ГОСТ Р МЭК 61131-3-2016
Кому полезно: Инженеры АСУ ТП, программисты ПЛК и электрики, осваивающие стандарт МЭК 61131-3.
- Статья Общие сведения о языке SFC
- Статья Общие сведения о языке SFC.
- Статья Лекция. Программирование на языке SFC (CoDeSys)
Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.
МЭК 61131-3 определяет пять языков: LD, FBD, SFC (графические), ST и IL (текстовые). LD — релейные схемы, FBD — функциональные блоки, SFC — последовательности шагов, ST — высокоуровневый текст, IL — низкоуровневый список инструкций, признанный в последней редакции устаревшим. Выбор зависит от задачи: логика, непрерывные вычисления или последовательность.
Стандарт МЭК 61131-3 (первая редакция 1993 года, действующая — 2012/2013, в России ГОСТ Р МЭК 61131-3-2016) появился не как теоретическая разработка, а как обобщение языков, уже применявшихся производителями ПЛК [2]. Именно поэтому в стандарт ввели сразу несколько языков, а не один: каждый пользователь мог программировать в привычной для себя нотации [2].
LD (Ladder Diagram) — релейно-контактные схемы, графический язык, выросший из схем релейной автоматики. Контакты, катушки, последовательные и параллельные цепочки. Удобен для дискретной логики и хорошо читается электриками. FBD (Function Block Diagram) — диаграммы функциональных блоков, тоже графический: блоки соединяются линиями связей, как в структурных схемах. По материалам сайта, FBD считается наиболее простым в изучении и удобным в работе графическим языком [1]. SFC (Sequential Function Chart) — последовательностные диаграммы, описывают алгоритм как набор шагов и переходов между ними; своим происхождением обязан сетям Петри [8].
ST (Structured Text) — единственный высокоуровневый текстовый язык стандарта [7]. Синтаксис похож на Pascal: операторы, условия, циклы, функции и функциональные блоки. Удобен для вычислений, обработки массивов, сложных алгоритмов и подпрограмм. IL (Instruction List) — низкоуровневый текстовый язык, синтаксически близкий к ассемблеру, но команды не соответствуют командам конкретного процессора [7]. В последней редакции стандарта IL признан устаревшим [7].
Графическими языками являются SFC, FBD и LD, текстовыми — ST и IL [2]. На практике языки комбинируют в одном проекте: дискретную логику и блокировки пишут на LD или FBD, вычисления и обработку данных — на ST, а последовательность работы механизма или линии описывают на SFC. Подпрограммы на ST удобно вызывать из графических языков, что позволяет держать логику читаемой.
Типичная ошибка новичка — пытаться реализовать на LD сложные вычисления или разветвлённую последовательность, из-за чего схема превращается в нечитаемую «паутину». Обратная ошибка — писать на ST простую релейную логику, которую электрик не сможет быстро проверить. Также не стоит опираться на IL в новых проектах: он устарел, и не все среды его полноценно поддерживают.
Материалы сайта по теме
- Язык непрерывных функциональных схем CFC. Часть 1
- Системы программирования на языках МЭК 61131-3
- Beremiz
- Beremiz (сентябрь 2025)
- Beremiz (март 2025)
- Деменков Н.П. Языки программирования промышленных контроллеров. 2004
Частые вопросы
Сколько языков программирования определяет МЭК 61131-3?
Пять: LD, FBD, SFC, ST и IL. Три из них графические (LD, FBD, SFC), два текстовые (ST, IL).
Чем ST отличается от IL?
ST — высокоуровневый текстовый язык с операторами, циклами и функциями. IL — низкоуровневый список инструкций, похожий на ассемблер, в последней редакции стандарта признан устаревшим.
Какой язык выбрать для дискретной логики?
Обычно LD или FBD — они наглядны и привычны электрикам. Для сложных вычислений и обработки данных лучше подходит ST.
Что такое SFC и когда его применять?
SFC — последовательностные функциональные диаграммы из шагов и переходов. Применяют для алгоритмов с чёткой последовательностью этапов: циклы автоматов, линии, технологические процессы.
Можно ли смешивать языки в одном проекте?
Да, стандарт это допускает, и на практике так и делают. Логику пишут на LD/FBD, вычисления — на ST, последовательность — на SFC.