step7-pro
голосование
Чего не хватает сайту
поиска
новых статей
статей о подключении оборудования
примеров решения задач
форума
ничего не нужно
поиск


новости
Появился поиск по сайту. Обещаю его улучшить и сделать более адекватным
--------------11.10.11
Новая гостевая книга надеюсь избавит от спама. Еще немного и появится поис и многое другое
--------------11.07.11
C НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ!
--------------30.12.10
Новые статьи по системным функциям и блокам
--------------25.12.10
Теперь у нас новый дизайн, конечно не супер но надеюсь всем понравиться
--------------05.12.10
Форум закрыт по причине ненадобности
--------------08.09.10
Гостевая книга временно отключена из спама
--------------15.10.10
Наш форум forum.step7-pro.ru общайтесь на здоровье!
--------------03.06.10
Наш сайт в twitter Вы сможете подписаться на рассылку новостей и узнавать о новых статьях на нашем сайте.
--------------20.03.10
После долгого перерыва наш сайт снова начал работать
--------------26.02.10
реклама

Манипулирование прерываниями с задержкой

После того как Вы вызвали SFC 32 "SRT_DINT", операционная система по истечении заданного времени задержки генерирует прерывание, иными словами, вызывается выбранный OB прерываний с задержкой. Это прерывание известно как прерывание с задержкой.

Условия для вызова

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

Назначение SFC32 - SFC34

Системные функции SFC32 - SFC34, описанные в следующих разделах, используются следующим образом:

В следующей таблице я покажу различные ситуации.

Если...и...то...
запускается прерывание с задержкой (вызовом SFC32 "SRT_DINT"). уже запущено прерывание с задержкой, время задержки заменяется; прерывание с задержкой запускается вновь.
  OB прерываний с задержкой не существует к моменту вызова, операционная система генерирует ошибку класса приоритета (вызывает OB85). Если OB 85 не существует, то CPU переходит в состояние STOP.
  запуск прерывания произошло в OB запуска и время задержки истекло прежде, чем CPU оказался в RUN вызов OB прерывания с задержкой задерживается до тех пор, пока CPU не перейдет в RUN.
время задержки истекло ранее запущенный ОВ прерываний с задержкой еще исполняется операционная система генерирует ошибку времени (вызывает OB80 Если OB 80 не существует, то CPU переходит в состояние STOP.

 

Теплый рестарт и холодный рестарт

При теплом и холодном рестарте все настройки прерывания с задержкой, сделанные в программе пользователя с помощью SFC, стираются.

Старт в OB запуска

Прерывание с задержкой может стартовать в OB запуска. Для вызова OB прерываний с задержкой должны быть выполнены два условия:

Если время задержки истекло, а CPU еще не находится в режиме RUN, то вызов OB прерываний с задержкой откладывается до тех пор, пока CPU не перейдет в состоянии RUN. Тогда OB прерываний с задержкой вызывается еще до первой команды в OB1

 

Запуск прерывания с задержкой с помощью SFC32 "SRT_DINT"

 

С помощью SFC 32 "SRT_DINT" (start time-delay interrupt [запустить прерывание с задержкой])Вы запускаете прерывание с задержкой, которое по истечении времени задержки (параметр DTIME) вызывает OB прерываний с задержкой.

С помощью параметра SIGN Вы можете ввести идентификатор для распознавания запуска прерывания с задержкой. Значения DTIME и SIGN вновь появляются в информации о событии запуска указанного OB, когда он выполняется.

ПараметрОписаниеТип данныхОбласть памятиХарактеристика
OB_NR INPUT INT I, Q, M, D, L,
константа
Номер OB для запуска с задержкой времени (OB20 - OB23).
DTIME INPUT TIME I, Q, M, D, L,
константа
Длительность задержки (от 1 до 60000 мс)
SIGN INPUT WORD I, Q, M, D, L,
константа
Идентификатор, который вводится в информацию о событии запуска OB при вызове OB прерываний с задержкой.
RET_VAL OUTPUT INT I, Q, M, D, L, Если при выполнении функции происходит ошибка, то фактический параметр RET_VAL содержит код ошибки.

 

Точность

Время между вызовом SFC 32 "SRT_DINT" и запуском OB прерываний с задержкой максимум на одну миллисекунду меньше, чем выбранное время, если только никакие события прерывания не задерживают вызов.

Информация об ошибках

Код ошибки (W#16#...)Описание
0000 Ошибки не было.
8090 Ошибочный параметр OB_NR
8091 Ошибочный параметр DTIME

 

 

<-- Предыдущая статья   Следующая статья -->
сделано djoni политика конфидициальности Rambler's Top100