программирование ПЛКуроки

Модификаторы и операторы списка инструкций IL

Опубликовано
CoDeSys и ОВЕН

Мы продолжаем изучать программирование ПЛК ОВЕН в универсальной среде программирования CoDeSys. В этой публикации представлены модификаторы и операторы языка IL (список инструкций). С предыдущей публикацией по программированию ПЛК, посвященной знакомству с языками программирования, с использованием которых можно писать программы в CoDeSys, можно ознакомиться здесь.

Язык IL (Instruction List) — список инструкций. Это типичный ассемблер с аккумулятором и переходами по меткам. Набор инструкций стандартизован и не зависит от конкретной целевой платформы. Поскольку IL самый простой в реализации язык, он получил очень широкое распространение до принятия стандарта МЭК. Язык IL позволяет работать с любыми типами данных, вызывать функции и функциональные блоки, реализованные на любом языке. Таким образом, на IL можно реализовать алгоритм любой сложности, хотя текст будет достаточно громоздким.

Общие сведения

Текст на IL — это текстовый список последовательных инструкций. Каждая инструкция записывается на отдельной строке. Инструкция может включать четыре поля, разделенные пробелами или знаками табуляции:

Метка:ОператорОперандКомментарий

Метка инструкции не является обязательной, она ставится только там, где нужно. Оператор присутствует обязательно. Операнд необходим почти всегда. Комментарий — необязательное поле, записывается в конце строки. Ставить комментарии между полями инструкции нельзя. 

Аккумулятор IL является универсальным контейнером, способным сохранять значения переменных любого типа. Команды сравнения сравнивают значение операнда и аккумулятора, результат сравнения ИСТИНА или ЛОЖЬ вновь помещается в аккумулятор.

Программа на IL выполняется подряд, сверху вниз. Для изменения порядка выполнения и организации циклов применяется переход на метку. Переход на метку может быть безусловным JMP — выполняется всегда, независимо от чего-либо. Условный переход JMPC выполняется только при значении аккумулятора ИСТИНА. Переход можно выполнять как вверх, так и вниз.

Пример IL-программы:

LD17(*комментарий*)
STlint
GE5
JMPCnext
LDidword
EQistruct.sdword
STNtest
next:
Попробуйте разобраться в данной программе самостоятельно, применив знания из следующего раздела

Модификаторы и операторы языка IL

В IL можно использовать следующие операторы и модификаторы.

Модификаторы

МодификаторыС какими операторами используютсяОписание действия
Сс JMP, CAL, RET:инструкция выполняется только тогда, когда результат аккумулятора ИСТИНА.
Nс JMPC, CALC, RETC:инструкция выполняется тогда, когда результат аккумулятора ЛОЖЬ.
Nв других случаях:отрицание операнда.
Модификаторы

Операторы IL

Ниже приведена таблица всех операторов IL с пояснениями и допустимыми модификаторами.

ОператорМодификаторЗначение
LDNПрисвоение аккумулятору значения оператора
STNПрисвоение значения аккумулятора операнду
SПрисвоить логическому операнду значение ИСТИНА, если значение аккумулятора ИСТИНА
RПрисвоить логическому операнду значение ЛОЖЬ
ANDN, (Побитное И
ORN, (Побитное ИЛИ
XORN, (Побитное исключающее ИЛИ
ADD(Сложение
SUB(Вычитание
MUL(Умножение
DTV(Деление
GT(Сравнение на больше (>)
GE(Сравнение на больше или равно (>=)
QE(Сравнение на равенство (=)
NE(Сравнение на неравенство (<>)
LE(Сравнение на меньше или равно (<=)
LT(Сравнение на меньше (<)
JMPCNПереход к метке
CALCNВызов функционального блока
RETCNВыход из POU и возврат в вызывающую программу
)Вычисление задержанной операции

Пример IL программы с использованием некоторых модификаторов:

LDTRUE(*загрузить значение ИСТИНА в аккумулятор*)
ANDBOOL1(*выполнить И с инверсным значением переменной BOOL1*)
JMPCmark(*если значение аккумулятора ИСТИНА, то перейти к метке ” mark”*)
LDNBOOL2(*сохранить инверсное значение BOOL2 в аккумуляторе*)
STERG(*сохранить значение аккумулятора в ERG*)

После оператора можно поставить скобки, тогда значение выражения внутри скобок рассматривается как операнд. Например:

Здесь значение ERG равно 7Здесь значение переменной ERG равно 10
LD 2LD 2
MUL 2MUL (2
ADD 3ADD 3
ST ERG)
ST ERG

Операция MUL выполняется только тогда, когда программа доходит до “)”. В качестве операнда MUL использует значение 5.


В этой статье мы познакомились с модификаторами и операторами языка IL, используемыми в проектах CoDeSys. На следующем уроке начнем разбираться с операторами языка программирования ST (структурированный текст), используемыми в проектах CoDeSys.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *