Часть1 (Рябов В.Т. - Комплексная разработка механических, электронных и программных компонентов ТО), страница 10
Описание файла
Файл "Часть1" внутри архива находится в папке "Рябов В.Т. - Комплексная разработка механических, электронных и программных компонентов ТО". PDF-файл из архива "Рябов В.Т. - Комплексная разработка механических, электронных и программных компонентов ТО", который расположен в категории "". Всё это находится в предмете "системы автоматического управления (сау) (мт-11)" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "системы автоматического управления (сау) (мт-11)" в общих файлах.
Просмотр PDF-файла онлайн
Текст 10 страницы из PDF
Событиями являются переходы из состояния в состояние, когда система задерживается в одном из состояний, осуществляютсядействия.В тексте часто смешиваются понятия «процесс» и «поток», если проблемы распределения и защиты памяти не существенны. С точки зрения программиста, обмен и взаимодействие между потоками внутри процесса может осуществляться либо через глобальные переменные, либо, при переходе к вложенной подпрограмме, через стековый механизм обмена с32использованием локальных переменных.
Причем, второй способ предпочтительнее и рекомендован к использованию для лучшей структуризации программ и автономности потоков ипроцедур, используемых в них.Обмен между процессами (точнее потоками разных процессов) может осуществлятьсятолько через посылку сообщений. Это делает потоки максимально автономными. Каждыйпоток может осуществляться на различных микроконтроллерах, может быть автономно запущен и отлажен.
Конечно, потоки влияют друг на друга. Так в приведенном примере с установкой диффузионной сварки процессы нагрева и откачки связаны тем, что нагрев инициирует газовыделение, ухудшает вакуум и не должен привести к выходу давления за установленные пределы. Но процесс нагрева может быть запущен автономно даже без откачки, еслиэмулировать сообщения о давлении при его запросах. Причем, процессу нагрева совершеннобезразлично, какими средствами ведется откачка, ему важен лишь интерфейс процесса откачки, чтобы запросить и получить фактическое значение давления.Обмен информацией путем передачи сообщений между потоками может быть реализован и в рамках одного процесса, что также стандартизует механизм обмена и повышает автономность программного кода потока.Наибольшая автономность различных процессов и потоков позволяет распараллелитьработы по программированию, повышает переносимость программного обеспечения, преемственность работ, использование программ сторонних производителей, облегчает отладку исопровождение программного продукта.Квантом будем называть отрезок потока между двумя системными событиями.
Потокможет содержать один или несколько квантов. В процессе выполнения кванта поток на другие не влияет. Взаимодействия осуществляются только после завершения кванта. Организованный таким образом интерфейс взаимодействия потоков (процессов) способствует их автономности.Рассмотрим и обсудим введенные нами понятия на примере потока или процесса регулирования температуры. Написан он на некотором паскалеподобном языке и носит учебныйхарактер. Процесс управляет подъемом температуры в печи от исходной до максимальнойTmax с градиентом dT градусов в 20 секунд.Циклически повторяющийся каждые 20 секунд, квант регулирования температурыописан внутри оператора while T<Tmax do.
В каждом проходе цикла встречается операторwait_t(20,4), передающий управление диспетчеру процессов с указанием, включить этотквант в очередь на исполнение с задержкой в 20 секунд и приоритетом 4. Диспетчер процессов ведет очередь всех квантов и запускает их на исполнение, как только условия запуска будут выполнены.thread 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}wait_t(20,4){передать управление диспетчеру процессов}33end;{ с указанием (Ждать 20 секунд с приоритетом 4)}Start(STAB_T, 1){запуск процесса стабилизации температуры}Start(SQUEEZING, 1){запустить процесс сжатия образцов}{через миллисекунду с приоритетом 0 }{Окончить процесс нагрева, когда температура достигнута.}Stopend.Выполнение кванта этого потока (участка кода внутри оператора while T<Tmax, ограниченного оператором wait_t()), займет менее миллисекунды и повторяется квант с периодичностью в 20 секунд.
Остальное время вычислительное ядро микроконтроллера свободно иможет обрабатывать кванты других потоков. Именно за счет быстрой обработки квантов различных потоков, даже на одном микроконтроллере добиваются квазипараллельности выполнения управляющей программы.Каждый поток (и квант) имеет критерий начала. По сути, это описание системногособытия, когда поток должен быть поставлен в очередь на исполнение. Критерий начала потока должен быть описан в других потоках или процессах, либо определяться внешними поотношению к управляющей программе событиями. В приведенном примере операторStart(STAB_T, 0, 0) поставит в очередь диспетчеру процессов поток стабилизации температуры STAB_T c приоритетом 0, а оператор Start(SQUEEZING,0) - процесс сжатия свариваемыхобразцов.
Приоритет говорит о том, что если времена запуска у различных квантов совпадут,диспетчер выберет квант с максимальным приоритетом. Здесь квант с нулевым приоритетомсчитается самым «важным», хотя в других операционных системах или средах исполненияжесткого реального времени (ОСРВ) может быть и иначе. Например, в системе Neutrino, чемпоказатель приоритета выше, тем процесс приоритетнее. Если совпадут времена запуска иприоритеты квантов, выполняется обычно квант, ранее поставленный в очередь.
Существуюти другие алгоритмы и даже стратегии ведения очереди потоков или квантов.Оператор wait_t(20,4) передает управление диспетчеру процессов и ставит квант процесса NAGREV в очередь на исполнения через 20 секунд с приоритетом 4. Таким образом, завершение оператора wait_t() также является системным событием.Критерий окончания указывает, что поток более не нужен и может не рассматриваться диспетчером процессов. Здесь это оператор Stop. После выполнения этой системной процедуры поток NAGREV будет исключен из очереди диспетчера процессов. Его дескриптор, вкотором хранится контекст, адрес первой команды кода и условия запуска процесса, будетуничтожен, чтобы не перегружать диспетчер излишней работой. Далее процесс нагрева втехнологическом цикле не нужен.Помимо критериев начала и окончания, каждый поток характеризуется управляющими, управляемыми и контролируемыми переменными.Управляемая переменная характеризует качество ведения процесса.
В нашем примередиффузионной сварки управляемой переменной процесса или потока нагрева является температура изделия. Эта переменная в кванте управления процессом представлена значением Tfв формате реального числа.Управляющей переменной, определяющей мощность, выделяющуюся на нагревателепечи, является значение Up, рассчитанное в процедуре закона регулированияPID(T,Tf,Tint,Tdif) в зависимости от требуемой температуры Т, или уставки, фактическойтемпературы Tf и постоянных интегрирования Tint (задержки) и дифференцирования Tdif(опережения). Из курса «Управление в технических системах» вы должны знать, чем определены и как выбираются эти параметры.В нашем примере управляемую переменную, определяющую качество процесса можнонепосредственно контролировать, поэтому температура Tf является одновременно и контролируемой переменной.
Ее значение формируется функцией control(Тemp), которая преобразует34Очередь квантовнормированный аналоговый сигнал с термопары, расположенной вблизи зоны сварки, в дискретный вид. При этом сигнал с термопары фильтруется (очищается от помех). Как это делается, мы будем рассматривать далее гл.2.Кванты потоков, используемых в САУ разделяют на синхрокванты, запускаемые илиперезапускаемые по времени, как в рассмотренном ранее примере программы нагрева и кванты, запускаемые внешними событиями - интеркванты. Эти внешние по отношению куправляющей программе события происходят, например, при нажатии на какую-либо кнопкууправления на пульте, при срабатывании конечных выключателей и т.п. Из курса вакуумнойтехники вы знаете, что есть так называемые блокировочные вакуумметры, которые выдаютдискретный сигнал, если давление превзойдет или опустится ниже некоторого заранее установленного уровня, причем, таких уровней может быть несколько.
Это также будет внешнеесобытие. О наступлении внешнего события системе управления обычно сообщает прерывание.Диспетчер процессов или задач, являющийся неотъемлемой частью программного современных САУ, следит за очередностью исполнения квантов потоков. При возникновениивнешнего системного события он через прерывание узнает об этом и ставит в очередь на исполнение связанный с этим событием интерквант.Описанное деление программного обеспечения на процессы, потоки и кванты заложено во все современные средства разработки и поддержки исполнения управляющей программы, но имеет свои особенности в каждой конкретной системе.