Гл1_06 (1031608), страница 9
Текст из файла (страница 9)
В каждом проходе цикла встречается операторdelay_t(20,4), передающий управление диспетчеру процессов с указанием, включить этотквант в очередь на исполнение с задержкой в 20 секунд и приоритетом 4. Диспетчер процессов ведет очередь всех квантов и запускает их на исполнение, как только условия запуска будут выполнены.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru35thread NAGREV;Var T, Tmax, dT ,Tf, Up, Tint, Tdif: real;{T, Tmax Заданная, максимальная и }{приращение температуры, Tf -фактическая температура,}{Up - управление, Tint, Tdif - постоянные времени.}Temp, Nagr : Channal;{Аппаратные переменные, связанные}{с датчиком температуры и регулятором напряжения.}beginwhile T<Tmax do {Пока заданная температура меньше максимальной,}beginT:=T+dT;{рассчитать заданную температуру,}Tf:=control(Тemp);{измерить фактическую по каналу,}Up:=PID(T,Tf, Tint, Tdif);{рассчитать управление по ПИД- }regulir(Up, nagr);{закону и выдать значение Up по каналу nagr}delay_t(20,4){передать управление диспетчеру процессов}end;{ с указанием (Ждать 20 секунд с приоритетом 1)}Start(STAB_T, 0, 0) {запустить процесс стабилизации температуры}Start(SQUEEZING, 0.001, 1){запустить процесс сжатия образцов}через миллисекунду с приоритетом 0 }Stop{Окончить процесс нагрева, когда температура достигнута.}end.По времени, Выполнение кванта этого потока (участка кода внутри оператораwhile T<Tmax, ограниченного оператором delay_t()), займет менее миллисекунды и повторяется квант с периодичностью в 20 секунд.
Остальное время вычислительное ядро микроконтроллера свободно и может обрабатывать кванты других потоков. Именно за счет быстройобработки квантов различных потоков, даже на одном микроконтроллере добиваются квазипараллельности выполнения управляющей программы.Каждый поток (и квант) имеет критерий начала. По сути, это описание системногособытия, когда поток должен быть поставлен в очередь на исполнение. Критерий начала потока должен быть описан в других потоках или процессах, либо определяться внешними поотношению к управляющей программе событиями. В приведенном примере операторStart(STAB_T, 0, 0) поставит в очередь диспетчеру процессов поток стабилизации температуры STAB_T с временем запуска, равным моменту исполнения оператора Start и приоритетом0, а оператор Start(SQUEEZING, 0.001, 0) - процесс сжатия свариваемых образцов. Время запуска этого потока определено через миллисекунду после исполнения оператора Start также снулевым приоритетом.
Приоритет говорит о том, что если времена запуска у различныхквантов совпадут, диспетчер выберет квант с максимальным приоритетом. Здесь квант с нулевым приоритетом считается самым «важным», хотя в других операционных системах илисредах исполнения жесткого реального времени (ОСРВ) может быть и иначе. Например, всистеме Neutrino, чем показатель приоритета выше, тем процесс приоритетнее. Если совпадут времена запуска и приоритеты квантов, выполняется обычно квант, ранее поставленный вочередь. Существуют и другие алгоритмы и даже стратегии ведения очереди потоков иликвантов.Оператор delay_t(20,4) передает управление диспетчеру процессов и ставит квантпроцесса NAGREV в очередь с временем исполнения на 20 секунд большим, чем момент завершения delay_t() и приоритетом 4.
Таким образом, завершение оператора delay_t() такжеопределяет системное событие.Критерий окончания указывает, что поток более не нужен и может не рассматриваться диспетчером процессов. Здесь это оператор stop. После выполнения этой системной проРябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru36цедуры поток NAGREV будет исключен из очереди диспетчера процессов. Его дескриптор, вкотором хранится контекст, адрес первой команды кода и условия запуска процесса, будетуничтожен, чтобы не перегружать диспетчер излишней работой. Далее процесс нагрева втехнологическом цикле не нужен.Помимо критериев начала и окончания, каждый поток характеризуется управляющими, управляемыми и контролируемыми переменными.Управляемая переменная характеризует качество ведения процесса. В нашем примередиффузионной сварки управляемой переменной процесса или потока нагрева является температура изделия.
Эта переменная в кванте управления процессом представлена значением Tfв формате реального числа.Управляющей переменной, определяющей мощность, выделяющуюся на нагревателепечи, является значение Up, рассчитанное в процедуре закона регулированияPID(T,Tf,Tint,Tdif) в зависимости от требуемой температуры Т, или уставки, фактическойтемпературы Tf и постоянных интегрирования Tint (задержки) и дифференцирования Tdif(опережения).
Из курса «Управление в технических системах» вы должны знать, чем определены и как выбираются эти параметры.В нашем примере управляемую переменную, определяющую качество процесса можнонепосредственно контролировать, поэтому температура Tf является одновременно и контролируемой переменной. Ее значение формируется функцией control(Тemp), которая преобразуетнормированный аналоговый сигнал с термопары, расположенной вблизи зоны сварки, в формат реального числа. При этом сигнал с термопары фильтруется (очищается от помех). Как этоделается, мы будем рассматривать далее (пример такой функции приведен в гл.5.3.Г).Кванты потоков, используемых в САУ разделяют на синхрокванты, запускаемые илиперезапускаемые по времени, как в рассмотренном ранее примере программы нагрева и кванты, запускаемые внешними событиями - интеркванты.
Эти внешние по отношению куправляющей программе события происходят, например, при нажатии на какую-либо кнопкууправления на пульте, при срабатывании конечных выключателей и т.п. Из курса вакуумнойтехники вы знаете, что есть так называемые блокировочные вакуумметры, которые выдаютдискретный сигнал, если давление превзойдет или опустится ниже некоторого заранее установленного уровня, причем, таких уровней может быть несколько.
Это также будет внешнеесобытие. О наступлении внешнего события системе управления сообщает прерывание.Вы, очевидно, из предшествующих курсов знакомы с механизмом прерывания микропроцессоров. Мы в главе 3 еще будем подробно изучать этот раздел. Пока напомню, что посигналу прерывания микропроцессор (микроконтроллер) заканчивает очередную командувыполняемого участка программного кода, запоминает точку останова и переходит к подпрограмме обслуживания прерывания. Не будем пока касаться вопроса, как он находит эту подпрограмму (см.
гл. 3). Просто поверьте, что находит и переходит к ее обработке, а по завершению, снова возвращается к исходной точке основной программы.Строго говоря, выполнение заданной задержки времени, это тоже событие, но отставим деление на синхрокванты и интеркванты, запускаемые внешними событиями. Сигналывремени («тики») будем считать особыми, отличными от других внешних событий, их автоматическая обработка задействована во всех современных микроконтроллерах и компьютерах и поддерживается их аппаратным и программным обеспечением.Диспетчер процессов или задач, являющийся неотъемлемой частью программного современных САУ, следит за очередностью исполнения квантов потоков.
При возникновениисистемного события он через прерывание узнает об этом и ставит в очередь на исполнениесвязанный с этим событием интерквант.Описанное деление программного обеспечения на процессы, потоки и кванты заложено во все современные средства разработки и поддержки исполнения управляющей програмРябов Владимир Тимофеевич.
Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru37Очередь квантовмы, но имеет свои особенности в каждой конкретной системе. Это часто приводит к терминологическим проблемам. Так, в системе программирования CoDeSys, построенной в соответствии с международным стандартом МЭК 61131-3 рассмотренный нами квант определенкак задача.
Задача имеет название, приоритет и тип. Тип определяет условие вызова задачина исполнение. Тип задачи cyclic определяет ее как синхроквант, тип triggered by externalevent – как интерквант.ДиспетчерВ некоторых системах кванты, запускаемыепроцессоввнешними событиями, разделяют на экстракванты,Внешнеезапускаемые по возникновению прерывания, не ожиЭкстраквантсобытиедая завершения выполняемого кванта, и обычныеНа исполнениеинтеркванты, которые ставятся в очередь диспетчером процессов с установленным приоритетом и заОператорпускаются в порядке очереди. Рис. 1.
23 иллюстрируСинхроквантпрограммыет способы запуска синхро, интер и экстраквантов наисполнение.КвантШирокое использование экстраквантов приВнешнееразработке управляющих программ снижает предскаИнтерквантсобытиезуемость их поведения и вероятность успешного ибыстрого восстановления управляющей программыпри программных сбоях. Повышается и трудоемкостьРис. 1. 23.отладки программного обеспечения.Если разбивать код управляющей программы на достаточно короткие кванты (околомиллисекунды), задержка реакции на запуск интеркванта будет также в этих пределах, чеговполне достаточно для большинства ситуаций в технологическом оборудовании, поэтомуэкстракванты используют обычно в чрезвычайных аварийных ситуациях, например, при обнаружении пропадания питания на микроконтроллере.
Мы при рассмотрении супервизорныхсхем рассмотрим реакцию на такие ситуации.Внутри квантов пользователя содержатся основные элементарные утилиты взаимодействия с объектом по выявлению его состояния:ДК – дискретный контроль состояния элементов объекта;АК - аналоговый контроль состояния элементов объекта.Либо утилиты по изменению состояния объекта управления:ДУ – дискретное управление элементами объекта (включить или выключить привод, клапан и т.п.);АУ – аналоговое управление элементами объекта (подать управляющее напряжениезаданной величины на регулятор нагревателя, на блок управления двигателем постоянноготока или управления асинхронным трехфазным двигателем и т.п.).Через операции ДУ, ДК, АУ и АК и осуществляется взаимодействие системы управления и управляемого объекта.
Они и являются интерфейсом, между ними. Определимся, чтоже такое операции контроля и управления, события или действия? Начало, либо конец операции – событие, сама операция – действие. Так, операция аналогового контроля, когда микроконтроллер получает дискретный код контролируемого аналогового сигнала объекта, проводится с помощью аналогово-цифрового преобразователя (АЦП). Длится она заметное время, около 10 мкс. Здесь будет два события, начало преобразования «старт АЦП», оно инициирует процесс преобразования, а после его завершения произойдет событие «конец преобразования» и результат будет считан в программе управления.Операции дискретного контроля ДК бывают с программной и аппаратной инициализацией. При программной инициализации контроль проводится по инициативе программногообеспечения. При аппаратной инициализации изменение состояния объекта контроля фиксиРябов Владимир Тимофеевич.