Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ АСУ ТП.doc
Скачиваний:
148
Добавлен:
28.05.2015
Размер:
869.38 Кб
Скачать

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.

2.2. Примеры задач управления процессами

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

2.2.1. Управление последовательностью событий и бинарное управление

Простой химический реактор, представленный на рис. 2.7, — пример системы управления последовательностью событий. В химическом реакторе реагенты переме­шиваются с помощью смесителя. Входные потоки реагентов и выход продукта регулируются входными клапанами А и Б и выходным клапаном В, соответственно. Уровень давления в баке контролируется датчиком Д, а температура — датчиком Т Температура регулируется горячей или холодной водой, подаваемой в окружающий бак кожух; потоки воды регулируются клапанами Г (горячо) и X (холодно).

Рис. 2.7. Простой химический реактор с регулированием температуры

В этом примере в реакторе выполняются следующие операции:

  1. Открыть клапан А и залить в бак реагент 1.

  2. Если датчик давления Д показывает, что достигнут требуемый уровень, то закрыть клапан А.

  3. Запустить смеситель.

  4. Открыть клапан Б и залить в бак реагент 2.

  5. Если датчик давления Д показывает, что достигнут новый требуемый урс вень, то закрыть клапан Б.

  6. Открыть клапан Г для нагрева бака.

  7. Если датчик Т показывает, что достигнута требуемая температура, то закрыть клапан Г.

  8. Установить таймер на время протекания химической реакции.

  9. При срабатывании таймера — время реакции истекло — остановить смеситель. 10. Открыть клапан X для охлаждения бака.

  1. Проверить температуру в баке. Если температура упала ниже заданного пре­дела, то закрыть Клапан X и открыть клапан В для опорожнения бака.

  2. Закрыть клапан В. Повторить все этапы с самого начала.

Многие системы предназначены для управления очередностью выполнения оле­ний которая зависит от некоторых логических условий, как в приведенном приме-

Входные и выходные данные системы являются бинарными в том смысле, что датчики контролируют два состояния или граничное значение, например клапан от­крыт или закрыт, индикатор сработал или нет, кнопочный выключатель нажат или отжат и т. д.; и команды управления имеют аналогичный формат — запустить/оста­новить двигатель, включить/отключить нагреватель и т. п.

Если задача управления основана только на бинарной логике, то очевидно, что решать ее удобнее и проще цифровыми средствами. Существуют так называемые программируемые логические контроллеры, специально созданные для решения та­ких задач. Более подробно эти устройства рассмотрены в главе 7.