Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
STEP7_V53_Programming_r.pdf
Скачиваний:
2
Добавлен:
29.05.2025
Размер:
5.18 Mб
Скачать

Основы проектирования структуры программы

связь с помощью глобальных данных

связь через неспроектированные соединения

генерирование сообщений, относящихся к блокам

Дополнительная информация

За более подробной информацией о SFB и SFC обращайтесь к справочному руководству "Системное программное обеспечение S7-300/400. Системные и стандартные функции". В книгах "Программируемые контроллеры S7-300.

Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7-400. Данные модулей. Справочное руководство" объясняется, какие SFB и SFC доступны.

4.2.4Организационные блоки для обработки программ, управляемой прерываниями

4.2.4.1Организационные блоки для обработки программ, управляемой прерываниями

Через ОВ прерываний, CPU S7 обеспечивают следующие возможности:

секции программы могут исполняться в определенные моменты времени или через определенные интервалы (управление по времени)

ваша программа может реагировать на внешние сигналы от процесса

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

Типы и применения прерываний

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

Тип прерывания

ОВ прерываний

Примеры применения

Прерывание по времени

OB10 − OB17

Расчет общего расхода жидкости в процессе

 

 

смешивания к концу смены

Прерывание с задержкой

OB20 − OB23

Управление вентилятором, который должен

 

 

продолжать работать в течение 20 с после

 

 

выключения двигателя

Циклическое прерывание

OB30 − OB38

Опрос уровня сигнала для системы управления

 

 

по замкнутому контуру

Аппаратное прерывание

OB40 − OB47

Сообщение о достижении максимального

 

 

уровня в резервуаре

4-26

Programming with STEP 7 V5.3

A5E00261405-01

Основы проектирования структуры программы

4.2.4.2Организационные блоки прерываний по времени (OB10

OB17)

CPU S7 предоставляют в распоряжение ОВ прерываний по времени суток, которые могут исполняться в указанный день или через определенные интервалы времени.

Прерывания по времени суток могут запускаться следующим образом:

однократно в определенное время (указанное в абсолютной форме с датой)

периодически при указании стартового времени и интервала, с которым прерывание должно повторяться (например, ежеминутно, ежечасно, ежедневно).

Правила для прерываний по времени

Прерывания по времени могут исполняться только тогда, когда прерыванию были назначены параметры и в программе пользователя существует соответствующий организационный блок. Если это не так, в диагностический буфер вносится сообщение об ошибке и выполняется обработка асинхронной ошибки (ОВ80, см. Организационные блоки обработки ошибок (ОВ70 − ОВ87 /

ОВ121 − ОВ122)).

Периодические прерывания по времени должны соответствовать реальной дате. Повторение ОВ10 ежемесячно, начиная с 31 января, невозможно. В этом случае ОВ будет запускаться только в месяцы, имеющие 31 день.

Прерывание по времени, активизированное во время запуска (теплого или горячего рестарта) исполняется только после завершения запуска.

ОВ прерываний по времени, отмененные при назначении параметров, не могут быть запущены. CPU распознает ошибку программирования и переходит в STOP.

После теплого рестарта прерывания по времени должны быть установлены заново (например, с помощью SFC30 ACT_TINT в программе запуска).

Запуск прерывания по времени

Чтобы дать CPU возможность запустить прерывание по времени, Вы должны сначала установить, а затем активизировать это прерывание. Существуют три способа запуска этого прерывания:

автоматический запуск прерывания по времени путем назначения подходящих параметров с помощью STEP 7 (блок параметров ”time-of-day interrupts [прерывания по времени]")

установка и активизация прерывания по времени с помощью SFC28 SET_TINT и SFC30 ACT_TINT из программы пользователя

установка прерывания по времени путем назначения параметров с помощью STEP 7 и его активизация с помощью SFC30 ACT_TINT в программе пользователя.

Опрос прерываний по времени

Чтобы запросить, какие прерывания по времени установлены и на какое время они настроены, Вы можете выполнить одно из следующих действий:

вызвать SFC31 QRY_TINT

Programming with STEP 7 V5.3

4-27

A5E00261405-01

Основы проектирования структуры программы

запросить список ”interrupt status [состояние прерываний]" из списка состояний системы.

Деактивизация прерываний по времени

Вы можете деактивировать еще не исполненные прерывания по времени с помощью SFC29 CAN_TINT. Деактивированные прерывания по времени могут быть снова установлены с помощью SFC28 SET_TINT и активизированы с помощью SFC30 ACT_TINT.

Приоритет ОВ прерываний по времени

Все восемь ОВ прерываний по времени по умолчанию имеют один и тот же класс приоритета (2) и поэтому обрабатываются в порядке возникновения событий запуска. Однако Вы можете изменить этот класс приоритета выбором подходящих параметров.

Изменение установленного времени

Вы можете изменить время, установленное для прерывания следующим образом:

мастер часов синхронизирует время для ведущих и ведомых

для установки нового времени в программе пользователя может быть вызван SFC0 SET_CLK.

Реакция на изменение времени

Следующая таблица показывает, как прерывания по времени реагируют на изменение времени.

Если...

То...

время было передвинуто вперед и

запускается OB80, и пропущенные прерывания

одно или более прерываний по

по времени вводятся в стартовую информацию

времени были пропущены,

OB80.

 

 

Вы деактивировали пропущенные

пропущенные прерывания по времени более не

прерывания по времени в OB80,

исполняются.

Вы не деактивировали

первое пропущенное прерывание по времени

пропущенные прерывания по

выполняется, а остальные игнорируются.

времени в OB80,

 

в результате сдвига времени назад

выполнение прерывания по времени не

какое-либо из событий для

повторяется.

прерываний по времени

 

происходит снова,

 

4.2.4.3 Организационные блоки прерываний с задержкой (OB20

OB23)

CPU S7 предоставляют в распоряжение ОВ прерываний с задержкой, с помощью которых Вы можете программировать отложенное исполнение частей своей пользовательской программы.

4-28

Programming with STEP 7 V5.3

A5E00261405-01

Основы проектирования структуры программы

Правила для прерываний с задержкой

Прерывания с задержкой могут исполняться только при наличии соответствующего организационного блока в программе CPU. Если это не так, то в диагностический буфер вносится сообщение об ошибке и производится обработка асинхронной ошибки (ОВ80, Организационные блоки обработки ошибок (ОВ70 − ОВ87 / ОВ121 − OB122)).

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

Прерывания с задержкой запускаются, когда истекло время, указанное в

SFC32 SRT_DINT.

Запуск прерывания с задержкой

Для запуска прерывания с задержкой Вы должны указать в SFC32 время задержки, по истечении которого вызывается соответствующий ОВ прерываний с задержкой. За информацией о максимально разрешенной величине задержки времени обратитесь к литературе "Программируемые контроллеры S7-300. Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7-400. Данные модулей. Справочное руководство».

Приоритет ОВ прерываний с задержкой

По умолчанию для ОВ прерываний с задержкой установлены классы приоритета с 3 по 6. Вы можете назначить параметры для изменения классов приоритета.

4.2.4.4Организационные блоки циклических прерываний (OB30

OB38)

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

Циклические прерывания запускаются через определенные интервалы. Временем, от которого начинается отсчет интервалов, является переход из режима STOP в RUN.

Правила для циклических прерываний

При определении интервалов убедитесь, что между стартовыми событиями отдельных циклических прерываний имеется достаточно времени для обработки самих циклических прерываний.

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

Запуск циклического прерывания

Для запуска циклического прерывания Вы должны с помощью STEP 7 указать интервал в блоке параметров циклических прерываний. Этот интервал всегда представляет собой целое кратное от базового тактового интервала в 1 мс.

Интервал = n x базовый тактовый интервал в 1 мс.

Programming with STEP 7 V5.3

4-29

A5E00261405-01

Основы проектирования структуры программы

Каждый из восьми доступных ОВ циклических прерываний имеет интервал по умолчанию (см. следующую таблицу). Интервал по умолчанию становится действенным, когда загружается назначенный ему ОВ циклических прерываний. Однако Вы можете назначить параметры для изменения значений по умолчанию. Для получения информации о верхнем пределе обратитесь к руководствам "Программируемые контроллеры S7-300. Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7-400. Данные модулей. Справочное руководство".

Сдвиг фазы в циклических прерываниях

 

 

 

 

 

Во избежание одновременного запуска циклических прерываний от

 

различных ОВ и возможного при этом появления временной ошибки

 

(превышение времени цикла) Вы можете указать сдвиг фазы. Сдвиг фазы

гарантирует, что исполнение циклического прерывания откладывается на

определенное время после истечения интервала.

 

 

 

Сдвиг фазы = m х базовый тактовый интервал (где 0 ≤ m < n)

 

 

На следующем рисунке показано, как исполняется ОВ циклических

 

прерываний с фазовым сдвигом (OB37) в сравнении с циклическим

 

прерыванием без фазового сдвига (OB38).

 

 

 

 

Тактовый

 

 

 

 

 

 

 

 

импульс

 

 

 

 

 

 

 

 

OB 38

 

 

 

 

 

 

 

 

(n=8, m=0)

 

 

 

 

 

 

 

 

OB 37

 

 

 

 

 

 

 

 

(n=16, m=5)

 

 

 

 

 

 

 

 

0

8

16

16 + 5 24

32

32 + 5 40

48

48 +5

t [мс]

Приоритет ОВ циклических прерываний

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

ОВ циклических

Интервал в мс

Класс приоритета

прерываний

 

 

OB30

5000

7

OB31

2000

8

OB32

1000

9

OB33

500

10

OB34

200

11

OB35

100

12

OB36

50

13

OB37

20

14

OB38

10

15

4-30

Programming with STEP 7 V5.3

A5E00261405-01

Основы проектирования структуры программы

4.2.4.5Организационные блоки аппаратных прерываний (OB40

OB47)

CPU S7 предоставляет в распоряжение ОВ аппаратных прерываний, которые реагируют на сигналы от модулей (например, сигнальных модулей (SM), коммуникационных процессоров (СР), функциональных модулей (FM)). С помощью STEP 7 Вы можете установить, какой сигнал от параметрируемого цифрового или аналогового модуля запускает ОВ. В случае СР и FM используйте соответствующие диалоговые окна для назначения параметров.

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

Правила для аппаратных прерываний

Аппаратные прерывания могут быть исполнены только в том случае, если в программе CPU имеется соответствующий организационный блок. Если это не так, в диагностический буфер вносится сообщение об ошибке и выполняется обработка асинхронной ошибки (ОВ80, см. Организационные блоки обработки ошибок (ОВ70 − ОВ87 / ОВ121 − ОВ122)).

Если Вы при назначении параметров отменили ОВ аппаратных прерываний, то они не могут быть более запущены. CPU распознает ошибку программирования и переходит в STOP.

Назначение параметров сигнальным модулям, способным к аппаратным прерываниям

Каждый канал сигнального модуля, способного к аппаратным прерываниям, может запустить аппаратное прерывание. Поэтому в наборах параметров сигнальных модулей, способных к прерываниям, Вы должны с помощью STEP 7 указать следующее:

Чем будет запускаться аппаратное прерывание.

Какой ОВ аппаратных прерываний будет исполняться (по умолчанию для исполнения всех аппаратных прерываний назначается OB40).

С помощью STEP 7 активизируется генерирование аппаратных прерываний на функциональных модулях. Остальные параметры Вы назначаете в диалоговых окнах для назначения параметров этих функциональных модулей.

Приоритет ОВ аппаратных прерываний

По умолчанию приоритет для ОВ аппаратных прерываний относится к классу приоритета от 16 до 23. Вы можете назначить параметры для изменения классов приоритета.

Programming with STEP 7 V5.3

4-31

A5E00261405-01