21. Обработ ка прерываний
21 - 2 Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
Другие прерывания вызываются такими событиями, как синхронные
ошибки, которые могут происходить при сканировании программы, и
асинхронные ошибки, которыми могут являться, например,
диагностические прерывания. Обработка этих событий обсуждается в
главе 23 "Обработка ошибок".
Приоритеты
Событие с более высоким приоритетом прерывает выполняемую
программу обработки некоторого события с более низким приоритетом.
Основная программа (main program) имеет самый низкий приоритет (она
относится к приоритетному классу 1), асинхронные ошибки имеют самый
высокий приоритет (относятся к приоритетному классу 26), не учитывая
программу запуска (start-up routine). Все остальные события относятся к
приоритетным классам, занимающим промежуточное положение в ряду
приоритетов. В системах S7-300 приоритеты фиксированы; в системах S7-
400 Вы можете самостоятельно изменять приоритеты пр и
параметризации CPU.
Обзор всех приоритетных классов, а также организационные блоки, по
умолчанию назначенные для каж дого из них, рассматриваются в разделе
3.1.2 "Классы приоритетов".
Блокировка прерываний
Выполнение организационных блоков, запускаемых для обработки
отдельных событий при сканировании программы, может быть
заблокировано (disable) или, наоборот, разрешено (enable) с помощью
системных функций SFC 39 DIS_IRT и SFC 40 EN_IRT соответственно, а
может также быть заблокировано на время (т.е., отложено), а затем вновь
разблокировано с помощью системных функций SFC 41 DIS_AIRT и SFC
42 EN_AIRT соответственно (см. раздел 21.7 "Обработка прерываний").
Текущие состояния сигналов
Нужно учитывать, что при выполнении программы обработки прерываний
Вы должны иметь дело с текущими состояниями сигналов от I/O модулей
(а не с состояниями сигналов входов, которые обновляются в начале
выполнения основной программы), и должны записывать состояния
выбранных сигналов непосредственно в I/O (не дожидаясь, пока таблица
выхо дов образа процесса будет обнов лена по окончании обработки
основной программы).
В случае использования нескольки х входов и выходов I/O модулей при
выполнении программы, обрабатывающей прерывание, для доступа к I/O
модулям достаточно использовать операции загрузки (load) и передачи
(transfer). В таком случае рекомендуется установить строгое
разграничение между главной программой и программой обработки
прерывания в отношении I/O сигналов.
Если необходимо обрабатывать множество входных и выходных сигналов
в программе обработки прерывания, то решением для систем S7-400
может быть использование нескольких образов подпроцессов (subprocess
image). При назначении адресов Вы можете назначить каждому модулю
отдельный образ подпроцесса. С помощью системных функций SFC 26