Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 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