Основы разработки программы
Программирование в STEP 7 Lite V2.0
A5E00142284-01 2-23
Использование OB синхронных ошибок
Синхронные ошибки возникают во время исполнения конкретной команды.
Когда происходит ошибка, операционная система делает запись в I-стэк
(стек прерываний) и запускает OB синхронных ошибок.
OB ошибок, вызванный в результате синхронной ошибки, выполняется как
часть программы с классном приоритета того блока, в котороем
произошла ошибка. Поэтому OB121 и OB122 могут обращаться к
значениям аккумуляторов и других регистров, которые были в них в
момент возникновения ошибки. Вы можете использовать эти значения,
чтобы обработать сбойную ситуацию и вернуться в выполнению своей
программы (например, если возникает ошибка доступа в аналоговом
модуле, Вы можете определить заменяющее значение в OB122,
используя SFC44 RPL_VAL). Однако локальные данные OB ошибок
требуют дополнительного места в L-стеке этого класса приоритета.
Использование OB асинхронных ошибок
Если опереционная система ЦПУ обнаруживает асинхронную ошиюку, она
запускает соответствующий OB ошибок (OB80 - OB87). OB асинхроных
ошибок имеют наивысший приоритет и не могут быть прерваны другими
OB, если все OB асинхроных ошибок имеют одинаковый приоритет. Если
одновременно происходит вызов более одного OB асинхроных ошибок, то
они обрабатываются в порядке вызова.
Маскирование стартовых событий
Используя сист емные функции (SFC), Вы можете маскировать, отложить
или заблокировать стартовые события для нескольких OB.
Дополнительную информацию об SFC и организационных блоках Вы
найдете в справочном руководстве " System Software for S7-300 and S7-
400, System and Standard Functions [Системное программное
обеспечение для S7-300 и S7-400: системные и стандартные функции]".
Тип OB ошибок SFC Функция SFC
OB синхронных ошибок SFC36 MSK_FLT Маскирует отдельные синхронные ошибки.
Маскированные ошибки не запускают OB ошибок и
не запускают запрограммированные действия.
SFC37 DMSK_FLT Демаскирует синхронные ошибки
OB асинхронных
ошибок
SFC39 DIS_IRT Блокирует все прерывания и асинхронные ошибки.
Заблокированные ошибки не запускают OB ошибок
ни в одном из последующих циклов ЦПУ и не
запускают запрограммированные действия.
SFC40 EN_IRT Разблокирует прерывания и асинхронные ошибки
SFC41 DIS_AIRT Откладывает прерывания с более высоким
приоритетот и асинхронные ошибки до конца OB
SFC42 EN_AIRT Разблокирует прерывания с более высоким и
асинхронные ошибки
Замечание
Если вы хотите, чтобы прерывания игнорировались, будет более
эффективно заблокировать их, использую SFC, чем загружать пустой OB
(содержащий BE).