Материал: Основы программирования микроконтроллеров на языке step 7. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Правила для аппаратных прерываний

Аппаратные прерывания могут быть исполнены только в том случае, если в программе CPU имеется соответствующий организационный блок. Если это не так, в диагностический буфер вносится сообщение об ошибке и выполняется обработка асинхронной ошибки (ОВ80, см. Организационные блоки обработки ошибок (ОВ70 ОВ87 / ОВ121 ОВ122)).

Если вы при назначении параметров отменили ОВ аппаратных прерываний, то они не могут быть более запущены. CPU распознает ошибку программирования и переходит в STOP

Назначение параметров сигнальным модулям, способным к аппаратным прерываниям

Каждый канал сигнального модуля, способного к аппаратным прерываниям, может запустить аппаратное прерывание. Поэтому в наборах параметров сигнальных модулей, способных к прерываниям, вы должны с помощью STEP 7 указать следующее:

Чем будет запускаться аппаратное прерывание;

Какой ОВ аппаратных прерываний будет исполняться (по умолчанию для исполнения всех аппаратных прерываний назначается OB40).

Спомощью STEP 7 активизируется генерирование аппаратных прерываний на функциональных модулях. Остальные параметры вы назначаете

вдиалоговых окнах для назначения параметров этих функциональных модулей.

Приоритет ОВ аппаратных прерываний

По умолчанию приоритет для ОВ аппаратных прерываний относится к классу приоритета от 16 до 23. Вы можете назначить параметры для изменения классов приоритета.

ОРГАНИЗАЦИОННЫЕ БЛОКИ ЗАПУСКА (OB100 / OB101 / OB102)

Типы запуска Имеется три различных типа запуска:

горячий рестарт (отсутствует в S7-300 и S7-400H);

теплый рестарт;

холодный рестарт.

Вследующей таблице показано, какие ОВ вызывает операционная система при каждом типе запуска:

Тип запуска

Соответствующий ОВ

Горячий рестарт

OB101

Теплый рестарт

OB100

Холодный рестарт

OB102

30

Стартовые события для ОВ запуска CPU выполняет запуск после следующих событий:

после включения питания;

после перевода переключателя режимов из STOP в RUN/RUN-P;

после запроса от коммуникационной функции;

после синхронизации в мультипроцессорном режиме;

в H-системе после установления связи (только на резервном CPU).

Взависимости от стартового события, используемого CPU, и его установленных параметров вызывается соответствующий ОВ запуска (ОВ100,

ОВ101 или ОВ102).

Программа запуска

Вы можете указать условия для запуска своего CPU (инициализирующие значения для RUN, пусковые значения для модулей ввода/вывода) путем записи своей программы запуска в организационный блок ОВ100 для теплого рестарта, ОВ101 для горячего рестарта или ОВ102 для холодного рестарта.

Нет ограничений по длине и времени выполнения программы запуска, так как контроль цикла еще не активен. В стартовой программе невозможно исполнение под управлением времени или под управлением прерываний. Во время запуска все цифровые выходы имеют сигнальное состояние 0.

Тип запуска после ручного рестарта

На CPU S7-300 возможен только ручной теплый или холодный рестарт

(только CPU 318-2).

На некоторых CPU S7-400 вы можете вручную выполнять запуск с помощью переключателя режимов и переключателя типа запуска (CRST/WRST), если это разрешено при назначении параметров, которое вы выполнили с помощью STEP 7. Ручной теплый запуск возможен без специального назначения параметров.

Тип запуска после автоматического рестарта

На CPU S7-300 после включения питания возможен только теплый рестарт.

На CPU S7-400 вы можете указать, ведет ли автоматический запуск после включения питания к теплому или к горячему рестарту.

Очистка образа процесса

Когда перезапускается CPU S7-400, исполняется оставшаяся часть цикла, а таблица образа процесса на выходах по умолчанию очищается. Вы можете предотвратить очистку образа процесса, если хотите, чтобы программа пользователя продолжала работать со старыми значениями после перезапуска.

31

Контроль существования и типа модулей

При установке параметров вы можете решить, будут ли проверяться перед запуском модули в конфигурационной таблице, чтобы убедиться, что они существуют и что тип модуля совпадает с заданным.

Если контроль модулей активизирован, то CPU не запустится при обнаружении расхождений между конфигурационной таблицей и фактической конфигурацией.

Времена контроля

Чтобы убедиться, что программируемый контроллер запускается без ошибок, вы можете выбрать следующие времена контроля:

максимально допустимое время для передачи параметров модулям;

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

на CPU S7-400 максимальное время прерывания, после которого разрешен горячий рестарт.

Как только времена контроля истекают, CPU или переходит в STOP, или возможен только теплый рестарт.

ФОНОВЫЙ ОРГАНИЗАЦИОННЫЙ БЛОК (OB90)

Если вы определили минимальное время цикла с помощью STEP 7, и это время больше, чем время текущего цикла, то у CPU в конце циклической программы еще есть время для работы. Это время используется для исполнения фонового ОВ. Если в вашем CPU ОВ 90 не существует, то CPU ждет, пока не истечет указанное минимальное время цикла. Следовательно, вы можете использовать ОВ90 для процессов, в которых время не является критическим для работы, и, таким образом, избежать потерь времени на ожидание.

Приоритет фонового ОВ

Фоновый ОВ относится к классу приоритета 29, что соответствует приоритету 0,29. Таким образом, этот ОВ имеет самый низкий приоритет. Его класс приоритета не может быть изменен при назначении параметров.

Программирование ОВ90

Время работы ОВ90 не контролируется операционной системой CPU, так что вы можете программировать в ОВ90 циклы любой длины. Обеспечьте непротиворечивость данных, используемых вами в фоновой программе, принимая во внимание следующее:

события сброса OB90 (см. справочное руководство "Системное программное обеспечение для S7-300 и S7-400, Системные и стандартные функции");

обновление образа процесса асинхронно по отношению к OB90.

32

ОРГАНИЗАЦИОННЫЕ БЛОКИ ОБРАБОТКИ ОШИБОК

(OB70 OB87 / OB121 OB122)

Типы ошибок

Ошибки, которые могут быть обнаружены CPU S7 и на которые вы можете реагировать с помощью организационных блоков, можно разделить на две основные категории:

Синхронные ошибки: эти ошибки могут быть поставлены в соответствие конкретной части программы пользователя. Эта ошибка происходит во время выполнения конкретной команды. Если соответствующий ОВ синхронных ошибок не загружен, то CPU при возникновении ошибки переходит в STOP;

Асинхронные ошибки: эти ошибки не могут быть непосредственно поставлены в соответствие исполняемой программе пользователя. Это ошибки класса приоритета, неисправности программируемого логического контроллера (например, дефектный модуль) или ошибки резервирования. Если соответствующий ОВ асинхронных ошибок не загружен, то CPU при возникновении ошибки переходит в STOP (исключения: OB70, OB72, OB81).

На следующем рисунке показаны типы ошибок, которые могут возникнуть, разделенные на категории в соответствии с ОВ ошибок.

Асинхронные

ошибки/Ошибки

Синхронные ошибки

 

резервирования

 

 

 

ОВ ошибок

 

ОВ ошибок

 

ОВ 70 ошибки резервирования

ОВ 121 ошибка программирования

входа/выхода (только в H CPU)

(например, DB не загружен)

ОВ 72 ошибка резервирования CPU

ОВ 122 ошибка

доступа к

(только в H CPU, напр. неисправность

входу/выходу (например, обращение к

CPU)

 

несуществующему

модулю

 

 

ввода/вывода)

 

ОВ 80 ошибка времени (например,

 

 

превышено время цикла

 

 

ОВ 81 ошибка источника питания

 

 

(например, проблемы с батареей)

 

 

ОВ 82 диагностическое прерывание

 

 

(например, короткое замыкание в

 

 

модуле ввода)

 

 

 

ОВ 83 ошибка при установке/снятии

 

 

модуля (например, удален модуль

 

 

вывода)

 

 

 

33

ОВ 84 аппаратная неисправность CPU с(неисправность в интерфейсе с cетью MPI)

ОВ 85 ошибка класса приоритета (например, ОВ не загружен)

ОВ 86 ошибка стойки

ОВ 87 коммуникационная ошибка (например, неверный идентификатор при связи с помощью глобальных данных)

Использование ОВ для синхронных ошибок

Синхронные ошибки возникают при исполнении конкретной команды. Когда эти ошибки происходят, операционная система делает запись в стек прерываний (I-стек) и запускает ОВ для синхронных ошибок.

ОВ ошибок, вызванные как результат синхронных ошибок, исполняются как часть программы в том же классе приоритета, что и блок, который исполнялся, когда ошибка была обнаружена. Поэтому ОВ121 и ОВ122 могут обращаться к тем значениям в аккумуляторах и других регистрах, которые в них были во время возникновения прерывания. Вы можете использовать эти значения для реагирования на сбойную ситуацию, а затем вернуться к обработке своей программы (например, если происходит ошибка доступа на аналоговом модуле ввода, вы можете указать заменяющее значение в ОВ122 с помощью SFC44 RPL_VAL). Однако локальные данные ОВ ошибок требуют дополнительного места в L-стеке этого класса приоритета.

В CPU S7-400 один ОВ синхронных ошибок может запустить другой ОВ синхронных ошибок. В CPU S7-300 это невозможно.

Использование ОВ асинхронных ошибок

Если операционная система CPU обнаруживает асинхронную ошибку, то она запускает соответствующий ОВ ошибок (ОВ70 – ОВ72 и ОВ80 – ОВ87). ОВ для асинхронных ошибок имеют наивысший приоритет и не могут быть прерваны другими ОВ, если все ОВ асинхронных ошибок имеют одинаковый приоритет. Если более одного ОВ асинхронных ошибок с одинаковым приоритетом появляются одновременно, то они обрабатываются в том порядке, как они появились.

Маскирование стартовых событий

С помощью системных функций (SFC) вы можете замаскировать, отложить или заблокировать стартовые события для нескольких ОВ. За более подробной информацией об этих SFC и организационных блоках обратитесь к справочному руководству "Системное программное обеспечение для S7-300 и

34

Смотрите также:

12
1673
271
2863
2994
3788
3857
54
5719
605