2.1.3. Управление на основе прерываний
Главная сложность программы управления прессом — необходимость организации переключения между задачами. На практике проблема решается с помощью двух независимых программ, выполняемых на одной машине: одна — регулирует температуру, а другая — управляет перемещением поршня.
Фактически прерывание представляет собой внешний сигнал, извещающий Цц о наступлении некоторого события. События отслеживаются датчиками и заставляют ЦП прервать исполнение текущей программы и перейти к другой. Таким образом внешние сигналы могут влиять на исполнение того или иного программного модуля. Особый вид прерывания связан со временем. Электронный таймер выдает сигнал прерывания при наступлении определенного момента времени или по истечении некоторого интервала. Этот таймер не является частью ЦП, однако конструктивно располагается на той же плате. Он освобождает ЦП от необходимости контролировать время. Более подробно о прерываниях рассказано в разделе 10.6.
С использованием прерываний задача регулирования температуры решается проще. Прерывание по времени связано с переменной heat_time. После включения нагревателя программа устанавливает таймер на величину времени нагрева (значение переменной heat time) и ждет сигнала прерывания для продолжения работы (инструкция wait_time(heat_time) на рис. 2.5.)
Рис. 2.5. Использование прерываний от таймера для регулирования температуры пластика
Аналогично, программа управления поршнем ожидает два прерывания: одно отдатчика крайнего правого положения, другое — от импульсного датчика, контролирующего перемещение поршня (рис. 2.6). Прерываниям соответствуют инструкции вида wait_interrupt(x), где х обозначает канал поступления сигнала прерывания. Оператор wait_interrupt приостанавливает исполнение программы, которое возобновляется только при поступлении соответствующего сигнала внешнего прерывания.
Рис. 2.6. Использование прерываний для управления движением поршня пресса для пластика
Система прерываний обеспечивает переключение ЦП с исполнения одной программы на другую как следствие внешних событий. В результате решение задачи управления получается прозрачным и элегантным. Если каждый программный модуль является независимым, то добавить новые блоки к системе можно без нарушения существующей структуры. Проблемы, связанные с многозадачностью и методами программирования в реальном времени, обсуждаются в главе 10.
- 1.1. Роль вычислительной техники в управлении процессами
- 1.5. Руководство для читателя
- Глава 8 посвящена архитектуре системных шин; наибольшее внимание уделено стандарту vme.
- Процессы реального времени. Методы программирования. Задачи цифрового управления
- 2.1.1. Пример — пресс для пластика
- 2.1.2. Управление на основе последовательного программирования
- 2.1.3. Управление на основе прерываний
- 2.2. Примеры задач управления процессами
- 2.2.1. Управление последовательностью событий и бинарное управление
- 2.2.2. Простой контур управления — регулятор температуры
- 2.2.3. Генерация опорного значения
- 2.2.4. Системы, содержащие несколько контуров управления.
- 2.2.5. Взаимосвязанные системы
- 2.2.6. Критичные по времени процессы
- 2.2.7. Свойства процессов, усложняющие управление
- 2.3. Особенности систем цифрового управления
- 2.4.2 Модельный пример 2 – биологическая очистка сточных вод (процесс активированного отстоя)
- 2.5. Заключение
- 3. Описание и моделирование систем
- 3.1.2. Масштаб времени динамических моделей
- 3. 1.3. Моделирование динамических систем
- 3.1.4. Моделирование дискретных событий
- 3.2. Основы моделирования динамических систем
- 3.2.1. Механические системы
- 3.2.2. Электромагнитные цепи
- Пример 3.4
- 7.4. Функциональные карты
- 7.4.1. Синтаксис функциональных карт
- 4 2. Реализация функциональных карт
- 7.4.3. Применение функциональных карт в промышленном управлении
- 7.5. Заключение
- 10.6. Методы программирования в реальном времени
- 10.6.1. Что такое программа реального времени?
- 10.6.2. Среда программирования
- 10.6.3. Структура программы реального времени
- 10.6.4. Обработка прерываний и исключений
- 10.6.5. Программирование операций ожидания
- 10.6.6. Внутренние подпрограммы операционной системы
- 10.6.7. Приоритеты процессов и производительность системы
- 10.7. Языки программирования и операционные системы реального времени
- 10.7.1. Требования к языкам и операционным системам реального времени