Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Язык программирования IL.






Язык IL предназначен для программирования ПЛК, опираясь непосредственно на логические (булевы) формулы, описывающие технологический цикл, реализуемый под управлением ПЛК (см. лекцию 5). Программа, составленная на языке IL, состоит из последовательности инструкций. Инструкцией в данном случае называют команду, состоящую из двух частей: кода инструкции и адресной части (операнда). Код инструкции указывает, какую именно операцию следует совершить над содержимым ячейки памяти, адрес которой указан в адресной части инструкции. Система адресации языка IL, общая для всех языков программирования ПЛК, предусмотренных стандартом IES 61131-3, описана ранее. Инструкции языка IL разделяются на инструкции проверки выполнения логических условий и инструкции выполнения заданных действий.

Начнём рассмотрение проверочных инструкций с группы LD (LoaD). Они имеют следующие коды:

LD – загрузить бит, заданный в адресной части данной инструкции, в процессор;

LDN (LoaD Not) – загрузить инверсию бита, заданного в адресной части;

LDR (LoaD Rise) - загрузить в процессор единицу, если в текущем цикле опроса значение бита, указанного в адресной части, изменилось с нуля на единицу;

LDF (LoaD Fall) – загрузить единицу, если в текущем цикле опроса значение бита, указанного в адресной части, изменилось с единицы на нуль.

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

Аналогично кодам инструкций группы LD формируются коды инструкций группы AND (логическое И) и группы OR (логическое ИЛИ):

AND – произвести логическое умножение результата предыдущих логических операций, хранящегося в процессоре, на бит, заданный в адресной части данной инструкции;

OR – произвести логическое сложение указанных ранее величин;

ANDN (AND Not) – произвести логического умножение результата в процессоре на инверсию бита, заданного в адресной части данной инструкции;

ORN – произвести логическое сложение указанных ранее величин (бита в процессоре с инверсией бита, заданного в адресной части);

ANDR (AND Rise) – произвести логическое умножение результата в процессоре на единицу, если в текущем цикле опроса значение бита, указанного в адресной части, изменилось с нуля на единицу.

Остальные коды (ORR, ORF и ANDF) расшифровываются аналогично. Предусмотрены также аналогичные коды XOR, XORN, XORR и XORF для инструкций, реализуемых исключение ИЛИ.

Помимо инструкций, реализующих отдельные логические операции, язык IL предусматривает проверочные блоки. Каждый из проверочных блоков реализует целую группу логических операций. Типичными проверочными блоками являются таймер (timer), служащий для организации выдержек времени, и счётчик (counter), позволяющий организовать счёт импульсов и технологических циклов.

Инструкции выполнения заданных действий (инструкции действий) инициируют подачу процессором управляющих символов, соответствующих сложившимся логическим условиям. Рассмотрим группу инструкций действия ST (STorage). Они имеют следующие коды:

ST – передать по заданному в адресной части инструкции адресу значение бита (0 или 1), находящегося в процессоре (бит был сформирован в результате предыдущих проверочных операций);

STN (Storage Not) – совершить такую же операцию, что и по инструкции ST, но с предварительной инверсией значения бита, находящегося в процессоре;

S (Set) – установить бит, адрес которого указан в адресной части данной инструкции, в состояние 1, если в текущем цикле работы процессор находится в состоянии 1; состояние 1 адресуемого бита сохраняется и в дальнейшем, даже если процессор перейдёт в состояние 0;

R (Reset) – сбросить бит, адрес которого указан в адресной части, в состояние 0, если в текущем цикле работы процессор находится в состоянии 1; состояние 0 адресуемого бита сохраняется, даже если процессор перейдёт в состояние 0.

Инструкциями ST, STN, S и R задаются значения выходных и промежуточных дискретных управляющих сигналов ПЛК.

К инструкциям действия относятся также инструкции передачи управления JMP (JuMP) и END. Их коды:

JMP – безусловный переход на метку, номер которой указан в адресной части данной инструкции;

JMPC (JuMP on Condition) – условный переход на метку; переход реализуется, если в результате выполнения предыдущей логической операции процессор оказался в состоянии 1, а иначе выполнение программы продолжается обычным порядком;

JMPCN (JuMP on Condition Not) – условный переход на метку в случае, когда в результате выполнения предыдущей логической операции процессор оказывается в состоянии 0, а иначе выполнение программы продолжается обычным порядком.

Код END означает, что выполнение цикла управления завершено. После этого ПЛК переходит к началу нового цикла управления (к началу управляющей программы). Если же нужно остановить выполнение циклической программы, то используется инструкция HALT. У инструкций END и HALT нет адресной части (безадресные инструкции).

Если в логической формуле имеются скобки, то их следует поставить и при отображении данной логической формулы на языке IL. В качестве примера рассмотрим две логические формулы:

Q2.1 = I1.1 I1.2 + I1.1;

Q2.2 = I1.1 (I1.1 + I1.3).

Здесь мы полагаем, что информация о входных сигналах X11, X12 и X13 попадает в ячейки памяти I1.1, I1.2 и I1.3, а формируемые в ПЛК выходные сигналы Y21 и Y22 направляются на выходы Q2.1 и Q2.2. Программный фрагмент, отображающий формулу для Q2.1, будет формироваться без скобок:

LD %I1.1

AND %I1.2

OR %I1.3

ST %Q2.1

В данном фрагменте в процессор загружается (LD) значение бита I1.1, которым и определяется после этого текущее состояние процессора (0 или 1). Затем производится логическое умножение (AND) данного состояния на значение бита I1.2. После этого производится логическое сложение (OR) нового состояния процессора с битом I1.3. копия результата сложения (0 или 1), полученного в процессоре, пересылается (ST) в полном соответствии с формулой для Q2.1 на выход Q2.1.

Если необходимо реализовать функцию Q2.2, то нужно применить скобки:

LD %I1.1

AND (%I1.2

OR %I1.3

)

ST %Q2.2

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

Если необходимо произвести сложные логические, арифметические и другие математические операции, то можно воспользоваться конструкциями языка ST. Действия, программируемые на языке ST, следует заключать в квадратные скобки. Например:

[%MW4: = %MW1 + 10].

Здесь к содержимому регистра памяти MW1 прибавляется 10, а полученный результат запоминается в регистре MW4.

Корректно оформленный фрагмент программы представляет собой последовательность инструкций, расположенных в столбик, по одной инструкции в строке. Каждый автономный фрагмент начинается с восклицательного знака, после которого может располагаться комментарий, ограниченный звёздочками. При необходимости ниже комментария может располагаться метка (Label), которая имеет вид %Li (где i может принимать значения от 0 до 999). Метки используются для организации переходов внутри программы. Первой инструкцией (вслед за меткой, если она имеется) должна быть инструкция типа LD или JMP. Каждая последовательность должна содержать одну или несколько проверочных инструкций и завершаться инструкцией действия.

При выполнении программы инструкции выполняются в том порядке, в котором они введены в ПЛК, но с учётом заданных внутри программы переходов. Нормальный режим работы ПЛК заключается в циклическом повторении управляющей программы, поэтому после отработки инструкции END автоматически начинается выполнение управляющей программы с самого начала.

В качестве примера составим программу регулирования уровня жидкости путём автоматического включения и выключения электропривода насоса, подающего жидкость, в соответствии с формулой (5.8). Запишем её в скобочной форме:

.

Примем также, что сигналы датчиков dВ и dН подаются соответственно на входы I1.2 и I1.1, а выходной сигнал H на включение насоса формируется на выходе Q1.1. Чтобы избежать скобок в программе, начнём с программирования выражения в скобках. Получим:

!

%L1

LD %I1.1

OR %Q1.1

AND %I1.2

ST %Q1.1

Метка L1 необходима, чтобы можно было организовать включение насоса из разных сегментов программы.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.