- Введение
- Продукция
- Маркировка
- Функции
- Руководство пользователя
- О документации
- Меры безопасности
- Индикация
- Максимальная конфигурация
- CAN-топология
- Подключение CAN-шины
- Разъемы и провода
- Монтаж модулей
- Общие правила и нормы эксплуатации
- Технические характеристики
- Условия эксплуатации
- Использование по назначению
- Маркировка
- Техническое обслуживание
- Транспортирование и хранение
- Упаковка
- Гарантийные обязательства
- Обновление
- Платформа CAN bp
- CANopen
- ISOBUS (ISO 11783)
- Решения
- Параметризация
- Программирование
- Литература и источники
- Образование
- Дополнительная информация
Общие сведения о языке IL¶
IL (Instruction List) представляет собой текстовый язык программирования низкого уровня, который очень похож на Assembler, но к конкретной архитектуре процессора не привязан. Он позволяет описывать функции, функциональные блоки и программы, а также шаги и переходы в языке SFC. Одним из ключевых преимуществ IL является его простота и возможность добиться оптимизированного кода для реализации критических секторов программ. Особенности IL делают его неудобным для описания сложных алгоритмов с большим количеством разветвлений.
Операторы языка¶
Основа языка программирования IL, как и в случае Assembler, это переходы по меткам и аккумулятор. В аккумулятор загружается значения переменной, а дальнейшее выполнение алгоритма представляет собой извлечение значения из аккумулятора и совершение над ним операций. Далее в таблице 4.1 приведены операторы языка IL.
Таблица 1 – Операторы языка IL
Оператор |
Описание |
LD |
Загрузить значение операнда в аккумулятор |
LDN |
Загрузить обратное значение операнда в аккумулятор |
ST |
Присвоить значение аккумулятора операнду |
STN |
Присвоить обратное значение аккумулятора операнду |
S |
Если значение аккумулятора TRUE, установить логический операнд |
R |
Если значение аккумулятора FALSE, сбросить логический операнд |
AND |
Поразрядное И аккумулятора и операнда |
ANDN |
Поразрядное И аккумулятора и обратного операнда |
OR |
Поразрядное ИЛИ аккумулятора и операнда |
ORN |
Поразрядное ИЛИ аккумулятора и обратного операнда |
XOR |
Поразрядное разделительное ИЛИ аккумулятора и операнда |
XORN |
Поразрядное разделительное ИЛИ аккумулятора и обратного операнда |
NOT |
Поразрядная инверсия аккумулятора |
ADD |
Сложение аккумулятора и операнда, результат записывается в аккумулятор |
SUB |
Вычитание операнда из аккумулятора, результат записывается в аккумулятор |
MUL |
Умножение аккумулятора на операнд, результат записывается в аккумулятор |
DIV |
Деление аккумулятора на операнд, результат записывается в аккумулятор |
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 to)). Значение (TRUE или FALSE) записывается в аккумулятор |
LT |
Значение аккумулятора сравнивается со значением операнда (<(less than)). Значение (TRUE или FALSE) записывается в аккумулятор |
JMP |
Переход к метке |
JMPC |
Переход к метке при условии, что значение аккумулятора TRUE |
JMPCN |
Переход к метке при условии, что значение аккумулятора FALSE |
CAL |
Вызов программного или функционального блока |
CALC |
Вызов программного или функционального блока при условии, что значение аккумулятора TRUE |
CALCN |
Вызов программного или функционального блока при условии, что значение аккумулятора FALSE |
RET |
Выход из POU и возврат в вызывающую программу |
RETC |
Выход из POU и возврат в вызывающую программу при условии, что значение аккумулятора TRUE |
RETCN |
Выход из POU и возврат в вызывающую программу при условии, что значение аккумулятора FALSE |
Пример программы на языке IL¶
На рис. 1 приведён пример программы на языке IL, которая эквивалентна следующему логическому выражению C = A AND NOT B:
Рис. 1 – Пример программы на языке IL
Первый оператор примера LD помещает значение переменной A в аккумулятор, способный хранить значения любого типа. Второй оператор ANDN выполняет «побитовое И» аккумулятора и обратного значения операнда, результат всегда помещается в аккумулятор. Последний оператор примера ST присваивает переменной C значение аккумулятора.