
- •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. Требования к языкам и операционным системам реального времени
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.
Если датчик давления Д показывает, что достигнут требуемый уровень, то закрыть клапан А.
Запустить смеситель.
Открыть клапан Б и залить в бак реагент 2.
Если датчик давления Д показывает, что достигнут новый требуемый урс вень, то закрыть клапан Б.
Открыть клапан Г для нагрева бака.
Если датчик Т показывает, что достигнута требуемая температура, то закрыть клапан Г.
Установить таймер на время протекания химической реакции.
При срабатывании таймера — время реакции истекло — остановить смеситель. 10. Открыть клапан X для охлаждения бака.
Проверить температуру в баке. Если температура упала ниже заданного предела, то закрыть Клапан X и открыть клапан В для опорожнения бака.
Закрыть клапан В. Повторить все этапы с самого начала.
Многие системы предназначены для управления очередностью выполнения олений которая зависит от некоторых логических условий, как в приведенном приме-
Входные и выходные данные системы являются бинарными в том смысле, что датчики контролируют два состояния или граничное значение, например клапан открыт или закрыт, индикатор сработал или нет, кнопочный выключатель нажат или отжат и т. д.; и команды управления имеют аналогичный формат — запустить/остановить двигатель, включить/отключить нагреватель и т. п.
Если задача управления основана только на бинарной логике, то очевидно, что решать ее удобнее и проще цифровыми средствами. Существуют так называемые программируемые логические контроллеры, специально созданные для решения таких задач. Более подробно эти устройства рассмотрены в главе 7.