Главная »  Микропроцессорное управление 

1 ... 20 21 22 23 24 25 26 27

Глава 6. ПРОГРАММИРОВАНИЕ ЗАДАЧ

УПРАВЛЕНИЯ ОБОРУДОВАНИЕМ

6.1. ПРОГРАММИРОВАНИЕ ЗАДАЧ УПРАВЛЕНИЯ ПАРАМЕТРАМИ

Рассмотрим конечно-разностное уравнение, представляющее собой нерекуррентный ПИД-алгоритм регулирования:

U=C0-E+C\-SUM-\-C2-(E-E\). (6.1)

Здесь CO = KU\ С\=КиТ01ТГ, C2 = KUTD/T0.

1 = 1

где ки- коэффициент усиления системы; ТО - период квантования; 77-постоянная интегрирования; TD- постоянная дифференцирования; Е-дискретное значение сигнала ошибки на текущем такте; Е\ -дискретное значение сигнала ошибки на предыдущем такте; £(-1-дискретное значение сигнала ошибки на (г-1)-м такте;. U- дискретное значение сигнала управления на текущем такте.

При программной реализации алгоритма (6.1) необходимо учитывать следующие особенности:

при вычислении U на первом шаге задавать начальные значения переменных SUM и El соответственно;

порядок вычисления U на первом и .последующих шагах несколько различен; *

поскольку ки, ТО, TImTD- постоянные параметры, i о коэффициенты СО, С1 и С2 следует определять до процедуры вычисления U.

Вычисление по формуле (6.1) значения сигнала управления может быть реализовано на языке Паскаль в виде процедуры с именем ПИД (рис. 6.1)..

Конечно-разностное уравнение, представляющее рекуррентный ПИД-алгоритм регулирования, имеет следующий вид:

и=и\-СОЕ+С\Е\+С2Е2, (6.2)

где C0 = KU{\ + TD/T0); Cl = Ки-{\+2TD / ТО-ТО / TI); С2 = = KUTD/TO; Е2-дискретное значение сигнала ошибки с задержкой на два такта относительно текущего; UI-дискретное значение сигнала управления, вычисленное на предыдущем такте. 224



/* РАЗДЕЛ ГЛОБАЛЬНЫХ ОПИСАНИЙ ---------------------------------*/

H:INTEGER; /* ПЕРЕКЛЮЧАТЕЛЬ */

E:REAL; /* ТЕКУЩЕЕ ЗНАЧЕНИЕ СИГНАЛА ОШИБКИ */

E1:REAL; /* ЗНАЧЕНИЕ СИГНАЛА ОШИБКИ НА ТАКТ НАЗАД */

E2:REAL; /* ЗНАЧЕНИЕ СИГНАЛА ОШИБКИ НА 2 ТАКТА НАЗАД */

U:REAL; /* УПРАВЛЯЮШЕЕ ВОЗДЕЙСТВИЕ */

U1:REAL; /* ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ УПР.ВОЗД-Я */

C0,C1,C2:REAL; /* КОЭФФИЦИЕНТЫ */

/* РАЗДЕЛ ПРОЦЕДУРЫ ПИД1 --------------------------------- .

PROCEDURE ПИД1; BEGIN

IF Н = 1 THEN

BEGIN

E2:= E; U:={-CO)*E ; H:= 2 END

ELSE IF H = 2 THEN BEGIN

E1:= E;

U:= U1-C0*E1+C1*E2; H:= 0 END

ELSE

BEGIN

U:= U1-C0*E+C1*E1+C2*E2;

E2:= El;

E1: = E;

END;

/* РАЗДЕЛ ГЛАВНОЙ ПРОЦЕДУРЫ BEGIN

Н:= 1;

READ(C0,C1,C2 ); /* ВВОД ЗНАЧЕНИЙ С0,С1,С2 */

ВВОД(Е); /* ПРОЦЕДУРА ВВОДА Е */

ПИД1; /* ВЫЗОВ ПРОЦЕДУРЫ ПИД1 */

ВЫВОД(и); /* ПРОЦЕДУРА ВЫВОДА U */

END;

Рис. 6.1. Структура программы, включающей процедуру ПИД

На рис. 6.2 показан пример реализации алгоритма (6.2), в виде процедуры ПИД1 на языке Паскаль.

6.2. ПРОГРАММИРОВАНИЕ ЗАДАЧ УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ТЕХНОЛОГИЧЕСКОГО ЦИКЛА

В § 4.3 была рассмотрена типичная задача управления последовательностью технологического цикла-управление процессом загрузки - выгрузки лодочки с подложками в реактор. Были также получены структурные формулы, определяющие алгоритм функционирования управляющего логического устройства.



/ РАЗДЕЛ ГЛОБАЛЬНЫХ ОПИСАНИЙ

И: INTEGER

/♦

ПЕРЕКЛЮЧАТЕЛЬ

C0,C1,C2:REAL;

/♦

КОЭФОИиИЕНТ Ы

Е :REAL;

ТЕКУЩЕЕ ЗНАЧЕНИЕ СИГНАЛА ОШИБКИ

El: REAL;

/♦

ПРЕЛЫВУШЕЕ ЗНАЧЕНИЕ СИГНАЛА ОШИБКИ

и : REAL;

УПРАВЛЯЮЩЕЕ ВОЗВЕЙСТВИЕ

SUM : REAL;

НАКАПЛИВАЕМОЕ ЗНАЧЕНИЕ

TO,TI,TD,KU:REAL;

/♦

ПАРАИЕТРь

РАЗВЕЛ ПРОЦЕДУРЫ ПИД;

ПИД

PROCEDURE BEGIN

IF И

1 THEN

BEGIN

Е1: E; SU := E;

U:- CO*E + C1*SUH ; M:= 0 END

SUN E; CO*E ♦ C1*SUM + C2*{E-E1);

ELSE BEGIN SUM U: E1 : = E END

END;

/ РАЗВЕЛ ГЛАВНОЙ ПРОЦЕДУРЫ BECIN

И:- 1;

READ(KU,TO,TI,TD); / ВВОВ ЗНАЧЕНИЙ ;U,TO,TI,TD */ СО:- KU; С1: TO/TI; C2: TD/TO;

BBOB(E); /* ПРОЦЕДУРА ВВОДА E */

ПИВ; / ВЫЗОВ ПРОЦЕДУРЫ ПИЯ */

BbBOB(U); /* ПРОЦЕВУРА ВЫВОДА U */

END;

Рис. 6.2. Структура программы, включающей процедуру ПИД1

Целью настоящего параграфа является программная реализация алгоритма управления процессом загрузки-выгрузки на алгоритмическом языке Паскаль.

Сделаем предварительные замечания. При поверхностном знакомстве с данной задачей способ ее решения кажется очевидным. Ведь уже получены логические выражения, определяющие значения дискретных выходных сигналов К1...К10 в зависимости от значений дискретных входных (£ !...£> 10) и управляющих (Ост, Вг, Зг) сигналов. Остается только программным путем вычислять значения сигналов К1...К10, используя полученные формулы, формировать эти сигналы и подавать их на исполнительные устройства объекта управления. Однако такой способ решения 226



задачи обладает целым рядом недостатков. Во-первых, время вычисления логических выражений на микроЭВМ будет значительно превышать время отклика логического устройства, построенного на основе полученных структурных выражений. Во-вторых, при работе с логическими выражениями нерационально используется оперативная память микроЭВМ. Ведь для хранения одного бита потребуется целая ячейка ОЗУ и т. п.

С точки зрения устранения отмеченных недостатков при программной реализации алгоритма управления рационально использовать не логические выражения, а таблицу истинности 4.8. Заметим, что входные сигналы (Ост, Вг, Зг, D\, D\0) кодируются 13-разрядным двоичным кодом, а выходные {К\...К\0) - 10-разрядным двоичным кодом, т.е. длина кода в обоих случаях не превышает длины слова 16-разрядного МП. Следовательно, каждую комбинацию входных или выходных сигналов можно принимать или передавать микроЭВМ в виде всего лишь одного слова, а выбор выходного слова рационально осуществлять на основе таблицы истинности по заданному входному слову и номеру строки таблицы (взаимно соответствующие слова расположены на одной и той же строке с номером 1).

При реализации подобного способа вычисления управляющих выходных сигналов необходимо каждый раз устанавливать с помощью таблицы истинности соответствие между значениями входных и выходных сигналов. Однако при этом совсем необязательно хранить таблицу истинности в форме табл. 4.8. Коды входных и выходных сигналов, между которыми установлено соответствие, могут входить в различные наборы данных, но с одним и .тем же порядковым номером. Например, в рассматриваемой задаче можно выделить три группы сигналов: Ост, Вг, Зг, управляющие выбором режима (табл. 6.1); входные информационные сигналы с датчиков (коды состояний), отражающие состояние технологического процесса (табл. 6.2), и выходные сигналы, управляющие технологическим процессом (табл. 6.3).

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

Рассмотрим структурную схему алгоритма управления процессом загрузки - выгрузки (рис. 6.3).

Вначале осуществляется ввод кода состояния (СОСТ). Двоичный код состояния сравнивается с кодом исходного состояния (ИС), значение которого представлено в первой строке табл. 6.2. Если значение СОСТ не совпадает со значением ИС, то выдается диагностическое сообщение. В случае совпадения кодов вводится код управления режимом работы (РЕЖИМ), который сравнивается с фиксированным значением К2 (кода режима выгрузки), представленного в строке 2 табл. 6.1. Если значение К2 не равно



Таблица 6.1. Сигналы выбора режима

Код

Ост

Режим работы

Останов

Загрузка

Выгрузка

Останов

>

значению РЕЖИМ, то формируется выходной код (УКОД), равный коду останова (КОст) и его значение выдается на устройство вывода, связанное с исполнительным устройством. Значение кода останова хранится в последней строке табл. 6.3. В

Таблица 6.2. Коды состояний

Десятичный код



Таблица 6.3. Управляющие коды

Десятичный кол

случае совпадения кодов РЕЖИМ и К2 выходной код УКОД принимает значение текущего управляющего кода (значение строки 1 табл. 6.3) и это значение выводится на. исполнительное устройство. Далее значение параметра / увеличивается на 1 и вводится код состояния, характеризующий состояние объекта управления в данный момент. Текущее значение кода состояния сравнивается со значением кода ТАБЛ2 [/] (строка 1 табл. 6.2). Если значение СОСТ не совпадает с ТАБЛ2 [/], то снова вводится текущее значение СОСТ и цикл повторяется. В случае совпадения кодов СОСТ и ТАБЛ2[/] значение СОСТ сравнивается с фиксированным значением КНЗ (кодом начала загрузки), значение которого представлено на строке 10 табл. 6*1. В случае неравенства указанных кодов осуществляется повторение цикла операций, начиная с ввода кода управления режимом работы. В случае раренства кодов, что свидетельствует об окончании режима выгрузки и о начале режима загрузки, осуществляется переход к другому блоку структурной схемы-вводу кода управления режимом. С ввода кода управления режимом начинается новый цикл операций, соответствующий режиму загрузки. Код режима загрузки представлен в строке 1 табл. 6.1.

Цикл операций, соответствующий режиму загрузки, аналогичен уже рассмотренному циклу структурной схемы. В конце этого цикла текущее значение кода СОСТ сравнивается с фиксированным значением ИС, которое представлено в последней строке




Нет

/ВВОМРЕЖИМ)/


нет

о

/вывщшоц)/ /вытшю/


Нет

/ВВОД(РЕЖИМ)/


/-i--7 г/и--

/вывод{шд)/ /вы водут)/ i

-27-

I-.I+I

,11 Гг

/ввод(сост) /


, Нет

Выдача Видености-

чее ко г о сообщеная

CCD---ч Останов J

Рис. 6.3. Структурная схема алгоритма управления состоянием технологического цикла

табл. 6.2. В случае неравенства кодов цикл операций, соответствующий режиму загрузки, повторяется. Если значения кодов СОСТ и ИС совпадают, цикл управления заканчивается.

Программа управления процессом загрузки-выгрузки, оформленная в виде процедуры, представлена на рис. 6.4, 6.5.

6.3. ПРОГРАММИРОВАНИЕ ЗАДАЧ ОБРАБОТКИ ИНФОРМАЦИИ

Кроме задач управления параметрами и состоянием технологического цикла в микроэлектронике существует целый ряд специальных задач обработки информации, например задача определе-230



/.------------------------------------------

! вычисление значений сигналов управления ! состоянием технологического цикла

procedure логика ; label 5,10,13,18; const

ki = 1;

коя режима загрузки

кг = 2;

коя режима выгрузки

кнз=361 ;

коя состояния в начале загрузки

кос=0;

выхояной коя в режиме останов

кис=362;

коя исхояного состояния

сост :integer; /* коя состояния технолог-го цикла */ режим;integer; /* коя выбора режима */ i:integer; /* параметр цикла */

begin

таблица; /* вызов процеяуры таблица */

1:=1;

ввод(сост); /* процеяура ввояа сост */

if сост о кис

then вывояс нет исхояного состояния ); 5: вводе режим ); /* поцеяура ввояа режим */ 1ррежим о к2 then begin

выводе кос ); goto 5 end;

выводе табл2с13 ); i:-i ♦ 1; 10: ввсдс сост );

if сост о табл1с13 then goto 10; if сост о кнз then goto 5; 13: вводе режим );

if режим о then begin

выводе кос); goto i3

end;

выводе табл2с13 ); /* процеяура вывояа */

1:=1 + 1; 18: ввояе сост );

if сост о табл1с13 then goto 18

end;

Рис. 6.4. Процедура вычисления значений сигналов управления состоянием технологического цикла

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



PROCEDURE ТАБЛИЦА; VAR

F1:TEXT; /* ФАЙЛОВАЯ ПЕРЕМЕННАЯ */

I:INTEGER; /* ПАРАМЕТР ЦИКЛА */

BEGIN

RESET(F1,T1 ); /* ОТКРЫТИЕ ФАЙЛА ДЛЯ ЧТЕНИЯ */

FOR 1:= 1 ТО N DO BEGIN

READ( F1,TAGniCI3 ); /* ЧТЕНИЕ ФАЙЛА */ READ( F1,TAБлгCIЗ ); /* ЧТЕНИЕ ФАЙЛА */

END;

CLOSECFD; /* ЗАКРЫТИЕ ФАЙЛА ДЛЯ ЧТЕНИЯ */

END;

Рис 6.5. Процедура Таблица

/* РАЗДЕЛ ГЛОБАЛЬНЫХ ОПИСАНИЙ ---------------------------------*/

CONST СИГНАЛ =1 ; VAR

FO:REAL; /* ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ ФУНКЦИИ */

FIrREAL; /* ТЕКУ1ВЕЕ ЗНАЧЕНИЕ ФУНКЦИИ */

/* РАЗДЕЛ ПРОЦЕДУРЫ КТРАВЛ ----------------........-----./

PROCEDURE КТРАВЛ;

LABEL 1; BEGIN

F0: 0; /* НАЧАЛЬНОЕ ЗНАЧЕНИЕ ФУНКЦИИ */

1: BB0Д(F1); /* ПРОЦЕДУРА ВВОДА ЗНАЧЕНИЯ ФУНКЦИИ ♦/

IF F1 > FO THEN

BEGIN

F0: F1;

GOTO 1

END;

ВЫВОД(СИГНАЛ) /* ПРОЦЕДУР* ВЫВОДА СИГНАЛА */ END;

Рис. 6.6. Процедура определения времени окончания процесса травления 232



6.4. ПРОГРАММИРОВАНИЕ ЗАДАЧ УПРАВЛЕНИЯ НА ЯЗЫКАХ ПОЛЬЗОВАТЕЛЯ

В качестве примера описания алгоритма управления на языках пользователя рассмотрим работу устройства загрузки - выгрузки пластин из кассеты в кассету. На рис. 6.7 представлена структура устройства загрузки - выгрузки.

Пластины 3 из выдающей кассеты / по транспортеру б перемещаются к столику 4, где останавливаются поднятыми упорами 5. При подъеме и опускании столика происходит перегрузка пластин на руку загрузки 9а, которая пустая выходит из пшюзовой камеры 7 через двери 8 и возвращается в шлюз с пластиной, которую затем перемещает в позицию 11 рабочей камеры 10. Рука выгрузки 96 выходит из шлюза с пластиной, оставляет ее на столике и вновь уходит в шлюз. Пластина при опускании столика попадает на транспортер б и при опущенных упорах 5 перемещается в кассету выгрузки 2, после чего механизм кассеты перемещается вверх на один шаг.

Если представить алгоритм функционирования механизмов устройства загрузки в виде последовательной их работы во времени (рис. 6.8), то можно описать работу устройства с помощью программы время-команда .

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


Рис. 6.7. Структура устройства загрузки, работающего по принципу из кассеты в кассету (в плане)




1 ... 20 21 22 23 24 25 26 27



Как выбрать диван



История мебели



Стили кухонной мебели



Публикации



Инверторы



Приемники