Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода S300.doc
Скачиваний:
54
Добавлен:
28.05.2015
Размер:
1.45 Mб
Скачать
    1. Особенности прерывания циклической обработки блоками ob2...Ob18

Реальный вызов и обработка блоков OB2...OB18 осуществляется не сразу при появлении запроса на прерывание. Анализ наличия прерываний производится на границе блоков (при смене обрабатываемого в циклической программе блока) (см. рис. 7). Анализируются все поступившие запросы, и вызывается организационный блок с высшим приоритетом. Самый высокий приоритет имеет блок с меньшим номером, с увеличением номера блока приоритет убывает. Затем системной программой блокируется обработка прерываний до команды BE вызванного организационного блока, т.е. все вложенные в OB блоки обрабатываются даже при наличии запроса на прерывание, имеющего более высокий приоритет. По окончании обработки вызванного OB прерывания разблокируются, и обрабатывается следующий по приоритету запрос. Продолжение циклической обработки программы происходит только по окончании обслуживания всех запросов на прерывание.

Для сокращения времени реакции на вызов блоков OB2...OB18 необходимо разбивать пользовательскую программу на большее количество программных и функциональных блоков. Время реакции на прерывание для блока с низшим приоритетом увеличивается соответственно на время обработки блоков, имеющих более высокий приоритет. Если выполнение программы по какой-либо причине не должно прерываться, то она должна находиться в одном блоке. Обработку по сообщению можно также блокировать командой AS. В этом случае обработка по сообщению не будет выполняться до команды AF.

(П) – точки прерывания, где может быть вставлена обработка по сообщению или обработка с управлением по времени;

(Н) – начальные и конечные точки обработки программы по сообщению или обработки с управлением по времени.

Рис. 7. Прерывание циклической обработки блоками OB2...OB18.

На примере вызова ОВ13 это выглядит так:

    1. Программные блоки

Для выделения структуры программы пользователя ее можно разделить на отдельные, функционально законченные фрагменты, которые программируются в программных блоках (PB). Программные блоки могут содержать тот же набор команд, что и организационные, но главное их назначение - разделение программы на смысловые куски.

Рис. 8. Организация программы при делении управления по уровням.

Для получения наглядной картины сложной или объемной программы рекомендуется, в свою очередь, разделение программных блоков по уровням управления. На рис. 8 показана структура программы, в которой PB1 и PB2 относятся к более высокому уровню управления по сравнению с программными блоками PB10, PB24, PB23 и функциональному блоку FB10. Самым высоким уровнем обладает организационный блок OB1.

В программе пользователя может быть до 256 программных блоков (PB0...PB255). Размер каждого блока ограничен только общим объемом кассеты пользователя. Управление программному блоку передается при его вызове из другого блока. Программные блоки могут включать в себя весь набор команд логического мнемокода, за исключением команд с формальными параметрами, а также допускают вызов и обработку вложенных блоков (рекомендуется до 8 вложений).