Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Язык Instruction List (IL)




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

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

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

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

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

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

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

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

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

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

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

 

 

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

 

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

 

Таблица 3.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 [.....] Используются для сравнения двух операндов. Выход становится равным 1, если при выполнении проверочной операции получаем истинный результат.
Пример: LD [% MW 10<1000] Результат равен 1, если содержимое ячейки памяти для переменной MW 10 меньше 1000.
Элементы действия [.......] Элементы выполняют логические, арифметические и другие операции. Используется синтаксис языка ST.
Пример: [% MW 10:=% MW 0+100] К содержимому ячейки памяти для переменной MW0 прибавляется 100; полученная сумма размещена в ячейке памяти внутренней переменной MW10.

 

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

 

Пример:

 

! (* Waiting for drying *)
  % L 2:
  LD % I 0.1
  AND % М 10
  ST % Q 2.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 % I 1.1 Булевский результат = состоянию бита %. I 1.1.
AND % М 0 Булевский результат = AND предыдущего булевского результата и состояния бита % М 0.
OR % М 10 Булевский результат = OR предыдущего булевского результата и состояния бита % М 10.
ST % Q 2.0 Бит % Q 2.0 принимает состояние предыдущего булевского результата.

 

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

 

! LD % М 0   Если % М 0=1, то переход на метку % L 10
  JMPC % L 10
! LD % I 1.1
  AND % М 10
  ST % Q 2.0
! % L 10:  
  LD % I 1.3
  AND % М 20
…………………..



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


Дата добавления: 2014-01-03; Просмотров: 999; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.