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

2.1.1. Пример — пресс для пластика

Управление прессом для пластика — это пример типичной задачи компьютерного управления процессом.

Компьютер должен одновременно регулировать температуру (поддерживать ее постоянной) и координировать последовательность технологических опе­раций. Если применять обычные методы программирования, то задача структу­рирования программы становится неразрешимой. Поэтому требуется другой подход.

Рис 2.2. Пресс для пластика

Пресс для пластика представлен на рис. 2.2. Контейнер содержит расплавлен­ный пластический материал; температура пластика должна поддерживаться в пре­делах узкого диапазона. Управляющий компьютер периодически считывает теку­щую температуру и рассчитывает тепло, необходимое для ее поддержания на требуемом уровне. Тепло поступает от нагревательного элемента, управляемого компьютером. Время его работы согласовано с количеством тепла, которое необхо­димо подвести.

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

Чтобы обеспечить приемлемую производительность, температура пластика дол­жна иметь заданное значение к тому моменту, когда поршень при движении вправо минует выходное отверстие контейнера.

Компьютерная система должна регулировать температуру и движение поршня одновременно. Значение температуры поступает в виде непрерывного сигнала от датчика. Положение поршня рассчитывается исходя из числа импульсов. Кроме того, еще два датчика генерируют двоичные сигналы при достижении поршнем край­него положения. Компьютер не содержит отдельного внутреннего интервального таймера и поэтому должен отсчитывать время с помощью счетчика сигналов от внешнего источника времени.

2.1.2. Управление на основе последовательного программирования

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

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

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

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