Язык ПЛК IL — список инструкций
IL (Instruction List) — низкоуровневый текстовый язык ПЛК по IEC 61131-3, похожий на ассемблер. Каждая строка — одна инструкция (LD, AND, OR, ST). Исторически первый язык ПЛК. С 2013 года считается устаревшим, в новых IEC-редакциях заменён на ST.
IL (Instruction List, список инструкций) — текстовый язык программирования ПЛК, похожий по стилю на ассемблер. Один из пяти языков IEC 61131-3 (в редакции 2003 года). В IEC 61131-3:2013 обозначен как «deprecated» — не рекомендуется для новых разработок.
Как выглядит IL
Каждая строка — одна инструкция, формат:
**` LD Start // Загрузить Start в аккумулятор AND NOT Stop // AND с инверсией Stop ST Motor // Сохранить результат в Motor **`
Работает через аккумулятор — результат текущей операции хранится в неявном регистре и используется в следующей инструкции.
Основные инструкции
- LD / LDN — загрузить значение (с инверсией)
- ST / STN — сохранить значение
- S / R — установить / сбросить
- AND / OR / XOR — логические операции (с модификатором N для инверсии)
- ADD / SUB / MUL / DIV — арифметические
- GT / LT / EQ / NE — сравнение
- JMP — переход по метке
- CAL — вызов функции/блока
- RET — возврат
Исторический контекст
IL был первым текстовым языком ПЛК в 1970-80-х, когда память и производительность были критичны. Он близок к ассемблеру процессора ПЛК и компилируется очень эффективно. По мере роста производительности нужда в низкоуровневом коде отпала.
Siemens имеет собственный диалект STL (Statement List) — концептуально похож на IL, применялся в SIMATIC S5 и ранних S7. В TIA Portal STL сохранён для совместимости.
Почему deprecated
- Нечитаемость для современных инженеров (поколение привыкло к структурному программированию)
- Легко внести трудноуловимые ошибки (путаница с аккумулятором)
- ST (Structured Text) даёт то же самое + понятные конструкции (IF/CASE/FOR)
- Производительность современных ПЛК такова, что оптимизация низкоуровневых инструкций не нужна
Где ещё встречается
- Legacy-код на объектах 1990-2010-х — многие шкафы автоматики написаны на IL/STL, при модернизации его часто сохраняют или переводят на ST
- Образование — IL преподают для понимания низкого уровня (как ассемблер в курсах CS)
- ПЛК с ограниченной памятью — некоторые микро-ПЛК по-прежнему эффективнее работают на IL
Поддержка средами
- CODESYS — поддержка IL сохранена, но в CODESYS 3.5 помечена как устаревшая
- Siemens TIA Portal — STL доступен для S7-300/400/1500 (не 1200)
- Rockwell — IL не поддерживается (вместо — Ladder/FBD/ST/SFC)
- ОВЕН CODESYS — IL есть, но используется редко
Рекомендация
Для новых проектов — ST вместо IL. Для сопровождения legacy — освоить чтение IL/STL, но не писать новый код на нём.
Частые вопросы
Нужно ли учить IL в 2026 году?
Для новых проектов — нет. Для сопровождения существующих объектов (многие работают на STL/IL с 2000-х) — пригодится умение читать и вносить мелкие правки. В курсах ПЛК чаще обучают LD, FBD, SFC, ST — а IL дают в общих чертах как исторический контекст. Если вы начинаете карьеру — потратьте время на ST, он даст и производительность и читаемость.STL Siemens и IL — это одно и то же?
Концептуально похожи — оба текстовые, оба похожи на ассемблер, оба работают с аккумулятором RLO (Result of Logic Operation). Но синтаксис отличается: Siemens STL имеет собственные инструкции (U, UN, O, ON, =, S, R и т.д.). При портировании кода между Siemens и CODESYS прямого переноса не получится — проще переписать на ST.
Источники
- IEC 61131-3:2013 — Programmable controllers. Part 3: Programming languages — IEC