Гл1_06 (1031608), страница 8
Текст из файла (страница 8)
Программно эмулировать локальный терморегулятор не сложно, но это не дорогой блок и я бы все оставил, как нарис. 1.21. А вот регулируемый привод РППТ сравнительно дорог, но если нет достаточногоопыта разработки таких систем, то пожалуй, разработка технической документации, программного обеспечения, изготовление, отладка и доводка управляющей приводом программыобойдутся гораздо дороже, не говоря о потраченном времени.***Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э.
Баумана, V_Ryabov@mail.ru32Необычайно быстрый прогресс микропроцессорных средств обработки информации,появление надежных, дешевых, мощных и достаточно универсальных микроконтроллеровобусловило их широчайшее применение в системах управления технологическим оборудованием. Сегодня это основной неотъемлемый составной элемент этих систем, которые строятсякак информационно-управляющие сети.По месту, занимаемому в структуре управляющей сети и выполняемым функциям,контроллеры делят на центральные, узловые и локальные.С точки зрения разработчика технологического оборудования в соответствии с особенностями построения, комплектации, использования и программирования микроконтроллеры делят на ряд групп.Локальные регуляторы – это универсальные микроконтроллеры для управления рядомшироко распространенных технологических операций, в которых требуется обеспечиватьпредписанную траекторию изменения одного, реже нескольких, параметров во времени.
Например, регуляторы температуры, регуляторы скорости вращения асинхронных двигателей,контроллеры шаговых двигателей, регуляторы давления и состава среды в вакуумных технологических камерах и т.п. Аппаратно и программно это законченные изделия, требующиеминимальной адаптации и настройки в конкретном оборудовании.Программируемые промышленные контроллеры ПЛК состоят из модуля вычислительного ядра и законченных модулей связи с объектом управления.
Имеют встроенное базовоепрограммное обеспечение (специальная операционная система), обеспечивающее выполнение и поддержку разработки программ пользователя. Для разработки и отладки управляющихпрограмм имеются ряд универсальных языков программирования (см. раздел 1.5).Промышленные компьютеры могут работать под управлением различных операционных систем и более гибко адаптируются под объект управления.Средства распределенного сбора данных и управления состоят из согласованных между собой блоков ввода-вывода, устройств аналоговой обработки информации и нормализациисигналов датчиков, программируемых логических контроллеров, способных выполнятьфункции локальных и узловых контроллеров.
Все это охвачено единой сетью, едиными средствами программирования.Вопросы к экзамену.1. Микроконтроллер – основная структурная единица аппаратного обеспечения САУ.Состав и функции, выполняемые микроконтроллером.2. Центральные, узловые и локальные микроконтроллеры. Выполняемые функции и особенности построения.3. Локальные регуляторы, программируемые логические контроллеры, промышленныекомпьютеры и средства распределенного сбора данных и управления. Особенностипостроения и программирования.4. Типовые топологии управляющих сетей.5. Вариантность построения управляющих сетей. Примеры.Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им.
Н. Э. Баумана, V_Ryabov@mail.ru331.4. Последовательный процесс – основная структурная единицапрограммного обеспечения САУПрограммное обеспечение системы автоматического управления разделяют на системное и пользовательское. При разработке конкретной программы всегда пользуются некоторым набором утилит общего применения.
Это программы тестирования аппаратной частимикроконтроллера, утилиты для работы с плавающей точкой, диспетчеры задач для поддержания их исполнения в реальном времени и т.п. При программировании пользуются этимисистемными утилитами и подпрограммами и на их основе и с их поддержкой создают управляющую программу – программу пользователя, описывающую правила выполнения предписанных системе функций. Функция определяет цель некоторых действий.Для достижения поставленных целей реализуют ряд процессов, т.е. решают ряд задач.Так, в рассмотренном ранее примере полуфабрикаты параллельно откачиваются, нагреваютсяи нагружаются. Прежде всего, введем и обсудим основные понятия и определения.Событие – это момент фиксации чего-либо важного для нас.
Не слишком четкое определение, но говорящее о том, что это понятие субъективное. Главное здесь, что событиемоментально. Введем важное допущение: два события не могут происходить одновременно.Если приняли, что событие моментально и представляет собой точку на оси времени, товполне оправдано, что эти точки всегда различны и события следуют одно за другим. События выступают как следствия каких-либо действий, либо, как причина действий. Действияуже протяженны во времени и, поэтому могут протекать параллельно.События могут непосредственно определяться программой (программные события)и быть внешними событиями по отношению к управляющей программе.
Примером программного события является появление новой информации после завершения выполненияочередной команды программного кода.Для фиксации внешних событий в микроконтроллерах предусмотрен механизм прерываний, с которым Вы очевидно знакомы. Позже мы еще раз рассмотрим этот механизмввиду его важности для систем управления. Существуют и другие способы фиксации внешних событий диспетчером процессов, но для нас пока это особого значения не имеет.Все события можно разделить на локальные,имеющие значение только для данного потока, и сисСобытиетемные (рис.1. 22).
Системные события каких либопроцессов (потоков) участвуют в инициализации действий в других процессах или потоках. Иначе говоря, соПрограммноеВнешнеебытие данного потока, или какое либо внешнее по отношение к управляющей программе событие (непосредственно не вычисляемое в ней), является системным, если оно обрабатывается ядром операционнойЛокальноеСистемноесистемы (диспетчером процессов) и может участвоватьв перераспределении вычислительных ресурсов междуРис.
1. 22.потоками. На рис.1.22 показано, что внешнее событиене может быть локальным. Прерывание, предусмотренное для фиксации внешнего события,всегда запускает подпрограмму обслуживания этого прерывания, в результате чего перераспределяются вычислительные ресурсы микроконтроллера. Если, конечно прерывание не запрещено, но тогда и внешнего события для системы управления не будет.Процесс в нашем понимании, это совокупность событий и действий, объединенныхобщей природой и причинно-следственными связями и направленных на достижения поставленной цели. С принятой в стандарте POSIX (Portable Operation System Interface Exchange)Рябов Владимир Тимофеевич. Кафедра «Электронные технологии в машиностроении»МГТУ им. Н. Э. Баумана, V_Ryabov@mail.ru34точки зрения, процесс – это исполняемый программный код, расположенный в физическизащищенном объеме памяти.Последовательный процесс или поток (нить - thread) – это последовательность связанных событий и действий.
Каждое событие является следствием предыдущих действий иинициатором последующих. Рассмотренный в примере с роботом автоматный граф являетсятиповым последовательным процессом или потоком. Событиями являются переходы из состояния в состояние, когда система задерживается в одном из состояний, осуществляютсядействия.Я в тексте часто смешиваю понятия «процесс» и «поток».
Мне пока «режет ухо» выражение «поток нагрева» и я по привычке говорю и пишу «процесс нагрева», если проблемыраспределения и защиты памяти не существенны.С точки зрения программиста, обмен и взаимодействие между потоками внутри процесса может осуществляться либо через глобальные переменные, либо, при переходе к вложенной подпрограмме, через стековый механизм обмена с использованием локальных переменных. Причем, второй способ предпочтительнее и рекомендован к использованию длялучшей структуризации программ и автономности потоков и процедур, используемых в них.Обмен между процессами (точнее потоками разных процессов) может осуществлятьсятолько через посылку сообщений.
Это делает потоки максимально автономными. Каждыйпоток может осуществляться на различных микроконтроллерах, может быть автономно запущен и отлажен. Конечно, потоки влияют друг на друга. Так в приведенном примере с установкой диффузионной сварки процессы нагрева и откачки связаны тем, что нагрев инициирует газовыделение, ухудшает вакуум и не должен привести к выходу давления за установленные пределы. Но процесс нагрева может быть запущен автономно даже без откачки, еслиэмулировать сообщения о давлении при его запросах. Причем, процессу нагрева совершеннобезразлично, какими средствами ведется откачка, ему важен лишь интерфейс процесса откачки, чтобы запросить и получить фактическое значение давления.Обмен информацией путем передачи сообщений между потоками может быть реализован и в рамках одного процесса, что также стандартизует механизм обмена и повышает автономность программного кода потока.Наибольшая автономность различных процессов и потоков позволяет распараллелитьработы по программированию, повышает переносимость программного обеспечения, преемственность работ, использование программ сторонних производителей, облегчает отладку исопровождение программного продукта.Квантом будем называть отрезок потока между двумя системными событиями.
Потокможет содержать один или несколько квантов. В процессе выполнения кванта поток на другие не влияет. Взаимодействия осуществляются только после завершения кванта. Организованный таким образом интерфейс взаимодействия потоков (процессов) способствует их автономности.Рассмотрим и обсудим введенные нами понятия на примере потока или процесса регулирования температуры. Написан он на некотором паскалеподобном языке и носит учебныйхарактер. Процесс управляет подъемом температуры в печи от исходной до максимальнойTmax с градиентом dT/20 градусов в секунду.Циклически повторяющийся каждые 20 секунд, квант регулирования температурыописан внутри оператора while T<Tmax do.