Гл1_06 (1031650), страница 9
Текст из файла (страница 9)
Эти внешние по отношению куправляющей программе события происходят, например, при нажатии на какую-либо кнопкууправления на пульте, при срабатывании конечных выключателей и т.п. Из курса вакуумнойтехники вы знаете, что есть так называемые блокировочные вакуумметры, которые выдаютдискретный сигнал, если давление превзойдет или опустится ниже некоторого заранее установленного уровня, причем, таких уровней может быть несколько. Это также будет внешнеесобытие. О наступлении внешнего события системе управления сообщает прерывание.Вы, очевидно, из предшествующих курсов знакомы с механизмом прерывания микропроцессоров.
Мы в главе 3 еще будем подробно изучать этот раздел. Пока напомню, что посигналу прерывания микропроцессор (микроконтроллер) заканчивает очередную командувыполняемого участка программного кода, запоминает точку останова и переходит к подпрограмме обслуживания прерывания. Не будем пока касаться вопроса, как он находит эту подпрограмму (см.
гл. 3). Просто поверьте, что находит и переходит к ее обработке, а по завершению, снова возвращается к исходной точке основной программы.Строго говоря, выполнение заданной задержки времени, это тоже событие, но отставим деление на синхрокванты и интеркванты, запускаемые внешними событиями. Сигналывремени («тики») будем считать особыми, отличными от других внешних событий, их автоматическая обработка задействована во всех современных микроконтроллерах и компьютерах и поддерживается их аппаратным и программным обеспечением.Диспетчер процессов или задач, являющийся неотъемлемой частью программного современных САУ, следит за очередностью исполнения квантов потоков. При возникновениисистемного события он через прерывание узнает об этом и ставит в очередь на исполнениесвязанный с этим событием интерквант.Описанное деление программного обеспечения на процессы, потоки и кванты заложено во все современные средства разработки и поддержки исполнения управляющей програмРябов Владимир Тимофеевич.
Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru37Очередь квантовмы, но имеет свои особенности в каждой конкретной системе. Это часто приводит к терминологическим проблемам. Так, в системе программирования CoDeSys, построенной в соответствии с международным стандартом МЭК 61131-3 рассмотренный нами квант определенкак задача. Задача имеет название, приоритет и тип. Тип определяет условие вызова задачина исполнение. Тип задачи cyclic определяет ее как синхроквант, тип triggered by externalevent – как интерквант.ДиспетчерВ некоторых системах кванты, запускаемыепроцессоввнешними событиями, разделяют на экстракванты,Внешнеезапускаемые по возникновению прерывания, не ожиЭкстраквантсобытиедая завершения выполняемого кванта, и обычныеНа исполнениеинтеркванты, которые ставятся в очередь диспетчером процессов с установленным приоритетом и заОператорпускаются в порядке очереди.
Рис. 1. 23 иллюстрируСинхроквантпрограммыет способы запуска синхро, интер и экстраквантов наисполнение.КвантШирокое использование экстраквантов приВнешнееразработке управляющих программ снижает предскаИнтерквантсобытиезуемость их поведения и вероятность успешного ибыстрого восстановления управляющей программыпри программных сбоях. Повышается и трудоемкостьРис. 1. 23.отладки программного обеспечения.Если разбивать код управляющей программы на достаточно короткие кванты (околомиллисекунды), задержка реакции на запуск интеркванта будет также в этих пределах, чеговполне достаточно для большинства ситуаций в технологическом оборудовании, поэтомуэкстракванты используют обычно в чрезвычайных аварийных ситуациях, например, при обнаружении пропадания питания на микроконтроллере.
Мы при рассмотрении супервизорныхсхем рассмотрим реакцию на такие ситуации.Внутри квантов пользователя содержатся основные элементарные утилиты взаимодействия с объектом по выявлению его состояния:ДК – дискретный контроль состояния элементов объекта;АК - аналоговый контроль состояния элементов объекта.Либо утилиты по изменению состояния объекта управления:ДУ – дискретное управление элементами объекта (включить или выключить привод, клапан и т.п.);АУ – аналоговое управление элементами объекта (подать управляющее напряжениезаданной величины на регулятор нагревателя, на блок управления двигателем постоянноготока или управления асинхронным трехфазным двигателем и т.п.).Через операции ДУ, ДК, АУ и АК и осуществляется взаимодействие системы управления и управляемого объекта. Они и являются интерфейсом, между ними.
Определимся, чтоже такое операции контроля и управления, события или действия? Начало, либо конец операции – событие, сама операция – действие. Так, операция аналогового контроля, когда микроконтроллер получает дискретный код контролируемого аналогового сигнала объекта, проводится с помощью аналогово-цифрового преобразователя (АЦП). Длится она заметное время, около 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, в зависимости от уровнясигнала на которых, формируется энергетический поток на двигатель. Построен блок как комбинационная логическая схема, таблица истинности приведена ниже.















