Гл1_06 (1031608), страница 10
Текст из файла (страница 10)
Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru38руется через прерывания. Тогда событие, заключающееся в изменении его состояния, становится системным. Оно сможет запустить интерквант, в теле которого можно будет описатьреакцию на это событие.Для проведения операций дискретного контроля и управления микроконтроллер имеет всвоем составе специальные регистры (рис. 1.24). Эти регистры входят обычно в состав платустройства связи с объектом (УСО, см. рис.
1.15). Входы регистров дискретного контроля RG1подсоединены к сигналам объекта ДК, а выходы «Q» программно доступны для операций чтения через шину микроконтроллера. Уровень сигнала на линии ДК1 определяет содержимое нулевого бита регистра контроля и т.д.Если мы хотим реализовать дискретный контроль с аппаратной инициализацией, линииДК подсоединяют ко входам прерывания. Поскольку, часто линий прерывания не много, обычно линии ДК с аппаратной инициализацией подают на входы логической ячейки «И», а ужевыход этой ячейки присоединяют к входу линии прерывания. Тогда, если хотя бы на одной линии ДК появится низкий уровень, возникнет прерывание. В подпрограмме обработки этогопрерывания, можно будет определить, по какой из линий ДК оно инициализировано.
Этоможно сделать, анализируя содержимое регистров дискретного контроля.Входы регистров дискретного управления RG2, наоборот, подсоединены к шине микроконтроллера, а выходы формируют сигналы дискретного управления ДУ. Содержимое нулевогоШина микроконтроллера бита определяет уровень сигнала на линииДУ1 и т.д. По сигналу синхронизации С информация со входа переписывается внутрьD RG2 QD RG1 Qрегистра, а по сигналу ОЕ (Output Enable,ДК1ДУ1 разрешение выдачи) передается из регистра0000ДК2ДУ21111ДК3ДУ3 на его выводы. Подробнее работу и устрой22223333ДУ4 ство регистров можно посмотреть в гл.2.4.ДК44444Регистры имеют определенные адреса, из5555курса информатики вы знаете, что даже в66667777языках высокого уровня есть возможностьCCзадавать аппаратные переменные, т.е. переOEOEменные, имеющие заданный адрес в пространстве памяти. Эти переменные и будутРис.
1. 24программно использоваться для обращенияк элементам объекта управления.Для проведения операций дискретного контроля в управляющей программе нужноуметь считывать содержимое отдельных битов, а в языках высокого уровня обычно оперируют с машинным словом, совокупностью битов. Следует отметить, что в ассемблере современных микроконтроллеров (микропроцессоров, ориентированных на задачи управления)есть команды манипулирования отдельными битами его выходных портов.
В третьей главемы будем знакомиться с такими типовыми микроконтроллерами семейства MCS-51. Есликоманд манипулирования с отдельными битами нет, используют приемы маскирования.Например, мы хотим узнать в нуле или единице сигнал ДК2 (рис. 1.24)? Операция логического «И» содержимого регистра RG1 с маской, значение которой в двоичным коде равно 00000010, даст нулевой результат, если в первом бите RG1 содержится ноль.
Иначе, в рассматриваемом бите - единица.Для того, чтобы узнать, не поменялся ли хотя бы один бит регистра дискретного контроля, используют операцию «исключающее ИЛИ». Ее нулевой результат с прошлым значением указывает на то, что изменений не было. Иначе, в изменившихся по сравнению с прошлым моментом контроля битах будут установлены единицы.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru39Для того, чтобы установить какой либо бит, не изменив содержимое остальных, используют «ИЛИ» регистра дискретного управления и маски. Например, чтобы установитьтретий бит RG2 (рис.
1. 24), необходимо переписать в регистр результат логического «ИЛИ»его прошлого содержимого с маской 00001000. Для того, чтобы сбросить этот бит (записать внего нуль), следует переписать в регистр результат логического «И» прошлого содержимогоэтого регистра с маской 11110111.Для проведения операций аналогового контроля и управления необходимы аналоговоцифровые и цифро-аналоговые преобразователи. Их мы будем изучать в главе 2.5.В приведенном нами ранее примере кванта регулирования температуры печи оператор« Tf:=control(Тemp); {измерить фактическую по каналу,}» задает операцию аналогового контроля АК.
Оператор «regulir(Up, nagr); { выдать значение Up по каналу nagr} задает операцию аналогового управления АУ. При этом микроконтроллер может выдать аналоговыйуправляющий сигнал на некоторый регулятор мощности, который сформирует адекватныйэтому сигналу энергетический поток на привод.Можно сформировать энергетический поток требуемой мощности и с помощью команд дискретного управления ДУ. Это делается с помощью фазоимпульсного или широтноимпульсного управления мощностью, которое рассмотрено в разделе 2.1. «Дискретные электронные компоненты САУ».Использование описанного процессного подхода к программированию систем управленияпозволяет существенно упростить программирование и отладку программного обеспечения, повышает его переносимость сUnобъекта на объект.R1R2R3R4Рассмотримпример.ДК1ДК2ДК3ДК4Допустим, мы управляем неSA2SA3SA1"Пуск" "Стоп" которым сканирующим приводом (рис.1.25).
Трехфазныйасинхронный двигатель МMприводит во вращение ходовой винт, который перемещаДУ1 (Пуск/Стоп)БЭАеткаретку от упора, оборудоДУ2 (Движение вправо)ДУ3 (Движение влево)ванного конечным выключа3х220х380Втелем SA1, до такого же упораРис. 1. 25.с конечным выключателемSA2. Конечные выключатели подключены к источнику постоянного напряжения Un через балластные резисторы R1 и R2. Как только доехали до упора, двигатель тормозится и реверсируется.Для энергообеспечения двигателя применен блок электроавтоматики БЭА.
Он подключенк сети 3х220х380В и имеет три управляющих входа: ДУ1, ДУ2 и ДУ3, в зависимости от уровнясигнала на которых, формируется энергетический поток на двигатель. Построен блок как комбинационная логическая схема, таблица истинности приведена ниже. Символ «Z» обозначает в нейноль или единица – безразлично.Кроме конечных выключателей SA1 и SA2, формирующих сигналы дискретного контроля ДК1 и ДК2 на реверс двигателя, мы должны иметь и две кнопки SA3 «Пуск» и SA4 «Стоп»,так же формирующих сигналы дискретного контроля ДК3 и ДК4 (рис.1. 25). Хотелось бы подчеркнуть, что две, вроде бы управляющие кнопки «Пуск» и «Стоп» формируют контролируемые,а не управляющие сигналы.В зависимости от состояния четырех сигналов дискретного контроля ДК1…ДК4 микроконтроллер формирует три сигнала дискретного управления, поступающих на блок энергоавтоматики. Сигнал ДУ1 «Пуск/Стоп» разрешает подачу напряжения на двигатель, сигналДУ2 задает движение вправо, а ДУ3 – влево (см.
таблицу истинности).Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru40Таблица истинности блока энергоавтоматики.Входные сигналыДУ1ДУ20Z10101111Выходные энергетические потокиДУ3Z0101Нет напряженияНет напряженияФазы А, В, С (каретка движется вправо)Фазы В, А, С (каретка движется влево)Нет напряженияНа рис. 1. 26 представлен автоматный граф состояний привода, являющийся четкимтехническим заданием и предложением на разработку программного обеспечения микроконтроллера.
Символом «х» на нем обозначен сигнал с соответствующего конечного выключателя SA.x2x1(x2)*(t=0.05c)2t<0.05cСостояниеx2*x4х2*хх3 0*3х2x4x413x4x1*x4x3ДУ1 ДУ2 ДУ30 Исходное0001 Вправо1102 Останов100101(x1)*(t=0.05c) 3 ВлевоРис. 1. 26Автоматный граф однозначно показывает, что должна делать система управления, нокак это все проделать, задача программиста.
И ее можно выполнить с той или иной степеньюкачества, определяемого:− требуемой памятью и быстродействием микроконтроллера;− надежностью работы аппаратной и программной частей системы управления;− уровнем использования ресурсов микроконтроллера;− универсальностью и переносимостью программного обеспечения на другие микроконтроллеры.Из графа видно, что суть управления заключается в проведении операций дискретногоконтроля (снятии логических переменных х1…х4 с объекта управления) и формировании взависимости от их значений состояния объекта. Состояние объекта однозначно определяетуправляющие воздействия ДУ1…ДУ3.
Переменные Х можно читать из четырех битов регистра дискретного контроля RG1, а для выдачи управляющего воздействия следует установитьсоответствующие биты регистра дискретного управления RG2.Хорош ли предложенный нами граф? Ну, во первых, он не полон. Так, в первом состоянии (движение вправо) анализируются только сигналы с правого конечного выключателях2 и с кнопки «Стоп» (х4). То, что мы не обращаем внимание на кнопку «Пуск» (х3) вполнедопустимо, но ведь может появиться низкий уровень одновременно на правом и левом конечных выключателях. Такой сигнал свидетельствует нам об аварийной ситуации. Пока мыне выделяем и не реагируем на них.
Другим недочетом является то, что при нажатии на кнопку «Стоп» привод мгновенно останавливается, а не уходит в какое либо исходное состояние,например, крайнее левое. Но пока, чтобы не усложнять пример, остановимся на таком графе.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н.
Э. Баумана, V_Ryabov@mail.ru41x2*x4 (цикл состояния 1)Cостояние 2x1*x4 (цикл состояния 3)На рисунке 1.27 приведен алгоритм реализации этого графа в виде единого потока, состоящего из четырех синхроквантов. Операторы, инициированные системными событиямиздесь выделены овалами. Критерий1начала потока – оператор 1 – Старт.СтартЦикл состояния 0Это безусловный оператор и он бу3дет обязательно выполнятся с за2Ждать 0.1спуском программного обеспеченияRG1dх3контроллера.