![](https://cv01.studmed.ru/view/fabd0fac512/bg64.png)
Основы проектирования структуры программы
Programming with STEP 7 V5.3
4-36 A5E00261405-01
Использование ОВ для синхронных ошибок
Синхронные ошибки возникают при исполнении конкретной команды. Когда
эти ошибки происходят, операционная система делает запись в стек
прерываний (I-стек) и запускает ОВ для синхронных ошибок.
ОВ ошибок, вызванные как результат синхронных ошибок, исполняются как
часть программы в том же классе приоритета, что и блок, который
исполнялся, когда ошибка была обнаружена. Поэтому
ОВ121 и ОВ122 могут
обращаться к тем значениям в аккумуляторах и других регистрах, которые в
них были во время возникновения прерывания. Вы можете использовать эти
значения для реагирования на сбойную ситуацию, а затем вернуться к
обработке своей программы (например, если происходит ошибка доступа на
аналоговом модуле ввода, Вы можете указать
заменяющее значение в
ОВ122 с помощью SFC44 RPL_VAL). Однако локальные данные ОВ ошибок
требуют дополнительного места в L-стеке этого класса приоритета.
В CPU S7-400 один ОВ синхронных ошибок может запустить другой ОВ
синхронных ошибок. В CPU S7-300 это невозможно.
Использование ОВ для асинхронных ошибок
Если операционная система CPU обнаруживает асинхронную ошибку, то она
запускает соответствующий ОВ ошибок (ОВ70 – ОВ72 и ОВ80 – ОВ87). ОВ
для асинхронных ошибок имеют наивысший приоритет и не могут быть
прерваны другими ОВ, если все ОВ асинхронных ошибок имеют одинаковый
приоритет. Если более одного ОВ асинхронных ошибок с одинаковым
приоритетом появляются одновременно, то
они обрабатываются в том
порядке, как они появились.
Маскирование стартовых событий
С помощью системных функций (SFC) Вы можете замаскировать, отложить
или заблокировать стартовые события для нескольких ОВ. За более
подробной информацией об этих SFC и организационных блоках обратитесь
к справочному руководству "Системное программное обеспечение для S7-300
и S7-400. Системные и стандартные функции".
Тип ОВ ошибок SFC Функция SFC
ОВ синхронных ошибок SFC36 MSK_FLT Маскирует отдельные синхронные ошибки.
Замаскированные не запускают ОВ ошибок и
запрограммированные реакции
SFC37 DMSK_FLT Демаскирует синхронные ошибки
ОВ асинхронных
ошибок
SFC39 DIS_IRT Блокирует все прерывания и асинхронные ошибки.
Блокированные ошибки не запускают ОВ ошибок ни
в одном из последующих циклов CPU и не запускают
запрограммированные реакции
SFC40 EN_IRT Разблокирует прерывания и асинхронные ошибки
SFC41 DIS_AIRT Откладывает прерывания более высокого
приоритета и асинхронные ошибки до конца OB
SFC42 EN_AIRT Разблокирует прерывания более высокого
приоритета и асинхронные ошибки