![]() |
Главная » Микропроцессорное управление 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 была рассмотрена типичная задача управления последовательностью технологического цикла-управление процессом загрузки - выгрузки лодочки с подложками в реактор. Были также получены структурные формулы, определяющие алгоритм функционирования управляющего логического устройства. / РАЗДЕЛ ГЛОБАЛЬНЫХ ОПИСАНИЙ
РАЗВЕЛ ПРОЦЕДУРЫ ПИД; ПИД 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
сост :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. Структура устройства загрузки, работающего по принципу из кассеты в кассету (в плане)
|
![]() ![]() Как выбрать диван ![]() История мебели ![]() Стили кухонной мебели ![]() Публикации ![]() Инверторы ![]() Приемники |