10610

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

Реферат

Информатика, кибернетика и программирование

Управление на основе последовательного программирования. Управление на основе прерываний. Управление последовательностью событий и бинарное управление Попытаемся проанализировать следующую проблему: могут ли задачи управления в реальном времени решаться с помощь...

Русский

2013-03-29

480.38 KB

17 чел.

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

Попытаемся проанализировать следующую проблему: могут ли задачи управления в реальном времени решаться с помощью последовательного программирования. Блок-схема регулирования температуры представлена на рис. 2.3. Программа считывает температуру пластика каждые 10 секунд, определяет необходимое время нагрева (переменная heatjtime), включает нагреватель и затем переходит в цикл занятого ожидания {busy loop) обновления счетчика времени (переменная С), во время которого компьютер не может выполнять никакие другие операции. Очевидно, что это не самое эффективное использование компьютера.

Рис.1.4  Блок-схема регулирования температуры пластика

Алгоритм управления перемещением поршня показан на рис. 1.4. Компьютер выдает команду начать движение вправо, затем непрерывно контролирует информацию от датчика конечного положения до тех пор, пока не получит сигнал о том, что оно достигнуто. Затем начинается обратное движение поршня влево, при этом компьютер должен в цикле занятого ожидания ждать очередного импульса и суммировать их (счетчик импульсов обозначен п). Цикл считается завершенным при достижении заданного числа импульсов (переменная pulse_ref). Затем весь цикл повторяется сначала. Так же как и при регулировании температуры, компьютер не может выполнять других операций, пока он находится в цикле ожидания очередного импульса

Каждую из двух задач можно решить непосредственно с помощью последовательного кода. Но объединить их в одной программе непросто. Циклы взаимного ожидания использовать нельзя, так как управляемый процесс не позволяет длительных задержек, а исполнение одной задачи не должно быть связано с другой. В принципе, можно обойтись и без циклов ожидания. Однако программа при этом будет все время переключаться между двумя задачами и проверять, какая задача должна исполняться следующей, станет громоздкой и сложной для анализа. Попытка последовательного расположения блоков инструкций, исполнение которых фактически должно быть параллельным, порождает взаимосвязи между практически независимыми функциями

Рис.1.5 Блок-схема управления движением поршня пресса

Управление на основе прерываний

Главная сложность программы управления прессом — необходимость организации переключения между задачами. На практике проблема решается с помощью двух независимых программ, выполняемых на одной машине: одна — регулирует температуру, а другая — управляет перемещением поршня.

Метод сигнализации, называемый прерыванием, используется для переключения ЦП с исполнения одной задачи на другую. С помощью прерываний циклы ожидания можно заменить на ожидание прерывания

Фактически прерывание представляет собой внешний сигнал, извещающий ЦП о наступлении некоторого события. События отслеживаются датчиками и заставляют ЦП прервать исполнение текущей программы и перейти к другой. Таким образом, внешние сигналы могут влиять на исполнение того или иного программного модуля. Особый вид прерывания связан со временем. Электронный таймер выдает сигнал прерывания при наступлении определенного момента времени или по истечении некоторого интервала. Этот таймер не является частью ЦП, однако конструктивно располагается на той же плате. Он освобождает ЦП от необходимости контролировать время.

С использованием прерываний задача регулирования температуры решается проще. Прерывание по времени связано с переменной heat_time. После включения нагревателя программа устанавливает таймер на величину времени нагрева (значение переменной heatjtime) и ждет сигнала прерывания для продолжения работы (инструкция wait_time(heat_time) на рис. 2.5)

Рис.1.6 Использование прерываний от таймера для регулирования температуры

Аналогично, программа управления поршнем ожидает два прерывания: одно — от датчика крайнего правого положения, другое — от импульсного датчика, контролирующего перемещение поршня. Прерываниям соответствуют инструкции вида wait_interrupt(x), где х обозначает канал поступления сигнала прерывания. Оператор wait_interrupt приостанавливает исполнение программы, которое возобновляется только при поступлении соответствующего сигнала внешнего прерывания

Система прерываний обеспечивает переключение ЦП с исполнения одной программы на другую как следствие внешних событий. В результате решение задачи управления получается прозрачным и элегантным. Если каждый программный модуль является независимым, то добавить новые блоки к системе можно без нарушения существующей структуры

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

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

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

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

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

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

  1.  Открыть клапан А и залить в бак реагент 1.
  2.  Если датчик давления Д показывает, что достигнут требуемый уровень, то закрыть клапан А.
  3.  Запустить смеситель.
  4.  Открыть клапан Б и залить в бак реагент 2.
  5.  Если датчик давления Д показывает, что достигнут новый требуемый уровень, то закрыть клапан Б.
  6.  Открыть клапан Г для нагрева бака.
  7.  Если датчик Т показывает, что достигнута требуемая температура, то закрыть клапан Г.
  8.  Установить таймер на время протекания химической реакции.
  9.  При срабатывании таймера — время реакции истекло — остановить смеситель.
    10. Открыть клапан
    X для охлаждения бака
  10.  Проверить температуру в баке. Если температура упала ниже заданного пре
    дела, то закрыть клапан
    X и открыть клапан В для опорожнения бака.
  11.  Закрыть клапан В. Повторить все этапы с самого начала.

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

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

Пример  Простой контур управления — регулятор температуры

Рассмотрим бак, заполненный жидкостью, температура которой должна поддерживаться постоянной (рис. 1.8). Все сигналы в этом примере — аналоговые, т. е. изменение температуры отслеживается непрерывно, в отличие от предыдущего примера, где проверялось лишь превышение порогового значения, а подача тепла может регулироваться плавно

Рис.1.8 Простая система регулирования температуры

Температура измеряется датчиком, выходное напряжение которого пропорционально текущей температуре (пропорциональная зависимость существует как минимум в интересующем диапазоне температур). Измерения периодически, например каждую секунду, поступают в компьютер, и текущее значение температуры сравнивается с требуемым (опорным), которое хранится в памяти компьютера. Величина нагрева или охлаждения рассчитывается по разности между опорным и измеренным значениями (рис. 2.9).

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

Рис.1.9. Простой контур управления – система регулирования температуры

Регулятор температуры демонстрирует некоторые основные свойства контура управления. Температура должна измеряться с частотой, определяемой постоянной времени процесса. Если теплоемкость бака велика, то постоянная времени имеет относительно большое значение. Наоборот, если объем бака небольшой, а нагреватель мощный, то постоянная времени процесса мала и система управления должна достаточно часто измерять температуру и включать или отключать нагреватель. Таким образом, при проектировании цифровой системы управления должны быть учтены основные динамические характеристики процесса.


 

А также другие работы, которые могут Вас заинтересовать

51672. Психология манипуляции: феномены, механизмы и защита 1.56 MB
  Проблема психологического воздействия разрабатывается на пересечении таких разделов психологии как психология общения и психология личности. Основные составляющие манипулятивного воздействия. Сокрытие воздействия. Мишени воздействия.