IEC 61131-3:2025 — Edition 4

IEC 61131-3 Edition 4
Конец Instruction List

Редакция мая 2025 года стандарта программирования ПЛК удаляет IL, добавляет свойства ООП, синхронизацию Mutex/Semaphore, строки UTF-8 и ASSERT. Вот что должен знать каждый инженер-автоматик.

Что изменилось в Edition 4?

IEC 61131-3:2025 (Edition 4) — самое значимое обновление стандарта языков программирования ПЛК с 2013 года. Опубликован в мае 2025 года Техническим комитетом IEC TC 65 / SC 65B, он модернизирует стандарт, чтобы отразить, как на самом деле разрабатывается программное обеспечение промышленной автоматизации сегодня.

Главное изменение: Instruction List (IL) — похожий на ассемблер язык ПЛК, уходящий корнями в 1990-е годы — официально удалён из стандарта. Он был помечен как устаревший в Edition 3 (2013) и теперь полностью исчез. Комитет IEC пришёл к выводу, что «язык, подобный ассемблеру, не соответствует современным средам разработки».

Но удаление IL — лишь часть более широкой модернизации. Edition 4 также вводит объектно-ориентированные свойства (Properties), примитивы параллелизма (Mutex/Semaphore), поддержку строк UTF-8, функцию ASSERT для разработки и расширенные преобразования типов.

Что было удалено

Функции, официально исключённые из стандарта

Instruction List (IL)

Вся спецификация языка IL (глава 7.2) была удалена. IL был языком, похожим на ассемблер, склонным к нечитаемому коду с трудным обслуживанием. Производители могут ещё поддерживать его, но он больше не является частью стандарта IEC. Перейдите на Structured Text (ST).

Восьмеричные литералы

Восьмеричная запись чисел (например, 8#267) была устранена. Используйте вместо неё десятичную или шестнадцатеричную запись.

TRUNC без типа

Обобщённая функция TRUNC(x) исчезла. Используйте явно типизированные версии, такие как TRUNC_DINT(x) или TRUNC_LINT(x), для безопасного, однозначного усечения.

Функции BCD (устаревшие)

Функции двоично-десятичного кода (IS_VALID_BCD, BCD_TO_*, *_TO_BCD) помечены как устаревшие и, вероятно, будут удалены в следующем издании.

Что было добавлено

Новые функции, модернизирующие программирование ПЛК

Свойства (GET/SET)

Классы, функциональные блоки и интерфейсы теперь поддерживают объявления PROPERTY_GET и PROPERTY_SET — настоящие методы getter/setter со спецификаторами доступа (PUBLIC, PRIVATE, PROTECTED, INTERNAL). Это приближает ООП в ПЛК к современной программной инженерии.

Mutex и Semaphore

Новая глава 6.9 вводит управление параллелизмом. MUTEX предоставляет LOCK/UNLOCK/TRYLOCK для критических секций. SEMA предоставляет ACQUIRE/RELEASE/TRY_ACQUIRE для счётного доступа к ресурсам. Необходимо для многоядерных ПЛК и управления параллельными задачами.

USTRING и UCHAR (UTF-8)

Нативные типы строки и символа UTF-8 дополняют существующие STRING (ASCII) и WSTRING (UTF-16). Литералы используют синтаксис U#'текст'. Новые функции LEN_MAX и LEN_CODE_UNIT обрабатывают кодировку переменной длины. Полная поддержка интернационализации для HMI и журналирования.

Функция ASSERT

Функция проверки во время разработки, которая проверяет булевы выражения и генерирует определённые производителем диагностики при несоблюдении условий. Отключена в производстве — нулевые накладные расходы во время выполнения. Думайте о ней как об утверждениях модульного тестирования для кода ПЛК.

Расширенные преобразования типов

Новые явные преобразования (LWORD_TO_BOOL, DWORD_TO_BOOL, WORD_TO_BOOL, BYTE_TO_BOOL) и преобразования строки в массив (STRING/WSTRING/USTRING в ARRAY_OF_BYTE). Неявные преобразования STRING_TO_WSTRING и CHAR_TO_WCHAR теперь стандартны.

Шестнадцатеричные коды символов в строках

Новый синтаксис ${HH} позволяет вставлять символы по шестнадцатеричной кодовой точке внутри строковых литералов. Позволяет использовать символы табуляции, символы Unicode и специальные символы непосредственно в коде ПЛК.

Миграция с IL на Structured Text

Если ваша кодовая база ещё использует Instruction List, сейчас самое время для миграции. Код IL, как правило, в 3-5 раз длиннее эквивалентного Structured Text, сложнее для чтения и всё меньше поддерживается современными инструментами и ИИ-ассистентами.

T-IA Connect может ускорить вашу миграцию с IL на ST. Наш ИИ понимает оба языка и может переводить блоки IL в чистый, оптимизированный Structured Text, сохраняя вашу логику и имена переменных. В сочетании с сервером MCP вы можете повторно внедрить мигрированный код непосредственно в TIA Portal.

1

Экспорт блоков IL

Используйте инструменты экспорта T-IA Connect для извлечения существующего исходного кода IL из проектов TIA Portal (V17-V21).

2

Перевод с помощью ИИ

Предоставьте код IL любой ИИ-модели, совместимой с MCP. ИИ переводит на идиоматический Structured Text, обрабатывая таймеры, счётчики, метки переходов и шаблоны аккумулятора.

3

Импорт и компиляция

Импортируйте сгенерированный SCL обратно в TIA Portal через инструменты create_scl_block или import_scl_source T-IA Connect. Скомпилируйте и проверьте в один шаг.

Что это означает для пользователей Siemens TIA Portal

Siemens не удалил IL/STL из TIA Portal — и вряд ли сделает это в ближайшие годы. Но направление ясно. Новые инструменты Siemens (SIMATIC AX, TIA Portal V21 Source Documents) сосредоточены исключительно на Structured Text. Стандарт IEC теперь признаёт только четыре языка: ST, LD, FBD и SFC.

Для новых проектов нет больше причин использовать IL. Для существующих проектов с кодом IL планируйте миграцию сейчас, пока инструментарий и поддержка ИИ зрелые. Сервер MCP T-IA Connect с 390+ инструментами делает этот переход управляемым — даже для больших кодовых баз.

Хронология изданий IEC 61131-3

1993

Edition 1 (1993)

Первое издание. Определяет 5 языков: IL, ST, LD, FBD, SFC.

2003

Edition 2 (2003)

Техническая ревизия. Незначительные уточнения и исправления.

2013

Edition 3 (2013)

Крупное обновление. ООП (классы, интерфейсы, наследование), пространства имён, ссылки. IL помечен как устаревший.

2025

Edition 4 (2025)

IL удалён. Добавлены Properties, Mutex/Semaphore, UTF-8 (USTRING), ASSERT, расширенные преобразования.

Часто задаваемые вопросы

Instruction List полностью исчез из IEC 61131-3?

Да. IL был помечен как устаревший в Edition 3 (2013) и полностью удалён в Edition 4 (2025). Он больше не является частью международного стандарта. Однако производители ПЛК, например Siemens, могут продолжать поддерживать IL/STL в своих инструментах — он просто больше не стандартизирован.

Нужно ли немедленно переписывать весь код IL?

Нет. Существующие программы IL продолжат работать в TIA Portal и других средах, которые ещё его поддерживают. Но для новой разработки Structured Text теперь является единственным стандартизированным текстовым языком. Планируйте миграцию постепенно — ИИ T-IA Connect может помочь переводить блок за блоком.

Для чего используются Mutex и Semaphore в программировании ПЛК?

Mutex (взаимное исключение) защищает критические секции кода, чтобы только одна задача могла их выполнять одновременно — предотвращая повреждение данных в многозадачных программах. Semaphore обеспечивает счётный доступ к общим ресурсам (например, ограничение одновременных соединений). Это стандартные концепции в ИТ, которые теперь формализованы для ПЛК.

Как T-IA Connect помогает в переходе на IEC 61131-3:2025?

T-IA Connect генерирует Structured Text, совместимый с IEC 61131-3, с помощью ИИ. Наш сервер MCP может экспортировать существующие блоки IL, переводить их в ST через любую ИИ-модель и повторно импортировать чистый код в TIA Portal. Мы поддерживаем V17–V21, поэтому вы можете модернизировать, не обновляя версию TIA Portal.

Готовы модернизировать код ПЛК?

Миграция с IL на ST при поддержке ИИ, генерация кода, совместимого с IEC 61131-3:2025, и 390+ инструментов MCP для TIA Portal V17-V21.