Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1628
Скачиваний: 6
MOVDW, MOVR). Многие операции в LAD соответствуют последова тельностям команд в STL, которые могут прерываться. Однако каждая из этих операций передачи соответствует одной единственной команде STL, обработка которой не может испытывать воздействия событий прерыва ний.
Для программ на STL или LAD, которые совместно использует не сколько переменных: если совместно используются нескольких взаимосвя занных байтов, слов или двойных слов, то исполнением программы обра ботки прерываний можно управлять посредством операции «Блокировка всех событий прерываний» (DISI) и «Разблокировка всех событий преры ваний» (ENI). В том месте главной программы, где расположены операции, выполняющие доступ к совместной памяти, необходимо блокировать со бытия прерываний. После того, как выполнены все операции, работающие с совместной памятью, нужно снова разблокировать события прерываний. В течение времени, когда события прерываний блокированы, программы обработки прерываний не мохут выполняться и не имеют доступа к совме стной памяти. Однако, такой способ программирования может вызывать замедленную реакцию на события прерывания.
Разблокировка и блокировка всех событий прерываний
Операция Разблокировка всех событий прерыва
) ний разблокирует обработку всех назначенных собы тий прерываний.
Операция Блокировка всех событий прерываний
блокирует обработку всех событий прерываний. Операнды: нет.
При переходе в режим RUN прерывания блоки руются. Если CPU находится в режиме RUN, то мож но с помощью операции ENI разблокировать все со
бытия прерываний. Команда «Блокировка всех событий прерываний» до пускает постановку прерываний в очередь, но не разрешает вызывать про граммы обработки прерываний.
EN ' " • ' ^ " |
Назначение прерывания и отделение прерывания |
|
11 IN- |
Операция Назначение прерывания назначает со |
|
бытию прерывания (EVENT) номер программу обра |
||
EVENT |
ботки прерываний (INT) и затем разблокирует это со |
|
DTCH |
бытие. |
|
EN |
Операция Отделение прерывания отделяет собы |
|
1 |
тие прерывания (EVENT) от всех программ обработки |
|
1 |
||
EVENT |
||
прерываний и затем блокирует это событие. |
||
IATCH |
IN Г, |
Операнды INT: от О до 127 |
LVliNT |
EVENT: от О до 20 |
|
JDTCH |
LVLNT |
|
100
Описание операций назначения и отделения прерываний
Прежде чем вызывать программу обработки прерываний, нужно ор ганизовать связь между событием прерывания и частью программы, кото рую Вы хотите обрабатывать при появлении события прерывания. С по мощью операции «Назначение прерывания» (АТСН) назначают событию прерывания (характеризуемому номером события) часть программы (ха рактеризуемую номером программы обработки прерываний). Можно со поставить одной программе обработки прерываний несколько событий прерываний. Однако одно событие прерывания не может быть одновре менно назначено нескольким программам обработки прерываний. Если при разблокированных прерываниях появляется событие, то выполняется только одна программа обработки прерываний, которая была позже всех назначена этому событию.
Если сопоставляют событие прерывания программе обработки пре рываний, то это событие автоматически разблокируется. Если выполняют операцию «Блокировка всех событий прерываний», то все возникающие прерывания становятся в очередь до тех пор, пока снова не отменить бло кировку прерываний с помощью операции «Разблокировка всех событий прерываний».
Можно блокировать отдельные события прерываний, отменяя сопос тавление события программе с помощью операции DTCH (отделение пре рывания). Эта операция устанавливает прерывание в неактивное состоя ние, в котором оно пропускается и потому не обрабатывается.
Прерывания коммуникационных портов
Последовательным комм>т1икационным портом контроллера можно управлять с помощью программы на LAD или STL. Коммуникация через такой порт называется свободно программируемой коммуникацией, В слу чае свободно программируемой коммуникации программа определяет ско рость передачи данных, количество битов на символ, контроль четности и протокол. Прерывания передачи и приема облегчают коммуникацию с пр01раммным управлением.
Прерывания от ввода/вывода
К прерываниям от ввода/вывода относятся прерывания при нарас тающем или спадающем фронте, прерывания от быстрых счетчиков и пре рывания от последовательности импульсов. CPU-214 может создавать пре рывание при нарастающем и/или спадающем фронте на входах и выходах от 10.0 до 10.3. События «Нарастающий фронт» и «Спадающий фронт» мо гут восприниматься по каждому из этих входов. С помощью этих событий могут также отображаться сбойные ситуации, которые должны сразу при ниматься во внимание при появлении события.
101
с помощью прерываний от быстрых счетчиков можно реагировать на следующие события: совпадение текущего значения с предварительно установленным значением, смена направления счета на обратное по отно шению к направлению вращения вала, внешний сброс счетчика. С помо щью каждого из этих событий в быстрых счетчиках можно реагировать на быстрые события, которыми невозможно управлять с частотой циклов контролера.
Прерывания от последовательности импульсов сразу уведомляют об окончании вывода заданного количества импульсов. Последовательности импульсов часто используются для управления шаговыми двигателями.
Можно разблокировать описанные выше прерывания, назначая про грамму обработки прерываний соответствующему событию ввода/вывода.
Прерывания, управляемые временем
CPU-214 может поддерживать два прерывания, управляемых време нем. С помощью этих прерываний можно определять действия, которые должны выполняться периодически. Период задается с шагом 1 мс, значе ния лежат в диапазоне от 5 мс до 255 мс. Период для управляемого време нем прерывания О запишите в SMB34, период для управляемого временем прерывания 1 запишите в SMB35.
Управляемое временем событие прерывания вызывает соответст вующую программу обработки прерываний каждый раз, когда истекает время. В общем случае с помощью управляемых временем событий пре рываний Вы управляете регулярным опросом аналоговых входов.
Управляемое временем прерывание разблокируется и время начина ет отсчитываться, когда назначают программу обрабо1ки прерываний управляемому временем событию прерывания. При этом система фикси рует период, чтобы последующие изменения не влияли на период. Если хотите изменить период, то нужно задать новое значение для периода и за тем снова назначить программу обработки прерываний управляемому вре менем событию прерывания. При новом назначении эта функция стирает накопленное значение времени предыдущего назначения, и время начина ет отсчитываться с новым значением периода.
После разблокировки прерывание, управляемое временем, функцио нирует непрерывно и обрабатывается каждый раз, когда истекает заданный рштервал времени. Если выходите из режима RUN или отделяете прерыва ние от программы обработки прерываний (DTCH), то управляемое време нем прерывание блокируется. Если выполняете операцию «Блокировка всех событий прерываний», то управляемые временем прерывания в даль нейшем хотя и появляются, однако ставятся в очередь (до тех пор, пока прерывания снова не разблокируются, либо очередь не переполнится).
Управляемые временем прерывания Т32/Т96 служат для управляе мого временем реагирования на истечение заданного интервала времени.
102
Эти прерывания поддерживаются только формрфователями задержки вютючения (TON) с разрешающей способностью 1 мс - Т32 и Т96. В про тивном случае таймеры Т32 и Т96 имеют обычные функциональные воз можности. Когда прерывание разблокировано, назначенная программа об работки прерываний выполняется, если при актуализации таймеров с раз решающей способностью 1 мс в цикле CPU окажется, что текущее значе ние активного таймера равно предварительно установленному значению таймера. Вы разблокируете эти прерывания, назначая программу обработ ки прерываний событию прерывания Т32/Т96.
Приоритеты прерываний и очереди
Приоритеты прерываний назначаются согласно следующей схеме:
•коммуникационные прерывания - высший приоритет,
•прерывания от ввода/вывода (включая HSC и последовательности импульсов),
•управляемые временем прерывания - низший приоритет Прерывания обрабатываются контроллером в пределах соответст
вующих им приоритетов в последовательности из появления. Всегда ак тивна только одна программа обработки прерываний. Если в данный мо мент обрабатывается программа обработки прерываний, то эта программа доводится до конхда. Она не может прерываться программой обработки прерываний, появляющейся позже, даже если гфиоритет этой программы выше. Прерывания, возникающие во время обработки другого прерывания, принимаются в очередь и обрабатываются позже. В табл.П. 1 показаны три очереди для прерываний и максимальное количество прерываний, которые могут приниматься в каждую очередь.
Очередь |
CPU 212 |
CPU 214 |
Таблица П. 1 |
|
CPU 215 |
CPU 216 |
|||
Коммуникационные прерывания |
4 |
4 |
4 |
8 |
Прерывания от ввода/вывода |
4 |
16 |
16 |
16 |
Управляемые временем прерывания |
2 |
4 |
8 |
8 |
В прингдипе может появиться больше прерываний, чем сможет при нять очередь. Поэтому система имеет в своем распоряжении маркеры пе реполнения очередей, указывающие вид событий прерываний, которые не смогли быть приняты в очередь. Табл.П.2 поясняет специальные маркеры, которые устанавливаются при переполнении очереди. Их хможно использо вать только в одной программе обработки прерываний, так как они сбра сываются, когда очередь обработана и снова начинается обработка главной программы.
103