21. Обработ ка прерываний
21 - 16 Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
функции SFC 32 SRT_DINT; данная системная функция передает
операционной системе значение временного интервала и номер
выбранного организационного блока. После того, как истекает заданный
временной интервал, происходит вызов определенного организационного
блока.
Вы можете отменить обслуживание прерывания с задержкой обработки
(time-delay interrupts) посредством системной функции SFC 33 CAN_DINT,
в результате чего связанный с этим прерыванием OB не будет более
вызываться.
Вы можете также запросить информацию о состоянии прерывания с
задержкой обработки, используя системную функцию SFC 34 QRY_DINT.
Прерывания с задержкой обработки во время запуска
Во время "х олодного" (cold) перезапуска или полного (complete)
перезапуска операционная система стирает все установки, сделанные
для прерывания с задержкой обработки (time-delay interrupts). При
"теплом" (warm) перезапуске установки сохраняются, пока идет обработка
в рабочем режиме RUN, в то время как "оставшаяся часть" цикла
считается частью подпрограммы запуска (start-up).
Вы можете запускать прерывание с задержкой обработки в подпрограмме
запуска (start-up), вызывая системную функцию SFC 32. В момент, когда
будет закончен временной интервал прерывания (интервал отсчета
задержки) CPU должен находиться в состоянии рабочего режима RUN,
для того чтобы обеспечить выполнение связанного с прерыванием
организационного блока. Если это условие не выполняется, CPU будет
ждать окончания выполнения подпрограммы запуска (start-up), и лишь
затем вызовет для выполнения связанный с прерыванием
организационный блок; все это происходит до обработки первого
сегмента основной программы.
Прерывания с задержкой обработки и ситуации сбоя (ошибки)
Если вызывается OB обработки прерывания с задержкой обработки (time-
delay interrupts), но данный OB не запрограммирован, то операционная
система вызывает OB 85 (организационный блок обработки ошибок,
возникающих при выполнении программы). Если OB 85 не
запрограммирован, CPU переходит в режим STOP. Если истек временной
интервал (интервал отсчета задержки) и вызывается OB обработки
данного прерывания, для которого в пользовательской программе уже
выпол няется соответствующий организационный блок, то операционная
система вызывает OB 80 (организационный блок обработки временных
ошибок [timing error]) или переходит в режим STOP, ес ли OB 80
недоступен в пользовательской программе.
Прерывание с задержкой обработки, которое поступило, но не было
обработано из-за того, что выполнялась параметризация CPU, не сможет
быть обработано, даже если соответствующий организационный блок
был запрограммирован. В этом случае CPU пере ходит в режим STOP.
Блокировка (disabling), задержка (delaying) и разблокировка (enabling)
Вызов организационных блоков обработки прерываний с задержкой