Тип прерывания |
ОВ прерываний |
Примеры применения |
|
|
задержкой |
|
должен продолжать |
работать в |
|
|
|
течение 20 с после выключения |
||
|
|
двигателя |
|
|
Циклическое |
OB30 − OB38 |
Опрос уровня сигнала для системы |
||
прерывание |
|
управления по замкнутому контуру |
||
Аппаратное |
OB40 − OB47 |
Сообщение |
о |
достижении |
прерывание |
|
максимального уровня в резервуаре |
||
ОРГАНИЗАЦИОННЫЕ БЛОКИ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ (OB10 − OB17)
CPU S7 предоставляют в распоряжение ОВ прерываний по времени суток, которые могут исполняться в указанный день или через определенные интервалы времени.
Прерывания по времени суток могут запускаться следующим образом:
•однократно в определенное время (указанное в абсолютной форме с
датой);
•периодически при указании стартового времени и интервала, с которым прерывание должно повторяться (например, ежеминутно, ежечасно, ежедневно).
ПРАВИЛА ДЛЯ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ
Прерывания по времени могут исполняться только тогда, когда прерыванию были назначены параметры и в программе пользователя существует соответствующий организационный блок. Если это не так, в диагностический буфер вносится сообщение об ошибке и выполняется обработка асинхронной ошибки (ОВ80, см. Организационные блоки обработки ошибок (ОВ70 − ОВ87 / ОВ121 − ОВ122)).
Периодические прерывания по времени должны соответствовать реальной дате. Повторение ОВ10 ежемесячно, начиная с 31 января, невозможно. В этом случае ОВ будет запускаться только в месяцы, имеющие 31 день.
Прерывание по времени, активизированное во время запуска (теплого или горячего рестарта) исполняется только после завершения запуска.
ОВ прерываний по времени, отмененные при назначении параметров, не могут быть запущены. CPU распознает ошибку программирования и переходит в STOP.
После теплого рестарта прерывания по времени должны быть установлены заново (например, с помощью SFC30 ACT_TINT в программе запуска).
25
ЗАПУСК ПРЕРЫВАНИЯ ПО ВРЕМЕНИ
Чтобы дать CPU возможность запустить прерывание по времени, вы должны сначала установить, а затем активизировать это прерывание. Существуют три способа запуска этого прерывания:
•автоматический запуск прерывания по времени путем назначения подходящих параметров с помощью STEP 7 (блок параметров ”time-of-day interrupts [прерывания по времени]")
•установка и активизация прерывания по времени с помощью SFC28 SET_TINT и SFC30 ACT_TINT из программы пользователя
•установка прерывания по времени interrupt путем назначения параметров с помощью STEP 7 и его активизация с помощью SFC30 ACT_TINT
впрограмме пользователя.
ОПРОС ПРЕРЫВАНИЙ ПО ВРЕМЕНИ
Чтобы запросить, какие прерывания по времени установлены и на какое время они настроены, вы можете выполнить одно из следующих действий:
•вызвать SFC31 QRY_TINT;
•запросить список ”interrupt status [состояние прерываний]" из списка состояний системы.
ДЕАКТИВИЗАЦИЯ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ Вы можете деактивировать еще не исполненные прерывания по времени
спомощью SFC29 CAN_TINT. Деактивированные прерывания по времени могут быть снова установлены с помощью SFC28 SET_TINT и активизированы
спомощью SFC30 ACT_TINT.
ПРИОРИТЕТ ОВ ПРЕРЫВАНИЙ ПО ВРЕМЕНИ
Все восемь ОВ прерываний по времени по умолчанию имеют один и тот же класс приоритета (2) и поэтому обрабатываются в порядке возникновения событий запуска. Однако вы можете изменить этот класс приоритета выбором подходящих параметров.
ИЗМЕНЕНИЕ УСТАНОВЛЕННОГО ВРЕМЕНИ
Вы можете изменить время, установленное для прерывания следующим образом:
•мастер часов синхронизирует время для master- и slave-устройств;
•для установки нового времени в программе пользователя может быть вызван SFC0 SET_CLK.
РЕАКЦИЯ НА ИЗМЕНЕНИЕ ВРЕМЕНИ
Следующая таблица показывает, как прерывания по времени реагируют на изменение времени.
26
Если... |
|
|
|
|
То... |
|
|
|
время было передвинуто вперед и |
запускается |
OB80, |
и |
пропущенные |
||||
одно или более прерываний по |
прерывания по времени вводятся в |
|||||||
времени были пропущены |
|
стартовую информацию OB80. |
||||||
вы деактивировали пропущенные |
пропущенные |
прерывания |
по времени |
|||||
прерывания по времени в OB80 |
более не исполняются. |
|
|
|||||
вы |
не |
деактивировали |
первое пропущенное |
прерывание по |
||||
пропущенные |
прерывания |
по |
времени выполняется, а остальные |
|||||
времени в OB80 |
|
|
|
игнорируются. |
|
|
|
|
в результате сдвига времени назад |
выполнение прерывания по времени не |
|||||||
какое-либо из |
событий |
для |
повторяется. |
|
|
|
||
прерываний |
по |
времени |
|
|
|
|
||
происходит снова |
|
|
|
|
|
|
||
ОРГАНИЗАЦИОННЫЕ БЛОКИ ПРЕРЫВАНИЙ С ЗАДЕРЖКОЙ (OB20 − OB23)
CPU S7 предоставляют в распоряжение ОВ прерываний с задержкой, с помощью которых вы можете программировать отложенное исполнение частей своей пользовательской программы.
Правила для прерываний с задержкой
Прерывания с задержкой могут исполняться только при наличии соответствующего организационного блока в программе CPU. Если это не так, то в диагностический буфер вносится сообщение об ошибке и производится обработка асинхронной ошибки (ОВ80, Организационные блоки обработки ошибок (ОВ70 − ОВ87 / ОВ121 − OB122)).
ОВ прерываний с задержкой, отмененные при назначении параметров, не могут быть запущены. CPU распознает ошибку программирования и переходит в STOP.
Прерывания с задержкой запускаются, когда истекло время, указанное в
SFC32 SRT_DINT.
Запуск прерывания с задержкой
Для запуска прерывания с задержкой вы должны указать в SFC32 время задержки, по истечении которого вызывается соответствующий ОВ прерываний с задержкой. За информацией о максимально разрешенной величине задержки времени обратитесь к литературе "Программируемые контроллеры S7-300. Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7-400. Данные модулей. Справочное руководство".
Приоритет ОВ прерываний с задержкой По умолчанию для ОВ прерываний с задержкой установлены классы
27
приоритета с 3 по 6. Вы можете назначить параметры для изменения классов приоритета.
ОРГАНИЗАЦИОННЫЕ БЛОКИ ЦИКЛИЧЕСКИХ ПРЕРЫВАНИЙ (OB30 − OB38)
CPU S7 предоставляют в распоряжение ОВ циклических прерываний, которые прерывают циклическую обработку программы через определенные интервалы.
Циклические прерывания запускаются через определенные интервалы. Временем, от которого начинается отсчет интервалов, является переход из режима STOP в RUN.
Правила для циклических прерываний
При определении интервалов убедитесь, что между стартовыми событиями отдельных циклических прерываний имеется достаточно времени для обработки самих циклических прерываний.
Если вы назначаете параметры для отмены ОВ циклических прерываний, то они не могут быть более запущены. CPU распознает ошибку программирования и переходит в STOP.
Запуск циклического прерывания
Для запуска циклического прерывания вы должны с помощью STEP 7 указать интервал в блоке параметров циклических прерываний. Этот интервал всегда представляет собой целое кратное от базового тактового интервала в 1 мс.
Интервал = n x базовый тактовый интервал в 1 мс.
Каждый из восьми доступных ОВ циклических прерываний имеет интервал по умолчанию (см. следующую таблицу). Интервал по умолчанию становится действенным, когда загружается назначенный ему ОВ циклических прерываний. Однако вы можете назначить параметры для изменения значений по умолчанию. Для получения информации о верхнем пределе обратитесь к руководствам "Программируемые контроллеры S7-300. Аппаратное обеспечение и руководство по монтажу" и "Система автоматизации S7-400, M7400. Данные модулей. Справочное руководство".
Сдвиг фазы в циклических прерываниях
Во избежание одновременного запуска циклических прерываний от различных ОВ и возможного при этом появления временной ошибки (превышение времени цикла) вы можете указать сдвиг фазы. Сдвиг фазы гарантирует, что исполнение циклического прерывания откладывается на определенное время после истечения интервала.
Сдвиг фазы = m х базовый тактовый интервал (где 0 m < n)
На следующем рисунке показано, как исполняется ОВ циклических прерываний с фазовым сдвигом (OB37) в сравнении с циклическим
28
прерыванием без фазового сдвига (OB38). |
|
|
|
|
|||
Тактовый |
|
|
|
|
|
|
|
импульс |
|
|
|
|
|
|
|
OB 38 |
|
|
|
|
|
|
|
(n=8, m=0) |
|
|
|
|
|
|
|
OB 37 |
|
|
|
|
|
|
|
(n=16, m=5) |
|
|
|
|
|
|
|
0 |
8 |
16 |
24 |
32 |
40 |
48 |
t [мс] |
|
|
|
16 + 5 |
|
32 + 5 |
|
48 +5 |
|
Приоритет ОВ циклических прерываний |
|
|||||
В следующей таблице показаны интервалы по умолчанию и классы приоритета ОВ циклических прерываний. Вы можете назначить параметры для изменения интервала и класса приоритета.
ОВ |
Интервал в мс |
Класс приоритета |
циклических |
|
|
прерываний |
|
|
OB30 |
5000 |
7 |
OB31 |
2000 |
8 |
OB32 |
1000 |
9 |
OB33 |
500 |
10 |
OB34 |
200 |
11 |
OB35 |
100 |
12 |
OB36 |
50 |
13 |
OB37 |
20 |
14 |
OB38 |
10 |
15 |
ОРГАНИЗАЦИОННЫЕ БЛОКИ АППАРАТНЫХ ПРЕРЫВАНИЙ
(OB40 − OB47)
CPU S7 предоставляет в распоряжение ОВ аппаратных прерываний, которые реагируют на сигналы от модулей (например, сигнальных модулей (SM), коммуникационных процессоров (СР), функциональных модулей (FM)). С помощью STEP 7 вы можете установить, какой сигнал от параметрируемого цифрового или аналогового модуля запускает ОВ. В случае СР и FM используйте соответствующие диалоговые окна для назначения параметров.
Аппаратные прерывания запускаются, когда сигнальный модуль, способный на аппаратные прерывания и с разрешенным аппаратным прерыванием, передает полученный от процесса сигнал на CPU или когда функциональный модуль CPU сигнализирует о прерывании.
29