Главная » Просмотр файлов » Рябов В.Т. - Функции, структура и элементная база систем автоматического управления

Рябов В.Т. - Функции, структура и элементная база систем автоматического управления (1041593), страница 11

Файл №1041593 Рябов В.Т. - Функции, структура и элементная база систем автоматического управления (Рябов В.Т. - Функции, структура и элементная база систем автоматического управления) 11 страницаРябов В.Т. - Функции, структура и элементная база систем автоматического управления (1041593) страница 112017-12-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 11)























ходить одновременно. Если приняли, что событие мо-















Программное

Внешнее

ментально и представляет собой точку на оси времени,







то вполне оправдано, что эти точки всегда различны и























события следуют одно за другим. События выступают



Локальное

Системное

как следствия каких-либо действий, либо, как причина







действий. Действия уже протяженны во времени и, по-



Рис. 1. 22.

этому могут протекать параллельно.





События могут непосредственно определяться



п рограммой (программные события) и быть внешни-



ми событиями по отношению к управляющей программе. Примером программного события является появление новой информации после завершения выполнения очередной команды программного кода.



Для фиксации внешних событий в микроконтроллерах предусмотрен механизм пре-рываний, с которым Вы очевидно знакомы . Позже мы еще раз рассмотрим этот механизм ввиду его важности для систем управления. Существуют и другие способы фиксации внеш-них событий диспетчером процессов, но для нас пока это особого значения не имеет.



Все события можно разделить на локальные, имеющие значение только для данного потока, и системные (рис.1. 22). Системные события каких либо процессов (потоков) участ-вуют в инициализации действий в других процессах или потоках. Иначе говоря, событие данного потока, или какое либо внешнее по отношение к управляющей программе событие (непосредственно не вычисляемое в ней), является системным, если оно обрабатывается ядром операционной системы (диспетчером процессов ) и может участвовать в перераспреде-лении вычислительных ресурсов между потоками. На рис.1.22 показано, что внешнее собы-тие не может быть локальным. Прерывание, предусмотренное для фиксации внешнего собы-тия, всегда запускает подпрограмму обслуживания этого прерывания , в результате чего пере-распределяются вычислительные ресурсы микроконтроллера. Если, конечно прерывание не запрещено, но тогда и внешнего события для системы управления не будет.



Процесс в нашем понимании, это совокупность событий и действий, объединенных общей природой и причинно-следственными связями и направленных на достижения постав-



ленной цели. С принятой в стандарте POSIX (Portable Operation System Interface Exchange)



точки зрения , процесс – это исполняемый программный код, расположенный в физически защищенном объеме памяти.

Последовательный процесс или поток (нить - thread) – это последовательность свя-



занных событий и действий . Каждое событие является следствием предыдущих действий и инициатором последующих. Рассмотренный в примере с роботом автоматный граф является типовым последовательным процессом или потоком. Событиями являются переходы из со-стояния в состояние, когда система задерживается в одном из состояний, осуществляются действия.



В тексте часто смешиваются понятия «процесс» и «поток», если проблемы распреде-ления и защиты памяти не существенны. С точки зрения программиста, обмен и взаимодей-ствие между потоками внутри процесса может осуществляться либо через глобальные пере-менные, либо, при переходе к вложенной подпрограмме, через стековый механизм обмена с



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;



{Аппаратные переменные, связанные

}



begin

{с датчиком температуры и регулятором напряжения.}













while T<Tmax do

{Пока заданная температура меньше максимальной

}



begin









T:=T+dT;



{рассчитать заданную температуру,}





Tf:=control(Тemp);



{измерить фактическую по каналу,}





Up:=PID(T,Tf, Tint, Tdif);



{рассчитать управление по ПИД- }





regulir(Up, nagr);

{закону и выдать значение Up по каналу nagr}





wait_t(20,4)

{передать управление диспетчеру процессов}







33



end; { с указанием (Ждать 20 секунд с приоритетом 4)}



Start(STAB_T, 1) {запуск процесса стабилизации температуры}

Start(SQUEEZING, 1) {запустить процесс сжатия образцов}

{через миллисекунду с приоритетом 0 }

Stop {Окончить процесс нагрева, когда температура достигнута.}



end.

Выполнение кванта этого потока (участка кода внутри оператора 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 будет исключен из очереди диспетчера процессов. Его дескриптор, в котором хранится контекст, адрес первой команды кода и условия запуска процесса, будет уничтожен, чтобы не перегружать диспетчер излишней работой. Далее процесс нагрева в технологическом цикле не нужен.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6280
Авторов
на СтудИзбе
315
Средний доход
с одного платного файла
Обучение Подробнее