logo
ОСНОВЫ АСУ ТП

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.