IL (Instruction List) або список інструкцій — мова програмування стандарту IEC 61131-3IEC 61131-3:2013 Programmable controllers — Part 3: Programming languages.. Призначена для програмування промислових контролерів. За синтаксисом є близькою до мови асемблера. Використовується на виробництві для програмування автоматизованих систем керування технологічними процесами та систем промислової автоматизації.

Основні принципи мови У основі мови лежить поняття акумулятора (у стандарті IEC використовується термін  — результат) як місця зберігання поточного значення (результату) та переходів по мітках. Починається програма із завантаження в акумулятор значення змінної. Подальші кроки програми полягають в отриманні вмісту акумулятора і виконанні над ним обмеженого числа визначених операцій.

Кожна інструкція починається з нового рядка і може містити чотири поля, розділені табуляцією: мітку, оператор з модифікатором, за яким приводиться операнд і далі, коментар. Компілятор є не чутливим до регістра (інструкції ADD A і Add a є рівнозначними).

Більшість інструкцій виконують стосовно вмісту акумулятора відповідну дію, визначену оператором (з використанням операнда) і результат поміщають в акумулятор. Команди переходу на мітку здатні аналізувати вміст акумулятора і приймати рішення: виконувати перехід чи ні. Акумулятор може приймати дані будь-якого типу.

Під модифікатором маються на увазі літери N, C, які приписуються справа до імені деяких операторів. Модифікатор N означає логічне заперечення (обернене значення чи інверсію) операнда, C означає, що інструкція виконується, якщо результат попередньої операції порівняння TRUE.

Як операнди можуть виступати: змінні; константи; ім'я мітки; ім'я оператора (функції).

Приклад: Лінійне перетворення Y(x)=A*x+B запишеться так: LD x MUL A ADD B ST Y

Послідовний порядок виконання інструкцій IL можна змінити за допомогою дужок. Відкривальна дужка ставиться після оператора а закривальна дужка ставиться в окремому рядку. Інструкції в дужках виконуються у першу чергу з поміщенням результату у допоміжний акумулятор, після чого виконується оператор, що має відкривальну дужку.

Приклад: Обчислення виразу Y=5*(2-1) запишеться так: LD 5 MUL (2 SUB 1 ) ST Y

Інструкції можна доповнювати коментарями, що подаються у форматі: (*коментар*).

Оператори мови IL Стандартні оператори IL:

Оператор Допустимі модифікаториФункція оператора LD N Завантажити значення операнда в акумулятор ST N Присвоїти значення акумулятора операнду S Якщо значення акумулятора TRUE, встановити логічний операнд R Якщо значення акумулятора FALSE, скинути логічний операнд AND N, ( Порозрядне І (логічне множення) акумулятора і операнда OR N, ( Порозрядне АБО (логічне додавання) акумулятора і операнда XOR N, ( Порозрядне виключне АБО акумулятора і операнда NOT Порозрядна інверсія акумулятора ADD ( Додавання вмісту акумулятора та операнда, результат записується в акумулятор SUB ( Віднімання операнда від вмісту акумулятора, результат записується в акумулятор MUL ( Множення вмісту акумулятора на операнд, результат записується в акумулятор DIV ( Ділення вмісту акумулятора на операнд, результат записується в акумулятор MOD ( Ділення по модулю GT ( Значення акумулятора порівнюється із значенням операнда (> або ). Результат порівняння (TRUE або FALSE) записується в акумулятор GE ( Значення акумулятора порівнюється із значенням операнда (>= або ). Результат порівняння (TRUE або FALSE) записується в акумулятор EQ ( Значення акумулятора порівнюється із значенням операнда (= або ). Результат порівняння (TRUE або FALSE) записується в акумулятор NE ( Значення акумулятора порівнюється із значенням операнда (<> або ). Результат порівняння (TRUE або FALSE) записується в акумулятор LE ( Значення акумулятора порівнюється із значенням операнда (<= або ). Результат порівняння (TRUE або FALSE) записується в акумулятор LT ( Значення акумулятора порівнюється із значенням операнда (< або ). Результат порівняння (TRUE або FALSE) записується в акумулятор JMP C, CN Перехід до мітки CAL C, CN Виклик програмного або функційного блоку RET C, CN Вихід з програмного або функційного блоку й повернення в основну програму

Див. також Інші мови програмування стандарту IEC 61131-3: FBD () — функціональні блокові діаграми; SFC () — мова діаграм станів; ST () — структурований текст. LD () — релейно-контактні схеми

Примітки

Джерела Мишель Ж. Программируемые контроллеры: Архитектура и применение: пер. с фр. / Ж. Мишель ; Переводчик И. В. Федотов ; Ред. Б. И. Лыткин . — М. : Машиностроение, 1992 . — 320 . — ISBN 5-217-00974-8 Э. Парр. Программируемые контроллеры: руководство для инженера. — М.: БИНОМ. Лаборатория знаний, 2007. — 516 с. — ISBN 978-5-94774-340-1 Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования / Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 2004. — 256 c. — ISBN 5-98003-079-4