Язык Instruction List (IL)

Язык Список команд (Instruction List) – это унификация интерфейса языка программирования низкого уровня, неориентированного на какую-либо микропроцессорную архитектуру. Происхождение базовых конструкций языка – STEP 5 (Siemens). У языка IL есть очень важное качество: на его основе можно создавать оптимальные по быстродействию программные единицы.

Программа, написанная на языке IL, состоит из набора инструкций, выполняемых ПЛК последовательно (рис 4.3). Каждая инструкция состоит из кода инструкций и операнда.

Например: LD %I 1.0, где LD – код инструкции, I 1.0 – операнд.

Инструкции активизируют:

- Входы/выходы ПЛК.

- Стандартные системные управляющие функции (таймеры, счетчики).

- Арифметические и логические операции и операции пересылки.

- Внутренние переменные ПЛК.

Существуют два типа инструкций:

- Проверочные инструкции, которые содержат условия, необходимые для того, чтобы выполнилось действие, например, LD, AND, OR.

- Инструкции действия, которые активизируют действие, следующее за проверочной последовательностью, например, ST, STN, R.

 

Рис. 4.3. Фрагмент программы на языке IL

 

Список базовых инструкций языка IL приведен в таблице 4.6.

 

Таблица 4.6. Базовые инструкции языка IL

Наименование Инструкции Описание
Проверочные инструкции LD, LDN, LDR, LDF Инструкции загрузки
AND, ANDN, ANDR, ANDF Инструкции логического И
OR, ORN, ORR, ORF Инструкции логического ИЛИ
AND, OR (8 уровней вложения)
XOR, XORN, XORR, XORF исключающее ИЛИ
 
MPS MRD МРР
N отрицание
Инструкции действия ST, STN, S, R –( )– –( / )– –( S )– –( R )–
JMP, JMPC, JMPCN Используется для перехода (безусловного, условного при булевском результате равном 1, или условного при булевском результате равном 0) на помеченную инструкцию, которая может быть расположена в списке инструкций как перед текущей инструкцией, так и после нее.
SRn Используется для перехода к началу подпрограммы.
RET, RETC, RETCN Возврат из подпрограммы (безусловный, условный при булевском результате, равном 1, условный при булевском результате, равном 0).
END, ENDC, ENDCN Конец программы (безусловный, условный при булевском результате, равном 1, условный при булевском результате, равном 0).
HALT Выполнение программы останавливается.
Проверочные элементы Блоки: таймер; счетчик; одновибратор; регистр; контроллер барабана Существуют инструкции для управления каждым из стандартных функциональных блоков. Для активизации вводов/выводов функциональных блоков используется специальная структурная форма.
LD[.....] AND[.....] OR[.....] Пример: LD[%MW10<1000] Используются для сравнения двух операндов. Выход становится равным 1, если при выполнении проверочной операции получаем истинный результат. Результат равен 1, если содержимое ячейки памяти для переменной MW10 меньше 1000.
Элементы действия [.......] Элементы выполняют логические, арифметические и другие операции. Используется синтаксис языка ST.
Пример: [%MW10:=%MW0+100] К содержимому ячейки памяти для переменной MW0 прибавляется 100; полученная сумма размещена в ячейке памяти внутренней переменной MW10.

 

Программой является последовательность инструкций. Каждая последовательность должна содержать одну или несколько проверочных инструкций. Результаты проверочных инструкций используются в одной или нескольких инструкциях действия. Каждая инструкция занимает одну строку. Последовательность инструкций начинается с восклицательного знака (он формируется автоматически). Восклицательный знак может включать комментарий и может быть идентифицирован меткой.

 

Пример:

 

! (*Waiting for drying*)
  %L2:
  LD % I0.1
  AND %М10
  ST %Q2.5

 

Комментарий может быть расположен в начале последовательности инструкций. Он может занимать до 3-х строк (т.е. 222 алфавитно-цифровых символов) и должен быть обрамлен символами (*и*). На мониторе воспроизводится только первая строка комментария. Если последовательность удаляется, то удаляется также связанный с ней комментарий.

Метка может быть назначена один раз для единственной последовательности инструкций в данном программном объекте. Для обеспечения соответствующих связей при программном переходе последовательность должна быть помечена.

Система сканирует последовательность инструкций в том порядке, как они были введены независимо от значений чисел, используемых при формировании меток.

Круглые скобки могут быть использованы в инструкциях AND и OR. Действие скобок наглядно демонстрируется при сопоставлении с соответствующими Лестничными Диаграммами. Открывающаяся круглая скобка связана с соответствующей инструкцией AND или OR. Закрывающаяся круглая скобка является инструкцией и обязательна для каждой открытой скобки.

 

Пример: AND(

 

LD % I1.0
AND %I1.1
OR %I1.2
ST % Q2.0
   
LD %I1.0
AND( %I1.1
OR %I1.2
)  
ST %Q2.0

 

Для круглых скобок допускается до восьми уровней вложения. При их применении следует соблюдать следующие правила:

- За каждой открывающей круглой скобкой должна последовать закрывающая скобка.

- Метки не должны располагаться в выражении между круглыми скобками. Это правило справедливо также для инструкций перехода и вызова подпрограмм.

- Инструкции обозначенные – ST, STN, S и R не могут быть запрограммированы между круглыми скобками.

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

- Инструкция MPS (Memory PuSh) запоминает на вершине стека последний результат проверочной инструкции и сдвигает другие данные в направлении дна стека.

- Инструкция MRD (Memory ReaD) считывает содержимое вершины стека.

- Инструкция МРР (Memory PoP) считывает вершину стека и сдвигает другие данные в нем в направлении вершины стека.

Эти инструкции не используются в выражениях между круглыми скобками.

Программы списка команд выполняются последовательно – инструкция за инструкцией.

Первой инструкцией обязательно должна быть либо LD, либо инструкция безусловного перехода (JMP). Все инструкции (за исключением LD и JMP) используют булевский результат предыдущей инструкции.

 

Пример:

 

LD %I1.1 Булевский результат = состоянию бита %.I1.1.
AND %М0 Булевский результат = AND предыдущего булевского результата и состояния бита %М0.
OR %М10 Булевский результат = OR предыдущего булевского результата и состояния бита %М10.
ST %Q2.0 Бит %Q2.0 принимает состояние предыдущего булевского результата.

 

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

 

! LD %М0 Если %М0=1, то переход на метку %L10
JMPC %L10
! LD %I1.1
  AND %М10
  ST %Q2.0
! %L10:  
  LD %I1.3
  AND %М20
…………………..

 








Дата добавления: 2015-01-15; просмотров: 5899;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.