Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1635
Скачиваний: 6
Таблица 17.2 |
|
Описание (0 - нет переполнения, 1 - переполнение) |
Специальный |
маркер |
|
Переполнение очереди для коммуникационных прерываний |
SM4.0 |
Переполнение очереди для прерываний от ввода/вывода |
SM4.1 |
Переполнение очереди для прерываний, управляемых временем |
SM4.2 |
В табл.п.3 показаны событие прерывания, приоритет и назначенный номер прерывания.
Таблица П.З
Номер |
Описание прерывания |
|
события |
||
8Порт 0: Принят символ
9Порт 0: Закончена передача
23Порт 0: Закончен прием сообщения
24Порт 1: Закончен прием сообщения
25Порт 1: Принят символ
26Порт 1: Закончена передача
0 Нарастающий фронт, 10.0**
2Нарастающий фронт, 10.1
4Нарастающий фронт, 10.2
6Нарастающий фронт, 10.3 1 Спадающий фронт, 10.0**
3Спадающий фронт, 10.1
5 |
Спадающий фронт, 10.2 |
|
7 |
Спадающий фронт, 10.3 |
|
12 |
HSCO: CV - PV |
|
(текущее значение = предварительно |
||
13 |
установленному значению)** |
|
HSC1:CV = PV |
||
(текущее значение = предварительно |
||
установленному значению) |
||
14 |
HSC1: Смена направления счета |
|
15 |
HSC1: Внешний сброс |
|
16 |
HSC2: CV ^^ PV (текущее значение =^ пред |
|
варительно установленному значению) |
||
17 |
HSC2: Смена направления счета |
|
18 |
HSC2: Внешний сброс |
|
19 |
PLSO: Счет импульсов завершен |
|
20 |
PLS1: Счет импульсов завершен |
|
10 |
Управляемое временем прерывание 0 |
|
1 |
1^ |
Управляемое временем прерывание 1 |
21 |
Таймер Т32: Прерывание СТ = РТ |
|
1 |
22 |
Таймер Т96: Прерьшание СТ = РТ |
Класс приоритета
Коммуникационные прерывания: высший класс приоритета
Прерывания от ввода/вывода:
средний класс приоритета
Управляемые
временем прерывания: низший класс приоритета
Прио
ритет
0
0*
0*
1
1*
1*
0
1
2
3
4
5
6
7
0
8
9
10
11
12 1
13
14
15
0
1
2
3
*Так как коммуникация является полудуплексной, то прерывания передачи и приема имеют одинаковый приоритет.
**Если событие 12 (HSCO, PV = CV) сопоставлено прерыванию, то события 0 и 1 не могут быть сопоставлены никакому прерыванию. Если одно из событий 0 и 1 сопоставлено пре рыванию, то событие 12 не может быть сопоставлено никакому прерыванию.
104
Пример операций в программе обработки прерываний.
N e t w o r k |
1 |
SM0.1 |
|
Н f |
|
N e t w o r k |
2 |
I SM5.0 |
|
Н I— |
|
N e t w o r k |
3 |
I M5.0 |
|
N e t w o r k |
50 |
N e t w o r k 65 hI SM5.0
в первом иикло Определение программ |
|||
обработки прерываний |
Network 1 |
||
4 как прерывания по иараетаю щем у |
|||
фро11т> па входе ЕО О |
LD SVfO.l |
||
ATCri 4,0 |
|||
Е М |
|||
- |
» |
Ра;1блокировка веек еойытий |
|
"л. CNT |
J |
прерываний |
Еели обнаружена ошибка ввода/ вывода, то олокироока прерывания по параетающему фронту па ЕО О (Этот ect мспт не обязателен)
- ( DISI |
) |
Блокировка |
обработки вее\ со |
бытий прерываний, сели М5 О |
|||
активен. |
|||
—^ т-хтгч |
'^ |
Окончание |
главнс |
^^^"^ ^ программы КОР
Программа обработки преры для прерывания
входах/выхода.х
_ у |
^ Условное окончание программы |
V RETF J обработки прерываний по ошибке
- - ( R E T I ) Конец программы обработки прерывания по параетающему фронту па ЕО О.
Network 3 LD MS.O DISI
Network 65 LD SMS.O C R E T l
Network 66
R E T I
105
Пример считывания значения аналогового входа с помощью прерывания, управляемого временем.
Network 1
Network 2
I SM 0Л
1 |
ADD |
I |
HN |
||
[Nl |
||
I N2 OUT |
||
SUB |
J |
|
EN |
||
INI
1IN2 OUT
и IN TOUT
j- INTOUi'
О
" " C C A L L )
-(END )
МОУ_В
EN
"~С EN [ )
Главная программа
Маркер первого цикла;
ВЫЗОВ подпрограммы О
Подпрограмма
Начало подпрограммы 0.
Маркер постоянно включен: Установка интервала 100 мс для управляемого временем
прерывания 0.
•г л |
' ' |
Ра;!блокировка всех событий прерывания
Назначение программы обра ботки прерываний О управ ляемому временем преры ванию О
Network 1
LD SMO.l
CALL «
Network 2
MEND
Network 3
SBR О
Network 4
LD S.VIO.O
MOVB 100, SV1B34
ENI
ЛТ( И 0,10
~~С R E T ) Окончание подпрограммы. |
Network л |
||
RET |
|||
Программа обработки прсры ваннй |
|||
Начало программы обработки |
Network 6 |
||
LNT О |
|||
прерываний 0. |
|||
MOV_W |
Опрос AEW4 |
Network 7 |
|
EN |
MOV VV Л Е VV 4, V \^ 100 |
||
VVVIOO |
|||
Network К |
|||
•~С R FTl) Юкон чан ие программы |
RETI |
||
обработки прерываний |
|||
1.6.Арифметические операции, инкрементирование
идекрементирование
Сложение и вычитание целых чисел (16 бит) ^ Операции Слоэюение целых чисел (16 бит) и Вычи
тание целых чисел (16 бит) складывают или вычитают два целых числа (16 бит) и передают результат (16 бит) в OUT.
Операнды IN1, IN2: VW, Т, С, IW, QW, MW, SMW, АС, AIW, константа, *VD, *АС, SW
OUT: VW, Т, С, IW, QW, MW, SMW, АС, *VD, *АС,
SW
106
LAD: INI + IN2 = OUT , INl - IN2 = OUT
STL: INI + OUT = OUT, OUT - INI - OUT
Эти операции влияют на специальные маркеры: SMLO (нуль); SML1 (переполнение); SML2 (отрицательный)
Сложение и вычитание целых чисел (32 бита) |
||
Операции Сложение целых чисел (32 бита) и Вычи |
1 |
|
тание целых чисел (32 бита) складывают или вычитают |
||
два целых числа (32 бита) и передают результат (32 бита) |
||
в OUT. |
||
Операнды IN1, IN2: VD, Ш, QD, MD, SMD, АС, НС, |
||
константа, *VD, *АС, SD |
||
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
||
LAD: |
INI + IN2 = OUT, INI - IN2 = OUT |
|
STL: |
INI + OUT - OUT, OUT - INI = OUT |
|
Эти операции влияют на специальные маркеры: |
||
SMLO (нуль); SML1 (переполнение); SM1.2 (отрица |
||
тельный) |
||
Сложение и вычитание действительных чисел |
||
Операции Слоэюение действительных чисел и Вы |
||
читание действительных чисел складывают или вычи |
||
тают два действительных числа (32 бита) и передают |
||
действительное число в качестве результата в OUT. |
||
Операнды IN1, IN2: VD, Ш, QD, MD, SMD, АС, |
||
константа, *VD, *АС, SD |
||
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
||
LAD: INl + IN2 = OUT, INl - IN2 = OUT |
||
STL: |
INl + OUT = OUT, OUT - INl = OUT |
|
ADD DI
EN
INI
IN2 OUT E N * ™ - " '
-INl
IN2 OUT
JCN ADD R
1\\ |
|
(\2 |
OLT 1 |
EN |
SUB_R 1 |
1М |
|
(N2 |
OI:T |- |
IN I, |
O U T |
I N l , |
O U T |
Умножение и деление целых чисел (16 бит)
Операция Умноэюение целых чисел (16 бит) умно I
жает два целых числа (16 бит) и передает результат (32 бита) в OUT.
В AWL младшее слово (16 бит) значения OUT (32 бита) используется как один из сомножителей.
Операция Деление целых чисел (16 бит) делит два целых числа (16 бит) и передает результат (32 бита) в OUT. Результат (32 бита) в OUT состоит из частного (16 младших битов) и остатка от деления (16 старших би I тов).
EN |
ML'L |
|
I M |
||
IN2 |
o u r |
|
t N |
DIV |
|
I M |
||
IN2 |
oui- |
|
MIJL |
] N ] , O l i T |
|
DIV |
I N l , O L r |
|
;|
;i
107
в STL младшее слово (16 бит) значения OUT (32 бита) используется как делимое.
Операнды IN1, IN2: VW, Т, С, IW, QW, MW, SMW, АС, AEW, кон станта, *VD, *АС, SW
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SW LAD: INI * IN2 = OUT, INI / IN2 - OUT
STL: INl * OUT = OUT, OUT / INI = OUT
Эти операции влияют на специальные маркеры: SM1.0 (нуль); SM1Л (переполнение); SM1.2 (отрицательный); SM1.3 (деление на нуль).
Умножение и деление действительных чисел
1 EN |
Операция Умноэюение действительных чисел ум |
||||
MUL |
R |
ножает два действительных числа (32 бита) и передает |
|||
результат (32 бита) в OUT. |
|||||
INI |
Операция Деление действительных чисел делит |
||||
IN2 |
OUT |
два действительных числа (32 бита) и передает резуль |
|||
1 |
тат (32 бита) в OUT. |
||||
DIV |
R |
||||
EN |
Операнды IN1, IN2: VD, ID, QD, MD, SMD, AC, |
||||
INI |
константа, *VD, *AC, SD |
||||
IN2 |
OUT |
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
|||
| * R |
INI, OUT |
LAD: INI * IN2 = OUT, INI/ IN2 - OUT |
|||
STL: INI * OUT = OUT, OUT / INI - OUT |
|||||
J/R |
INI, OUT |
||||
Эти операции влияют на специальные маркеры: |
|||||
1 SM1.0 (нуль); SM1.1 (переполнение); SM1.2 (отрица тельный); SM1,3 (деление на нуль)
Если устанавливается SM1.1 или SM1.3, то другие биты состояния для арифметических операций и первичные входные операнды не изменя ются.
Извлечение квадратного корня из действительного числа
Операция Извлечение квадратного корня из дей |
|
SQRT |
ствительного числа извлекает квадратный корень из |
действительного числа (32 бита), заданного в IN. Ре |
|
зультат (OUT) тоже является действительным числом |
|
(32 бита). |
|
p | | S Q ^ ; IROIJT |
VlN^OUT |
Операнды IN: VD, ID, QD, MD, SMD, AC, |
|
константа, *VD, *AC, SD |
OUT: VD, Ш, QD, MD, SMD AC, *VD, *AC, SD
Эти операции влияют на специальные маркеры: SMLO (нуль); SML1 (переполнение); SML2 (отрицательный)
108