Главная страница Цифровые системы [0] [1] [2] [3] [4] [ 5 ] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] Глава 1. Введение руководство для читателя В этой книге нет новых теорий компьютерной архитектуры, программного обеспечения или методов управления - скорее это попытка объединить известные теории в рамках общего подхода. Сведения о компьютерах и программном обеспечении, теоретические положения и практические советы собраны вместе для того, чтобы дать представление о роли каждого из компонентов в компьютерной системе управления. Читателю этой книги не обязательно быть разработчиком систем реального времени или новых методов управления - он может быть "компетентным заказчиком" или пользователем, достаточно сведущим, чтобы построить работоспособную компьютерную систему управления из соответствующим образом подобранных аппаратных и программных компонентов и оценить ее возможности и ограничения. Авторы, однако, надеются, что разработчики систем и специалисты из смежных областей используют эту книгу, чтобы расширить кругозор и посмотреть на свою специальность с новой точки зрения. Требования к уровню подготовки Материал представлен так, чтобы читателю не требовалось каких-либо специальных знаний по каждой из рассматриваемых областей. Однако предполагается, что читатель обладает некоторой теоретической подготовкой, включая: - основы математического анализа; - основы теории электрических цепей; - основы автоматического регулирования с обратной связью; - базовые принципы структуры и функционирования компьютеров; - программирование на алгоритмических языках высокого уровня, например С, FORTRAN, Pascal. Определенное знакомство с теорией дифференциальных уравнений и матричным анализом будет полезно для более глубокого восприятия ряда утверждений, хотя это необязательно. При выборе тем, представленных в книге, авторы стремились к полноте охвата, хотя, с другой стороны, часто вынуждены были придерживаться определенных границ. Например, было бы бесполезно обсуждать основы цифровой обработки данных или описывать конкретный язык программирования, поскольку эти сведения являются частью базовой подготовки любого инженера и изложены в многочисленных учебниках. Вместо этого включено детальное описание системных шин и программирования в режиме реального времени, поскольку это достаточно новая информация, которая является существенным дополнением к основам знаний о компьютерах и программном обеспечении. То же относится к теории автоматического регулирования, поскольку анализ простейшего регулятора является обязательной частью учебного плана любого инженерного факультета, а соответствующей учебной литературы более чем достаточно. В отношении цифровых (дискретных) регуляторов положение несколько иное, поскольку большинство монографий могут скорее отпугнуть читателя-неспециалиста, если у него нет необходимости изучать материал в полном объеме. При изложении других тем, от теории цифровых фильтров до основ передачи информации, авторы старались разумно сочетать теоретическое описание с практическими примерами и иллюстрациями. Структура книги Каждая глава касается только одного аспекта систем компьютерного управления. Главы 2-6 посвящены теории моделирования и управления (при этом содержат практические примеры и ссылки на существующее оборудование). Главы 7-11 описывают современную аппаратуру и методологические основы программного обеспечения, используемые в системах управления процессами. В главе 2 определены понятия программирования в режиме реального времени и компьютерного управления процессами. На простом примере иллюстрируется идея параллельных процессов. Различные проблемы компьютерного управления процессами классифицируются по их характеру и сложности. Конкретные вопросы, возникающие при обсуждении этих проблем, выступают в качестве указателей на последующие главы книги. В главе 3 рассмотрены различные концепции и методы описания систем, причем наибольшее внимание уделено описанию динамических систем, сначала на основе непрерывных, а затем дискретных моделей. Кроме того, представлены подходы к описанию физических процессов, для которых доступна лишь неполная информация. Измерения, сбор данных и передача сигналов обсуждаются в главе 4. Основные принципы работы датчиков и исполнительных механизмов описаны наряду с вопросами, касающимися электрических шумов, возмущений и согласования сигналов. Глава 5 посвящена обработке сигналов, главным образом фильтрации для снижения влияния шумов и возмущений; рассмотрены как аналоговая, так и цифровая фильтрации. Теорема дискретизации, касающаяся преобразования аналоговых сигналов в цифровые и наоборот, составляет основное содержание главы. Дополнительно рассмотрены некоторые методы проверки сигналов. В главе 6 описана компьютерная реализация регуляторов. Рассмотрены различные структуры управления и приведены примеры программ, реализующих соответствующие цифровые регуляторы; проанализированы их возможности и ограничения. В главе 7 рассмотрены управление последовательностью событий и его реализация на основе программируемых логических контроллеров, т. е. простейших автономных микрокомпьютеров, работающих на основе бинарных измерений и управляющих сигналов. Несмотря на исключительную простоту (или благодаря ей), эти контроллеры играют заметную роль во многих промышленных приложениях. В главе также рассмотрены функциональные карты, которые являются мощным средством структурирования программ даже для очень сложных задач управления. Глава 8 посвящена архитектуре системных шин; наибольшее внимание уделено стандарту VME. Передача данных является исключительно важным элементом систем промышленной автоматизации. В главе 9 описание процесса обмена информацией опирается на модель взаимодействия открытых систем (ВОС). Рассмотрены некоторые стандарты, часто используемые в промышленности, в частности протокол автоматизации Производства (MAP) и шина локального управления (Fieldbus). Глава 10 является введением в специальные методы мультипрограммирования и программирования для систем реального времени - защита ресурсов, синхронизация и обмен данными между программными модулями. В главе показано, какими Методами операционная система обеспечивает исполнение нескольких программ режиме реального времени. Дан краткий обзор существующих операционных сис- тем и языков программирования с точки зрения их соответствия требованиям систем реального времени. Организация взаимодействия (интерфейс) между пользователем и компьютером играет существенную роль в работе управляющих систем и часто является решающим фактором успешного внедрения системы. Некоторые важные принципы, связанные с применением управляющих систем в промышленных установках, описаны в главе 11. Тематика глав 3-11 обобщена в главе 12 с точки зрения практического подхода к управляющим системам. В условиях производства компьютерные системы управления обычно не создаются каждый раз заново на пустом месте. Поэтому в этой главе рассмотрены вопросы применения существующих на рынке компонентов, их работа и объединение. Некоторые поставщики предлагают системы, которые можно настраивать параметрически, не прибегая к обычному программированию; во многих приложениях можно использовать и "коробочное" {off-the-shelf) программное обеспечение. Приведены примеры, иллюстрирующие типичные проблемы и способы их практического решения. Все примеры программ в книге написаны на языке Pascal, поскольку он понятен даже неспециалистам. Каждая глава содержит список рекомендуемой литературы, чтобы дать читателю возможность глубже изучить соответствующий предмет. Рекомендации по дальнейшему чтению Цитата в начале главы заимствована из классической книги 1970-х годов [Pirsig, 1974]. Многие из сделанных в ней замечаний, касающихся технологии, по-прежнему представляют значительный интерес. Необходимо помнить и об исполненном юмора предупреждении автора: "Не следует использовать эту книгу как руководство по доктрине дзен-буддизма. Она также в очень малой степени посвящена и мотоциклам". Истинным шедевром 1980-х годов, касающимся сложных структур, информации, связи и искусственного интеллекта, является книга [Hoftstadter, 1979]. Многочисленные параллели между музыкой, искусством, древними языками, биологией и компьютерами самым естественным образом включаются в изложение и заставляют читателя смотреть на многие вещи совершенно по-новому. Многие интересные статьи об управлении процессами и его технологических применениях были опубликованы в журнале Scientific American, например [Spector, 1984] и [Ginzberg, 1982]. Высококачественное описание возможностей программного обеспечения содержится в [Кау, 1977] и [Кау, 1984]. Несмотря на бурное развитие компьютерных технологий, эти статьи до сих пор остаются актуальными. Особенности цифрового управления процессами Процессы реального времени. Методы программирования. Задачи цифрового управления Обзор В этой главе рассмотрены наиболее характерные задачи автоматизации процессов и особенности их решения с помощью цифровых систем управления. Каждая обсуждаемая тема является введением в материал последующих глав. Для иллюстрации практических задач и подходов к их решению подробно описываются два модельных примера - система электропривода и управление станцией биологической очистки сточных вод, - ссылки на которые приводятся во многих местах книги. Эти конкретные процессы были выбраны потому, что они, во-первых, имеют разные масштабы времени, а во-вторых, включают в себя многие задачи, типичные для других приложений цифрового управления. Проблема работы в реальном масштабе времени с точки зрения компьютерного программирования анализируется в разделе 2.1. В разделе 2.2 представлены типичные примеры управления процессами, а в разделе 2.3 описываются основные проблемы компьютерного управления со ссылками на последующее изложение. Модельные примеры, используемые в книге, описаны в разделе 2.4. 2.1. Управление процессом в реальном времени Компьютеры, управляющие процессами, имеют другие задачи, нежели компьютеры, используемые для "классической" обработки информации. Основная разница состоит в том, что управляющий компьютер должен работать со скоростью, соответствующей скорости процесса (рис. 2.1). Само понятие "реальное время" указывает на то, что в реакции компьютерной системы на внешние события не должно быть заметного запаздывания. оператор компьютер, работающий в режиме реального времени внешняя среда физический/ технический процесс Рис. 2.1. Применение компьютера в управлении процессом Другая главная особенность компьютерного управления процессом заключается в том, что ход исполнения программы нельзя определить заранее. Внешние сигналы Могут прерывать или изменять последовательность исполнения операторов про- Глава 2. Особенности цифрового управления процессами 2 1 Управление процессом в реальном времени граммы, причем для каждого нового прогона по-разному. Кроме того, существует проблема эффективного использования ресурсов компьютерной системы с учетом временных ограничений. Все это требует специальных методов программирования. Дополнительную проблему представляет собой тестирование систем реального времени из-за отсутствия предсказуемого порядка выполнения операторов программы по сравнению с обычными компьютерными системами. Параллельность - одно из важных свойств реального мира. Все события вокруг нас, мы сами и фактически любые физические процессы можно представить в виде множества "подпроцессов", которые протекают параллельно. Из этого свойства следует важный вывод: компьютер, взаимодействующий с таким процессом или управляющий им, должен учитывать эту параллельную природу, а в некоторых ситуациях и работать в соответствии с ней. Естественным следствием параллельной природы реального мира является то, что компьютер должен уметь управлять параллельными задачами. В этом и заключается отличие управляющего компьютера от обычного, для которого естественным является последовательный режим. 2.1.1. Пример - пресс для пластика Управление прессом для пластика - это пример типичной задачи компьютерного управления процессом. Компьютер должен одновременно регулировать температуру (поддерживать ее постоянной) и координировать последовательность технологических операций. Если применять обычные методы программирования, то задача структурирования программы становится неразрещимой. Поэтому требуется другой подход. расплавленный пластик регулирование нагрева температура серия импульсов датчик импульсов цилиндр давления влево вправо команды перемещения правое крайнее положение левое крайнее положение компьютер, управляющий процессом Рис. 2.2. Пресс для пластика Пресс для пластика представлен на рис. 2.2. Контейнер содержит расплавленный пластический материал; температура пластика должна поддерживаться в пределах узкого диапазона. Управляющий компьютер периодически считывает текущую температуру и рассчитывает тепло, необходимое для ее поддержания на требуемом уровне. Тепло поступает от нагревательного элемента, управляемого компьютером. Время его работы согласовано с количеством тепла, которое необходимо подвести. Нижняя часть пресса состоит из порщня, выталкивающего определенное количество расплавленного пластика через насадку. Когда поршень находится в крайнем правом положении, цилиндр заполняется пластиком. Затем поршень быстро перемещается влево, выдавливая требуемое количество пластика. Положение поршня контролирует импульсный датчик, генерирующий определенное число импульсов на каждый миллиметр перемещения, а объем выдавливаемого пластического материала определяется числом импульсов за время перемещения. Движение поршня прекращается при достижении заданного числа импульсов. Чтобы обеспечить приемлемую производительность, температура пластика должна иметь заданное значение к тому моменту, когда поршень при движении вправо минует выходное отверстие контейнера. Компьютерная система должна регулировать температуру и движение поршня одновременно. Значение температуры поступает в виде непрерывного сигнала от датчика. Положение поршня рассчитывается исходя из числа импульсов. Кроме того, еще два датчика генерируют двоичные сигналы при достижении поршнем крайнего положения. Компьютер не содержит отдельного внутреннего интервального таймера и поэтому должен отсчитывать время с помощью счетчика сигналов от внешнего источника времени. 2.1.2. Управление на основе последовательного программирования Попытаемся проанализировать следующую проблему: могут ли задачи управления в реальном времени решаться с помощью последовательного программирования. Блок-схема регулирования температуры представлена на рис. 2.3. Программа считывает температуру пластика каждые 10 секунд, определяет необходимое время нагрева (переменная heat time), включает нагреватель и затем переходит в цикл занятого ожидания {busy loop) обновления счетчика времени (переменная С), во время которого компьютер не может выполнять никакие другие операции. Очевидно, что это не самое эффективное использование компьютера. Алгоритм управления перемещением поршня показан на рис. 2.4. Компьютер выдает команду начать движение вправо, затем непрерывно контролирует информацию от датчика конечного положения до тех пор, пока не получит сигнал о том, что оно достигнуто. Затем начинается обратное движение поршня влево, при этом компьютер должен в цикле занятого ожидания ждать очередного импульса и суммировать их (счетчик импульсов обозначен п). Цикл считается завершенным при достижении заданного числа импульсов (переменная pulsej-ef). Затем весь цикл повторяется сначала. Так же как и при регулировании температуры, компьютер не ожет выполнять других операций, пока он находится в цикле ожидания очередного Импульса. [0] [1] [2] [3] [4] [ 5 ] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] 0.0268 |