Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1621
Скачиваний: 6
граммы в каждом цикле обрабатываются последовательно. Для окончания главной программы в форме LAD используется катушка абсолютного завершения про1раммы, а в форме STL - операция окончания главной программы (MEND) (см. (1) на рис.3.15).
Подпрограммы: Эти необязательные компоненты программы обра батываются только тогда, когда они вызываются из главной про граммы. Располагайте подпрограммы после главной программы (по сле катушки абсолютного завершения в LAD или после операции MEND в STL). Завершайте каждую подпрограмму командой RET, «вернуться» (см. (2) на рис. 3.15).
Программы обработки прерываний: Эти необязательные компоненты программы обрабатываются только тогда, когда появляется событие прерывания. Располагайте программы обработки прерываний после главной программы (после ка1ушки абсолютного завершения в LD или после операции MEND в STL). Завершайте каждую программу обработки прерываний операцией RETI, «вернуться из программы обработки прерываний» (см. (3) на рис.3.15).
Прикладная
программа
Главная программа
MEND
SBR О Подпрограмма (не обязат.) RET
SBR 1 Подпрограмма (не обязат.) RET
SBR п Подпрограмма (не обязат.) RET
INT О Программа прерыв.(не обязат.) RETI
INT 1 Программа прерыв.(не обязат.) RETI
INT n Программа прерыв.(не обязат.) V. I RETI ,
Главная программа:
^') Обработка один раз за цикл
Подпрограмма:
\(2) Обработка при вызове
'через главную программу
Программа обработки прерываний:
?(3) Обработка при каждом наступлении события прерывания
Рис. 3.15
Подпрограммы и программы обработки прерываний следуют за ка тушкой абсолютного завершения в LAD или за операцией MEND в STL в главной программе. Других указаний, которые необходимо соблюдать при размещении подпрограмм и программ обработки прерываний в программе, не существует. Можно располагать подпрограммы и программы обработки прерываний после главной программы в смешанной последовательности. Однако если хотите сгроить профамму в легко читаемой и понятной фор-
50
ме, то лучше присоединить все подпрограммы непосредственно к главной программе, а затем расположить все программы обработки прерываний вслед за подпрограммами.
На рис.3.16 показан пример программы управляемого временем пре рывания, с пoмoп^ью которого можно считывать значение аналогового входа через каждые 100 мс.
Сегмент 1 ISMO.1
НI
Сегмент 2
Сегмент 4 SM0.0
Н h
Сегмент 6
0
LAD
Главная программа |
||||
Сегмент 1 |
||||
О |
LD |
SM0.1 //Меркер первого цикла |
||
CCALL |
CALL |
О //Вызов подпрограммы О |
||
)Сегмент 2 |
||||
MEND |
||||
-(END |
) |
|||
Подпрограмма |
||||
Сегмент 3 |
||||
SBR |
0 //Начало подпрограммы О |
|||
MOV_B |
Сегмент 4 |
|||
LD SMO.O //Меркер утсановлен постоянно |
||||
EN |
||||
MOVB |
100, SMB34 //Установка интервала прерыва- |
|||
IN OUT \- SMB34 |
//ния, управляемого временем, на 100 мс |
|||
ENI |
//Разрешить все события прерывания |
|||
-<ENI |
) |
АТСН |
0,10 //Управляемое временем прерывание О |
|
//поставить в соответствие программе прерываний О |
||||
EN |
||||
INT |
||||
EVENT |
Сегмент 5 |
|||
-(RET |
) |
RET |
//Завершить подпрограмму |
|
Программа обработки прерываний
Сегмент 6
INT |
INT О |
//Начало программы обработки прерываний О |
Сегмент 7 |
Сегмент? |
|
MOV_W |
||
EN |
MOVW |
AEW4,VW100 //Опрос AEW4 |
AEW4 - j IN OUT |
||
Сегмент 8 |
||
Гг. г- |
RETI |
//Завершение программы обработки |
//прерываний |
||
PPIC. 3.16
51
3.5. Тестирование и контроль программы
3,5.1, Контроль программы путем выполнения определенного ко личества циклов
Можно указать, что CPU должен обрабатывать программу в течение определенного количества циклов (от 1 до 65 535 циклов). Если Вы выбе рете, сколько циклов должен выполнить CPU, то можете наблюдать обра ботку переменных процесса. Количество циклов, которое должен выпол нить CPU, задается с помощью команды меню Debug -^ Execute Scans [Тестирование -^ Выполнение циклов]. На рис.3.17 показано диалоговое окно, в котором задается количество циклов.
[1 |
||
• • • • • • > |
||
Execute ||| |
piograffi 5can[$i] |
OK |
Cancel |
Рис. 3.17
3,5,2, Управление и контроль программы с помощью таблицы состояний/принудительного задания
С помощью таблицы состояний/принудительного задания можно считывать, записывать, устанавливать и наблюдать переменные в то время, когда обрабатывается программа (рис. 3.18).
Ш Status Chart
\£штп1УаШе |
NewVdtue |
1+84 |
i -50 |
4400 |
4399 |
16#0064 |
16#65 |
2#0 |
2#1 |
•АВ' |
•ВА' |
Рис. 3.18
3,5,3, Отображ^ение статуса в программе^ представленной
вформе LAD
Спомощью редактора программ STEP 7-Micro/WIN 32 можно кон тролировать статус программы в режиме «online», причем программа должна отображаться в форме релейно-контакных схем (рис.3.19). Для этого выберите команду меню Debug -> Ladder Status On [Тестирование -^ Статус LAD Включен]. Так можно наблюдать состояние операций в программе при ее исполнении в CPU.
52
^^^^^^^^^^^1 |
[ г«* 1 i^"^ |
L'L»J isisii^Ziid-?] |
||||
JRogram Control |
||||||
-^h |
—Ц, |
\ |
||||
<l |
—^ |
j 1 |
Nelwofk 1 |
|||
—<eNi>:) 1 |
||||||
1} |
-<StOf) |
1 |
10.0 |
10.2 |
QQO |
|
—<wo—(jMf^:) Jj IL |
1 11 __ |
{••гПИ- |
^^^шш |
|||
' . . ' * • |
||||||
•1 |
-Ч teL'i j |
1 |
10.1 |
|||
IS |
—c^^^^u j |
|||||
- Ч SBR i 1 |
||||||
-^ |
-HCJ^T;) |
1 |
||||
Рис. 3.19
3.5»4. Установка значений с помощью таблицы состояний/ принудительного задания
С помощью CPU S7-200 можно некоторые или все входы и выходы (биты I и Q) принудительно устанавливать на определенные значения (см. рис.3.18). Дополнительно можно принудительно задавать до 16 внутрен них маркеров (V или М) либо аналоговых входов или выходов (AI или AQ). Значения в памяти переменных и значения маркеров можно задавать в форме байтов, слов и двойных слов. Аналоговые значения могут быть за даны только в форме слов, т.е. по четным байтам, например, A1W6 или AQW14). Все принудительно установленные значения записываются в EEPROM CPU.
Во время выполнения цикла принудительно установленные значения данных могут изменяться (программой, при актуализации входов и выхо дов или вследствие обработки коммуникаций). Поэтому CPU снова и снова переписывает принудительно установленные значения в различные мо менты времени цикла. На рис.3.20 показано, в каких местах цикла CPU об новляет принудительно установленные переменные.
Функция принудительной установки (Force) подавляет операции прямого считывания или записи входов и выходов. Эта функция подавляет также выход, который был сконфигурирован на установку определенного значения после перехода в состояние STOP. Если CPU переходит в STOP, то выход сохраняет принудительно установленное, а не сконфигурирован ное значение.
53