IL (Instruction List) або список інструкцій — мова програмування стандарту IEC 61131-3. Призначена для програмування промислових контролерів. За синтаксисом є близькою до мови асемблера. Використовується на виробництві для програмування автоматизованих систем керування технологічними процесами та систем промислової автоматизації.
Основні принципи мови
У основі мови лежить поняття акумулятора (у стандарті IEC використовується термін англ. result — результат) як місця зберігання поточного значення (результату) та переходів по мітках. Починається програма із завантаження в акумулятор значення змінної. Подальші кроки програми полягають в отриманні вмісту акумулятора і виконанні над ним обмеженого числа визначених операцій.
Кожна інструкція починається з нового рядка і може містити чотири поля, розділені табуляцією: мітку, оператор з модифікатором, за яким приводиться операнд і далі, коментар. Компілятор є не чутливим до регістра (інструкції 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 | ( | Значення акумулятора порівнюється із значенням операнда (> або англ. greater than). Результат порівняння (TRUE або FALSE) записується в акумулятор |
GE | ( | Значення акумулятора порівнюється із значенням операнда (>= або англ. greater than or equal). Результат порівняння (TRUE або FALSE) записується в акумулятор |
EQ | ( | Значення акумулятора порівнюється із значенням операнда (= або англ. equal). Результат порівняння (TRUE або FALSE) записується в акумулятор |
NE | ( | Значення акумулятора порівнюється із значенням операнда (<> або англ. not equal). Результат порівняння (TRUE або FALSE) записується в акумулятор |
LE | ( | Значення акумулятора порівнюється із значенням операнда (<= або англ. less than or equal). Результат порівняння (TRUE або FALSE) записується в акумулятор |
LT | ( | Значення акумулятора порівнюється із значенням операнда (< або англ. less than). Результат порівняння (TRUE або FALSE) записується в акумулятор |
JMP | C, CN | Перехід до мітки |
CAL | C, CN | Виклик програмного або функційного блоку |
RET | C, CN | Вихід з програмного або функційного блоку й повернення в основну програму |
Див. також
Інші мови програмування стандарту IEC 61131-3:
Примітки
- IEC 61131-3:2013 Programmable controllers — Part 3: Programming languages.
Джерела
- Мишель Ж. Программируемые контроллеры: Архитектура и применение: пер. с фр. / Ж. Мишель ; Переводчик И. В. Федотов ; Ред. Б. И. Лыткин . — М. : Машиностроение, 1992 . — 320 . —
- Э. Парр. Программируемые контроллеры: руководство для инженера. — М.: БИНОМ. Лаборатория знаний, 2007. — 516 с. —
- Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования / Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 2004. — 256 c. —
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
IL Instruction List abo spisok instrukcij mova programuvannya standartu IEC 61131 3 Priznachena dlya programuvannya promislovih kontroleriv Za sintaksisom ye blizkoyu do movi asemblera Vikoristovuyetsya na virobnictvi dlya programuvannya avtomatizovanih sistem keruvannya tehnologichnimi procesami ta sistem promislovoyi avtomatizaciyi Osnovni principi moviU osnovi movi lezhit ponyattya akumulyatora u standarti IEC vikoristovuyetsya termin angl result rezultat yak miscya zberigannya potochnogo znachennya rezultatu ta perehodiv po mitkah Pochinayetsya programa iz zavantazhennya v akumulyator znachennya zminnoyi Podalshi kroki programi polyagayut v otrimanni vmistu akumulyatora i vikonanni nad nim obmezhenogo chisla viznachenih operacij Kozhna instrukciya pochinayetsya z novogo ryadka i mozhe mistiti chotiri polya rozdileni tabulyaciyeyu mitku operator z modifikatorom za yakim privoditsya operand i dali komentar Kompilyator ye ne chutlivim do registra instrukciyi ADD A i Add a ye rivnoznachnimi Bilshist instrukcij vikonuyut stosovno vmistu akumulyatora vidpovidnu diyu viznachenu operatorom z vikoristannyam operanda i rezultat pomishayut v akumulyator Komandi perehodu na mitku zdatni analizuvati vmist akumulyatora i prijmati rishennya vikonuvati perehid chi ni Akumulyator mozhe prijmati dani bud yakogo tipu Pid modifikatorom mayutsya na uvazi literi N C yaki pripisuyutsya sprava do imeni deyakih operatoriv Modifikator N oznachaye logichne zaperechennya obernene znachennya chi inversiyu operanda C oznachaye sho instrukciya vikonuyetsya yaksho rezultat poperednoyi operaciyi porivnyannya TRUE Yak operandi mozhut vistupati zminni konstanti im ya mitki im ya operatora funkciyi Priklad Linijne peretvorennya Y x A x B zapishetsya tak LD x MUL A ADD B ST Y Poslidovnij poryadok vikonannya instrukcij IL mozhna zminiti za dopomogoyu duzhok Vidkrivalna duzhka stavitsya pislya operatora a zakrivalna duzhka stavitsya v okremomu ryadku Instrukciyi v duzhkah vikonuyutsya u pershu chergu z pomishennyam rezultatu u dopomizhnij akumulyator pislya chogo vikonuyetsya operator sho maye vidkrivalnu duzhku Priklad Obchislennya virazu Y 5 2 1 zapishetsya tak LD 5 MUL 2 SUB 1 ST Y Instrukciyi mozhna dopovnyuvati komentaryami sho podayutsya u formati komentar Operatori movi ILStandartni operatori IL Operator Dopustimi modifikatori Funkciya operatoraLD N Zavantazhiti znachennya operanda v akumulyatorST N Prisvoyiti znachennya akumulyatora operanduS Yaksho znachennya akumulyatora TRUE vstanoviti logichnij operandR Yaksho znachennya akumulyatora FALSE skinuti logichnij operandAND N Porozryadne I logichne mnozhennya akumulyatora i operandaOR N Porozryadne ABO logichne dodavannya akumulyatora i operandaXOR N Porozryadne viklyuchne ABO akumulyatora i operandaNOT Porozryadna inversiya akumulyatoraADD Dodavannya vmistu akumulyatora ta operanda rezultat zapisuyetsya v akumulyatorSUB Vidnimannya operanda vid vmistu akumulyatora rezultat zapisuyetsya v akumulyatorMUL Mnozhennya vmistu akumulyatora na operand rezultat zapisuyetsya v akumulyatorDIV Dilennya vmistu akumulyatora na operand rezultat zapisuyetsya v akumulyatorMOD Dilennya po modulyuGT Znachennya akumulyatora porivnyuyetsya iz znachennyam operanda gt abo angl greater than Rezultat porivnyannya TRUE abo FALSE zapisuyetsya v akumulyatorGE Znachennya akumulyatora porivnyuyetsya iz znachennyam operanda gt abo angl greater than or equal Rezultat porivnyannya TRUE abo FALSE zapisuyetsya v akumulyatorEQ Znachennya akumulyatora porivnyuyetsya iz znachennyam operanda abo angl equal Rezultat porivnyannya TRUE abo FALSE zapisuyetsya v akumulyatorNE Znachennya akumulyatora porivnyuyetsya iz znachennyam operanda lt gt abo angl not equal Rezultat porivnyannya TRUE abo FALSE zapisuyetsya v akumulyatorLE Znachennya akumulyatora porivnyuyetsya iz znachennyam operanda lt abo angl less than or equal Rezultat porivnyannya TRUE abo FALSE zapisuyetsya v akumulyatorLT Znachennya akumulyatora porivnyuyetsya iz znachennyam operanda lt abo angl less than Rezultat porivnyannya TRUE abo FALSE zapisuyetsya v akumulyatorJMP C CN Perehid do mitkiCAL C CN Viklik programnogo abo funkcijnogo blokuRET C CN Vihid z programnogo abo funkcijnogo bloku j povernennya v osnovnu programuDiv takozhInshi movi programuvannya standartu IEC 61131 3 FBD angl Function Block Diagram funkcionalni blokovi diagrami SFC angl Sequential Function Chart mova diagram staniv ST angl Structured Text strukturovanij tekst LD angl Ladder Diagram relejno kontaktni shemiPrimitkiIEC 61131 3 2013 Programmable controllers Part 3 Programming languages DzherelaMishel Zh Programmiruemye kontrollery Arhitektura i primenenie per s fr Zh Mishel Perevodchik I V Fedotov Red B I Lytkin M Mashinostroenie 1992 320 ISBN 5 217 00974 8 E Parr Programmiruemye kontrollery rukovodstvo dlya inzhenera M BINOM Laboratoriya znanij 2007 516 s ISBN 978 5 94774 340 1 Petrov I V Programmiruemye kontrollery Standartnye yazyki i priyomy prikladnogo proektirovaniya Pod red prof V P Dyakonova M SOLON Press 2004 256 c ISBN 5 98003 079 4