Главная страница Цифровые системы [0] [1] [2] [3] [4] [5] [ 6 ] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] Глава 2. Особенности цифрового управления процаЩ:ау управление процессом в реальном времени начало - измерить температуру - рассчитать требуемую величину проводимого тепла - установить переменную heat time< 10 - включить нагреватель Рис. 2.3. Блок-схема регулирования температуры пластика Каждую из двух задач можно решить непосредственно с помощью последовательного кода. Но объединить их в одной программе непросто. Циклы взаимного ожидания использовать нельзя, так как управляемый процесс не позволяет длительных задержек, а исполнение одной задачи не должно быть связано с другой. В принципе, можно обойтись и без циклов ожидания. Однако программа при этом будет все время переключаться между двумя задачами и проверять, какая задача должна исполняться следующей, станет громоздкой и сложной для анализа. Попытка последовательного расположения блоков инструкций, исполнение которых фактически должно быть параллельным, порождает взаимосвязи между практически независимыми функциями. начало начать движение вправо - остановить поршень - И = О [сбросить счетчик импульсов] - начать движение влево
Рис. 2.4. Блок-схема управления движением поршня пресса для пластика -3. Управление на основе прерываний Главная сложность программы управления прессом - необходимость организации переключения между задачами. На практике проблема решается с помощью Ух независимых программ, выполняемых на одной машине: одна - регулирует температуру, а другая - управляет перемещением поршня. етод сигнализации, называемый прерыванием, используется для переключения Цп с исполнения одной задачи на другую. С помощью прерываний циклы ожи-ния можно заменить на ожидание прерывания. Фактически прерывание представляет собой внешний сигнал, извещающий Цц о наступлении некоторого события. События отслеживаются датчиками и заставляют ЦП прервать исполнение текущей программы и перейти к другой. Таким об-разом внещние сигналы могут влиять на исполнение того или иного программного модуля. Особый вид прерывания связан со временем. Электронный таймер выдает сигнал прерывания при наступлении определенного момента времени или по истечении некоторого интервала. Этот таймер не является частью ЦП, однако конструктивно располагается на той же плате. Он освобождает ЦП от необходимости контролировать время. Более подробно о прерываниях рассказано в разделе 10.6, С использованием прерываний задача регулирования температуры решается проще. Прерывание по времени связано с переменной heat time. После включения нагревателя программа устанавливает таймер на величину времени нагрева (значение переменной heattime) и ждет сигнала прерывания для продолжения работы (инструкция WdLit tiTue{heat time) на рис. 2.5). начало - измерить температуру - рассчитать требуемую величину проводимого тепла - установить переменную heat time < 10 - включить нагреватель wait time Qieatjime) выключить нагреватель wait time (iO-heatJime) -> ждать Aeattime сек. - прерывание от таймера (возобновляет исполнение программы) ждать момента очередной выборки прерывание от таймера (возобновляет исполнение программы) Рис. 2.5. Использование прерываний от таймера для регулирования температуры пластика Аналогично, программа управления поршнем ожидает два прерывания: одно от датчика крайнего правого положения, другое - от импульсного датчика, контролирующего перемещение поршня (рис. 2.6). Прерываниям соответствуют инструкции вида wait interrupt(x), где х обозначает канал поступления сигнала прерывания. Оператор wait interrupt приостанавливает исполнение программы, которое возобновляется только при поступлении соответствующего сигнала внешнего прерывания. начало начать движение поршня вправо инициализировать обработчики прерываний от датчиков положения wait mteiTupt (end position) остановить поршень - п = О [сбросить счетчик импульсов] - начать движение влево waitinterrapt (pulse) п = п+\ остановить поршень -> ждать прерывания от датчика конечного положения внешнее прерывание (возобновляет исполнение программы) ждать прерывания от следующего импульса внешнее прерывание (возобновляет исполнение программы) Рис. 2.6. Использование прерываний для управления движением поршня пресса для пластика Система прерываний обеспечивает переключение ЦП с исполнения одной программы на другую как следствие внешних событий. В результате решение задачи управления получается прозрачным и элегантным. Если каждый программный модуль является независимым, то добавить новые блоки к системе можно без нарушения существующей структуры. Проблемы, связанные с многозадачностью и методами программирования в реальном времени, обсуждаются в главе 10. 2-2. Примеры задач управления процессами в этом разделе на примерах проиллюстрированы основные типы задач, встречающиеся при управлении процессми. Вначале обсуждается, что в общем случае требу-ся для управления, а затем рассматриваются проблемы, присущие техническим процессам. 2.2.1. Управление последовательностью событий и бинарное управление Простой химический реактор, представленный на рис. 2.7, - пример системы уп-равления последовательностью событий. В химическом реакторе реагенты перемешиваются с помощью смесителя. Входные потоки реагентов и выход продукта регу. лируются входными клапанами А и Б и выходным клапаном В, соответственно. Уровень давления в баке контролируется датчиком Д, а температура - датчиком Т Температура регулируется горячей или холодной водой, подаваемой в окружающий бак кожух; потоки воды регулируются клапанами Г (горячо) и X (холодно). реагент 1 iU Ui реагент 2 отвод воды подвод подвод горячей холодной воды воды выход продукта смеситель Рис. 2.7. Простой химический реактор с регулированием температуры В этом примере в реакторе выполняются следующие операции: 1. Открыть клапан А и залить в бак реагент 1. 2. Если датчик давления Д показывает, что достигнут требуемый уровень, то закрыть клапан А. 3. Запустить смеситель. 4. Открыть клапан Б и залить в бак реагент 2. 5. Если датчик давления Д показывает, что достигнут новый требуемый уровень, то закрыть клапан Б. 6. Открыть клапан Г для нагрева бака. 7. Если датчик Т показывает, что достигнута требуемая температура, то закрыть клапан Г. 8. Установить таймер на время протекания химической реакции. 9. При срабатывании таймера - время реакции истекло - остановить смеситель. 10. Открыть клапан X для охлаждения бака. 11 Проверить температуру в баке. Если температура упала ниже заданного предела, то закрыть Клапан X и открыть клапан В для опорожнения бака. 12 Закрыть клапан В. Повторить все этапы с самого начала. Многие системы предназначены для управления очередностью выполнения опе-ций которая зависит от некоторых логических условий, как в приведенном приме- Входные и выходные данные системы являются бинарными в том смысле, что датчики контролируют два состояния или граничное значение, например клапан открыт или закрыт, индикатор сработал или нет, кнопочный выключатель нажат или отжат и т. д.; и команды управления имеют аналогичный формат - запустить/остановить двигатель, включить/отключить нагреватель и т. п. Если задача управления основана только на бинарной логике, то очевидно, что решать ее удобнее и проще цифровыми средствами. Существуют так называемые программируемые логические контроллеры, специально созданные для решения таких задач. Более подробно эти устройства рассмотрены в главе 7. 2.2.2. Простой контур управления - регулятор температуры Рассмотрим бак, заполненный жидкостью, температура которой должна поддерживаться постоянной (рис. 2.8). Все сигналы в этом примере - аналоговые, т. е. изменение температуры отслеживается непрерывно, в отличие от предыдущего примера, где проверялось лишь превышение порогового значения, а подача тепла может регулироваться плавно. Рис. 2.8. Простая система регулирования температуры Температура измеряется датчиком, выходное напряжение которого пропорционально текущей температуре (пропорциональная зависимость существует как мини-Ум в интересующем диапазоне температур). Измерения периодически, например каждуро секунду, поступают в компьютер, и текущее значение температуры сравнивается с требуемым (опорным), которое хранится в памяти компьютера. Величина агрева или охлаждения рассчитывается по разности между опорным и измеренным значениями (рис. 2.9). В зависимости от исполнительного механизма - устройства, непосредственно -Тияющего на процесс, -- меняется вид управляющего сигнала, подающегося на его [0] [1] [2] [3] [4] [5] [ 6 ] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] 0.009 |