Открыть сервис

IEC 61131-3

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

История и предпосылки создания

До появления IEC 61131-3 каждый производитель ПЛК разрабатывал собственные, проприетарные языки программирования. Это приводило к серьёзным проблемам: программы были непереносимы между разными аппаратными платформами, инженеры вынуждены были изучать несколько совершенно разных сред разработки, а обучение персонала было дорогим и длительным. В середине 1980-х годов IEC начала работу над унификацией. Целью было создание единого набора языков, которые покрывали бы все основные подходы к программированию ПЛК: от простых релейно-контактных схем до сложных алгоритмов, реализуемых на языках высокого уровня.

Первая версия стандарта была выпущена в 1993 году. Она быстро завоевала признание, так как предложила не просто один язык, а целое семейство, позволяющее разработчику выбирать наиболее подходящий инструмент для каждой конкретной задачи. В 2003 году вышла вторая редакция (IEC 61131-3:2003), которая уточнила некоторые положения и добавила поддержку объектно-ориентированных расширений. Третья, действующая редакция (IEC 61131-3:2013), значительно расширила возможности объектно-ориентированного программирования, ввела пространства имён, интерфейсы и другие механизмы, характерные для современных языков общего назначения.

Структура и основные концепции

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

Модель программного обеспечения

Программа на IEC 61131-3 строится из иерархически организованных программных единиц (Program Organization Units, POU):

Важным понятием является конфигурация — это полное описание системы управления, включающее в себя ресурсы (обычно — отдельные ПЛК или процессоры), задачи (tasks) и глобальные переменные. Задачи определяют, как часто и в каком порядке будут выполняться программы.

Типы данных

Стандарт определяет обширный набор типов данных:

Языки программирования

Стандарт IEC 61131-3 включает пять языков, которые делятся на две группы: графические и текстовые.

Графические языки

LD (Ladder Diagram) — Релейно-контактные схемы

Самый старый и интуитивно понятный для электриков язык. Он визуально имитирует электрические схемы на реле и контакторах. Программа состоит из цепей (rungs), где слева направо «течёт» условный ток. Элементы схемы:

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

FBD (Function Block Diagram) — Диаграмма функциональных блоков

Графический язык, в котором программа представляется в виде схемы, состоящей из блоков (функций и функциональных блоков), соединённых линиями связей. Входы блоков находятся слева, выходы — справа. FBD удобен для реализации алгоритмов непрерывной логики, обработки аналоговых сигналов, ПИД-регулирования. Он нагляден и хорошо подходит для задач, которые можно представить в виде блок-схемы.

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

Язык, основанный на концепции сетей Петри. Он описывает последовательность шагов (steps) и переходов (transitions) между ними. Каждый шаг может содержать действия, написанные на любом другом языке стандарта (LD, FBD, ST, IL). SFC идеально подходит для описания циклических и последовательных процессов: работа конвейера, управление лифтом, этапы технологического цикла. Он позволяет чётко структурировать программу и легко реализовывать параллельные ветви и альтернативные маршруты.

Текстовые языки

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

Язык высокого уровня, синтаксически напоминающий Pascal или C. Он предоставляет все возможности современных языков программирования: условные операторы (IF...THEN...ELSE, CASE), циклы (FOR, WHILE, REPEAT), арифметические и логические выражения, работу с массивами и структурами. ST является наиболее мощным и гибким языком стандарта. Он используется для реализации сложных алгоритмов, математических вычислений, обработки данных и там, где графические языки становятся громоздкими.

IL (Instruction List) — Список инструкций

Низкоуровневый язык, напоминающий ассемблер. Программа представляет собой последовательность инструкций, каждая из которых состоит из оператора (например, LD, AND, ADD, ST) и операнда. IL использует аккумулятор (текущий результат) для промежуточных вычислений. В настоящее время IL считается устаревшим и не рекомендуется для новых разработок. Он сложен для чтения и отладки, но в некоторых случаях может быть полезен для оптимизации быстродействия или при работе с очень старыми контроллерами.

Применение и значение

IEC 61131-3 стал де-факто стандартом в промышленной автоматизации. Его поддерживают практически все крупные производители ПЛК: Siemens (TIA Portal), Rockwell Automation (RSLogix 5000/Studio 5000), Schneider Electric (EcoStruxure Control Expert), Beckhoff (TwinCAT), CODESYS, B&R, Mitsubishi Electric и многие другие.

Основные преимущества использования стандарта:

Критика и ограничения

Несмотря на широкое распространение, стандарт не лишён недостатков:

Заключительные замечания

IEC 61131-3 остаётся основным стандартом в области программирования промышленных контроллеров. Он обеспечивает баланс между наглядностью (для простых задач) и вычислительной мощью (для сложных алгоритмов). Современные тенденции, такие как Industry 4.0 и Industrial Internet of Things (IIoT), стимулируют развитие стандарта в сторону интеграции с IT-системами, однако IEC 61131-3 продолжает оставаться фундаментом для подавляющего большинства систем промышленной автоматизации.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →