Лекция CoDeSys (Новиков).
Метка Оператор Операнд Комментарий
M1 LD 2
ADD 1
ST Y
LE 3
JMP M2 (*y = 2 + 2*)
Редактор CoDeSys выравнивает текст автоматически. Кроме того он выполняет синтаксический
контроль и выделение цветом ошибки(некорректно введённый оператор выделяется голубым
цветом).
АККУМУЛЯТОР
Абсолютное большинство операторов IL выполняет некоторую инструкцию с аккумулятора.
Операнд тоже может участвовать в инструкции, но результат помещается в аккумулятор.
НАПРИМЕР инструкция add 2 прибавляет к содержимому оператора число 2 и помещает результат
в аккумулятор. Команды сравнения сравнивают содержимое операнда и аккумулятора, результат
сравнения ИСТИНА или ЛОЖЬ помещается в аккумулятор. Команды перехода на метку способны
анализировать содержимое аккумулятора и принимать решение – выполнять переход или нет.
Таким образом, аккумулятор IL является универсальным, способным сохранять значения
переменных любого типа. В аккумулятор можно поместить значение типа BOOL затем Int или Real
– транслятор ошибки не выдаст. Такая гибкость не означает, что аккумулятор может
одновременно содержать несколько значений различных типов. Он содержит только одно
значение, причём тип значения фиксируется в аккумуляторе, и, если операция потребует значение
другого типа транслятор выдаст ошибку.
ПЕРЕХОД НА МЕТКУ
Программа на IL выполняется подряд сверху вниз. Для изменения порядка выполнения
используется оператор JMP. Этот оператор выполняется всегда независимо ни от чего. Оператор
JMPC выполняется только при значении аккумулятора – ИСТИНА. Переход можно выполнять как
вверх так и вниз. Метки только локальные (т.е. переход на метку в другом POU не возможен).
Переходы нужно организовывать аккуратно, чтобы не получить бесконечный цикл.
ПРИМЕР:
LD 2
M2: ADD 2
ST Y
LE 3
JMPC M2
В данном примере предполагалось бы организация цикла на одно повторение, при условии, если
бы использовался JMPN. В CoDeSys команда безусловного перехода выполняется очень быстро,
т.к. транслируется в одну машинную команду. Ограничения на число переходов нет.
LD 2
ADD 1
ST Y
LE 3
JMP M2
СКОБКИ
Последовательный порядок выполнения команд можно поменять при помощи скобок.
Открывающая скобка ставится в инструкции сразу после операнда, закрывающая – в последней
строке. Инструкция заключ1нная в скобке выполняется в первую очередь. Результат вычисления
инструкции в скобках помещается в дополнительный аккумулятор. После чего выполняется
команда, содержащая открывающую скобку.