Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_Контроллер S7-200.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
679.94 Кб
Скачать

Приоритет прерываний и постановка их в очередь

Прерывания обслуживаются S7–200 в порядке их возникновения с учетом соответствующей группы приоритета. В любой момент времени исполняется только одна программа обработки прерывания. Когда исполнение программы обработки прерывания начинается, программа исполняется до своего завершения. Она не может быть прервана другой программой обработки прерывания, даже если последняя имеет более высокий приоритет. Прерывания, возникающие во время обработки другого прерывания, ставятся в очередь для последующей обработки.

Три очереди прерываний и максимальное количество прерываний, которое они могут хранить, показаны в следующей таблице:

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

Пример

Эта программа считает от 0 до 255 в зависимости от входа I0.0:

- если он установлен, то программа считает обратно,

- а если нет, то программа считает прямо.

При 0 или 255 процесс счета завершается.

Эта программа является примером подпрограммы прерывания ввода/вывода. И имеет следующую структуру:

Main: Инициализация счетчика и присваивание подпрограмм прерываний;

INT_0: переход в режим прямого счета, если вход I0.0 не установлен;

INT_1: переход в режим обратного счета, если вход I0.0 установлен.

Основная программа

Основная программа при первом выполнении выполняет инициализацию счетчика, разблокирует и назначает подпрограмм прерываний на события.

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

Меркерный бит M0.0 отвечает за направление счета. Этот бит устанавливается в программах обработки прерываний. Логика управления счетчиком следующая:

Если меркер обратного счета не установлен

... и текущее значение счетчика меньше или равно 254

... и импульс 0.5 секунды

... и положительный фронт импульса,

то содержимое аккумулятора счетчика увеличивается на 1

Программы прерываний

Программа прерывания по событию INT 1 выполняется, если вход I0.0 выключается. При этом меркер M0.0 сбрасывается и основная программа будет вести обратный счет.

Программа INT0

Программа INT1

Команда вывода импульсов

Команда вывода импульсов PLS (в узле Counters) используется для управления функциями "Вывод последовательности импульсов" PTO и "Широтно-импульсная модуляция" PWM.

S7–200 имеет два генератора PTO/PWM, которые формируют или быструю последовательность импульсов, или широтно-модулированный импульсный сигнал. Один генератор поставлен в соответствие цифровому выходу Q0.0, другой генератор – цифровому выходу Q0.1.

Определенный адрес специальной памяти SM хранит для каждого генератора следующие данные: управляющий байт (8–битовое значение), количество импульсов (32–битовое значение без знака), а также период следования импульсов и значение ширины импульса (16–битовое значение без знака).

Генераторы PTO и PWM и регистр образа процесса совместно используют Q0.0 и Q0.1. Когда функция PTO или PWM активна на Q0.0 или Q0.1, то выходом управляет генератор PTO или PWM, а нормальное использование выхода заблокировано. На форму выходного сигнала не влияет ни состояние регистра образа процесса, ни принудительное присваивание значений выходам, ни выполнение команд непосредственного вывода.

Совет. Перед активизацией функции PTO или PWM установите значение регистра образа процесса для Q0.0 и Q0.1 в 0.

Когда генератор PTO/PWM не активен, управление выходом возвращается регистру образа процесса. Регистр образа процесса определяет начальное и конечное состояние импульсного выходного сигнала, вызывая его начало и завершение на высоком или низком уровне.

Конфигурирование и управление функциями PTO/PWM с помощью

битов специальной памяти

Команда PLS считывает данные, хранящиеся в указанных ячейках специальной памяти SM, и соответствующим образом программирует генератор PTO/PWM.

Байт SMB67 управляет PTO 0 или PWM 0, а байт SMB77 управляет PTO 1 или PWM 1 (таблица 6–36)

Вы можете изменить характеристики сигнала PTO или PWM, изменяя биты памяти в области SM (включая управляющий байт), а затем исполняя команду PLS. Вы можете в любое время заблокировать генерирование импульсов PTO или PWM, записав 0 в бит деблокировки PTO/PWM управляющего байта (SM67.7 или SM77.7), а затем исполняя команду PLS.

Бит бездействия PTO в байте состояния (SM66.7 или SM76.7) предназначен для указания на завершение запрограммированной последовательности импульсов. Кроме того, по окончании последовательности импульсов может быть вызвана программа обработки прерываний.