Содержание к диссертации
Введение
Глава 1. Существующие подходы к реализации программного обеспечения систем управления 15
1.1. Роль алгоритма управления при проектировании современных систем промышленной автоматизации. 15
1.2. Классификационные признаки задач управления 20
1.3. Психологические аспекты описания управляющих алгоритмов 25
1.3. Языки МЭК 61131-3 50
1.4. Возможные альтернативы МЭК 61131-3 61
Выводы главы 77
Глава 2. Гиперпроцесс: математическая модель алгоритма управления 80
2.1. Исторические предпосылки создания модели конечного автомата 80
2.2. Математическая модель абстрактного автомата 89
2.3. Модернизированная модель конечного автомата 96
2.4. Автоматы Мили и Мура 97
2.5. Способы задания автоматов Мили и Мура 98
2.6. Анализ исторических условий использования конечных автоматов в начале компьютерной эпохи 103
2.7. Достоинства и ограничения модели конечного автомата 106
2.8. Варианты расширения модели конечного автомата 109
2.9. Процесс и событийный полиморфизм 112
2.10. Функция-состояние. События и реакция на событие 113
2.11. Математическая модель гиперпроцесса 114
2.12. Редуцированная модель гиперпроцесса для алгоритмов управления 117
2.13. Операциональная демонстрация свойств гиперпроцесса 117
Выводы главы 120
Глава 3. Программная реализация гиперпроцесса 124
3.1. Логический параллелизм 124
3.2. Программная реализация на процедурных языках. Язык Си 130
3.3. Программная реализация на языках потоков данных. Язык G пакета LabVIEW 137
3.4. Программная реализация модели гиперпроцесса на языках МЭК
61131-3 144
3.5. Устранение условий идеального синхронизма. CLIPS 147
3.6. Способы статической балансировки вычислительной нагрузки при многопоточной реализации гиперпроцесса 151
Выводы главы 164
Глава 4. Специализированные языки процесс-ориентированного программирования 169
4.1. Язык Рефлекс 169
4.2. eST – процесс-ориентированное расширения языка ST из состава МЭК 61131-3 185
4.3. Hyper-Process Diagram: графическая спецификация алгоритма управления в процесс-ориентированном стиле 186
Глава 5. Генерация исполняемого кода 195
5.1. Трансляторы языка Рефлекс (R2C, R2CNF, R2Py) 195
5.2. Системная интеграции генерируемого кода 200
Выводы главы 204
Глава 6. Использование средств процесс-ориентированного программирования в задачах промышленной автоматизации 207
6.1. Примеры решения типовых задач средствами процесс-ориентированного программирования 207
6.2. Пример практической задачи. Система управления выращиванием
монокристаллов кремния (метод Чохральского) 224
6.3. Разработка программ в процесс-ориентированном стиле с использованием виртуальных объектов управления 237
6.4. Виртуальные лабораторные стенды: обучение студентов программированию задач промышленной автоматизации 249
6.5. Примеры использования виртуальных объектов управления на практике 258
Выводы и результаты 266
Список сокращений 268
Список литературы
- Психологические аспекты описания управляющих алгоритмов
- Анализ исторических условий использования конечных автоматов в начале компьютерной эпохи
- Программная реализация на языках потоков данных. Язык G пакета LabVIEW
- Hyper-Process Diagram: графическая спецификация алгоритма управления в процесс-ориентированном стиле
Введение к работе
Актуальность работы и степень ее разработанности. В настоящее время задачи обработки информации и управления технологическими процессами и производствами решаются исключительно с использованием цифровых систем. Базовый элемент промышленной автоматизации - специализированный вычислитель - программируемый логический контроллер (ПЛК), функционирующий в соответствии с заданным алгоритмом управления, который реализуется в виде компьютерной программы.
Рост масштабов работ по интенсификации и компьютеризации технологического производства, комплексная автоматизация производства, разработка новых многомерных технических объектов управления и функциональное развитие уже созданных программно-аппаратных комплексов предполагают постоянное усложнение алгоритмов управления.
Как следствие, в современных системах управления бюджет, отводимый на создание программно-алгоритмического обеспечения, сопоставим со стоимостью аппаратной части, а в некоторых случаях даже превышает ее.
Проблема создания алгоритмов управления особенно остро стоит в случае систем управления сложными техническими объектами на предприятиях металлургической и химической промышленности, атомных электростанциях, предприятиях космической индустрии и военно-промышленного комплекса при отработке новых технологий, при эксплуатации объекта в граничных областях или в условиях, исключающих непосредственное присутствие оператора.
Такие объекты управления изначально предполагают: серьезные последствия выхода технологического процесса из-под контроля; высокую вероятность возникновения нештатных ситуаций (например, при отказе оборудования или из-за отсутствия теоретической модели объекта управления); высокую функциональную наполненность алгоритма управления и его неоднородность (например, алгоритм может одновременно обеспечивать логическое управление и регулирование); предсказуемость алгоритма управления и жесткие требования по времени реакции на внешнее событие.
Ошибка в программном обеспечении (ПО) системы управления сложным техническим объектом может обернуться не только серьезными материальными потерями, но и привести к катастрофическим последствиям, в том числе, к гибели людей.
В качестве примера сложного объекта управления можно упомянуть ростовую установку для выращивания монокристаллического кремния методом
Чохральского. Технологический процесс характеризуется: а) отсутствием теории, позволяющей в аналитическом виде описать процесс кристаллизации;
б) многомерным фазовым пространством состояний объекта;
в) многокритериальностью показателя качества конечного продукта;
г) отсутствием масштабной инвариантности; д) сложным алгоритмом управления;
е) вероятностью возникновения аварийных ситуаций и нерегламентных
быстротекущих процессов, угрожающих жизни обслуживающего персонала.
В силу специфики предметной области разработка и реализация алгоритмов управления технологическими процессами представляет собой отдельную ветвь программирования.
Насущная потребность в алгоритмах управления, которые отвечают жестким требованиям современных производств, подпитывает постоянный интерес исследователей к новым методикам проектирования и лингвистическим средствам, ориентированным на алгоритмы управления технологическими процессами, к подходам и приемам, которые сокращают сроки разработки ПО систем промышленной автоматизации и минимизируют затраты на его сопровождение.
К настоящему времени наиболее распространенное средство создания ПО систем управления - набор языков МЭК 61131-3. Однако каждый из языков МЭК 61131-3, взятый в отдельности, имеет выраженную ориентацию на узкую подобласть (логическое управление, регулирование, вычислительные задачи, рецептурные процессы), поэтому при создании сложных управляющих алгоритмов разработчики вынуждены прибегать к так называемому мулътиязыковому программированию (описывать один алгоритм частично на одном, а частично на другом языке). Это обстоятельство вынуждает переходить на альтернативные продукты, например пакет Lab VIEW, а в некоторых случаях даже прибегать к языкам общего назначения Си или Си++.
Отечественные и зарубежные исследователи (Ф. Вагнер, А. Бласс, М. Самек, К. Кратер, А. Хубер, А. А. Шалыто и др.) указывают на высокий потенциал модели конечного автомата и обосновывают, в частности, ее преимущества по сравнению с моделями, используемыми в языках МЭК 61131-3. Однако, несмотря на теоретические предпосылки, модель конечного автомата крайне редко используется на практике. Это объясняется:
а) недостаточным соответствием модели специфике промышленной автоматизации (например, в модели отсутствует механизм, позволяющий организовать совместное функционирование нескольких конечных автоматов, что затрудняет спецификацию естественной иерархии и параллелизма, которые
характерны для реальных технологических процессов);
б) отсутствием ориентированных на промышленную автоматизацию
формальных языков, реализующих модель конечного автомата;
в) специфическим понятийным аппаратом модели, который затрудняет ее
восприятие и изучение специалистами в области информационных технологий.
Таким образом, в силу перечисленных проблем, с которыми сталкиваются разработчики при спецификации алгоритмов управления сложными промышленными объектами на уровне ПЛК, разработка теоретических подходов и лингвистических средств, ориентированных на создание ПО систем управления технологическими процессами является актуальной проблемой.
Объект исследования - программное обеспечение автоматизированных систем управления сложными техническими системами.
Предмет исследования - понятийные и лингвистические средства спецификации алгоритмов управления технологическими процессами и автоматизированными промышленными системами.
Цель работы - сокращение трудоемкости реализации и повышение качества ПО уровня ПЛК путем разработки теоретических основ, лингвистических и инструментальных средств создания алгоритмов управления технологическими процессами.
В соответствии с поставленной целью в работе решаются следующие основные задачи исследования:
-
проанализировать специфику алгоритмов управления технологическими процессами, недостатки существующих средств их программирования и сформулировать требования к формальным и лингвистическим средствам спецификации управляющих алгоритмов;
-
разработать понятийный аппарат и формальную математическую модель управляющего алгоритма;
-
определить варианты программной реализации разработанной формальной модели управляющего алгоритма;
-
на основе разработанной модели предложить лингвистические средства для спецификации алгоритма работы сложного технического объекта;
-
разработать и реализовать инструментальные средства генерации исполняемого кода по формальному описанию управляющего алгоритма;
-
предложить подход к отладке управляющих алгоритмов;
-
исследовать предложенные средства программирования на задачах создания автоматизированных систем управления.
Основная гипотеза. Программирование алгоритмов управления в задачах промышленной автоматизации - отдельная область программирования, обладающая уникальной спецификой и предполагающая, таким образом, особый проблемно-ориентированный подход.
На базе модифицированной модели конечного автомата можно создать унифицированные понятийный аппарат и лингвистические средства программирования алгоритмов управления широкого класса. Создаваемая понятийно-инструментальная база будет иметь практическую ценность, если:
а) модифицированная модель будет отражать специфику задач автоматизации;
б) понятийный аппарат модифицированной модели будет соответствовать
текущим тенденциям в области информационных технологий.
Научная новизна. В диссертационной работе предложена, разработана и исследована новая технология программирования алгоритмов управления технологическими процессами, в основе которой лежат понятийные, лингвистические и инструментальные средства процесс-ориентированного программирования.
Принципиальный вклад в развитие технологии процесс-ориентированного программирования вносят следующие научные результаты, полученные автором:
-
Для алгоритма управления объектом автоматизации построена оригинальная математическая модель гиперпроцесса, отличающаяся от существующих тем, что представляет алгоритм управления в виде совокупности циклически активизируемых параллельных процессов, которые задаются набором альтернативных функций-состояний (активных и пассивных), имеют индивидуальный счетчик времени, сбрасываемый при смене текущей функции-состояния, и взаимодействуют, в частности, через операторы контроля функций-состояний.
-
Предложена парадигма процесс-ориентированного программирования -новый концептуальный подход к организации управляющих алгоритмов уровня ПЛК, который отличается от существующих тем, что предполагает описание управляющего алгоритма на базе модели гиперпроцесса и обеспечивает, тем самым, иерархическую структуризацию программы в виде параллельно исполняемых слабосвязанных процессов.
-
Создан новый формальный язык программирования четвертого поколения -Си-подобный процесс-ориентированный язык Рефлекс, предназначенный для спецификации алгоритмов работы сложных объектов автоматизации. Основные отличительные особенности языка Рефлекс: а) средства описания
входных/выходных переменных, с указанием их привязки к физическим портам ввода/вывода и области видимости; б) средства описания процессов и активных функций-состояний; в) средства структуризации программы (операторы запуска процессов, операторы останова, средства контроля текущей функции-состояния и средства генерации временных событий).
-
Определены алгоритмически эквивалентные преобразования языка Рефлекс в языки Си, Formula Node и Python, предложена программная реализация параллелизма процессов в рамках модели кооперативной многопоточности, отличающаяся выделением архитектурно-зависимых функций в отдельный модуль.
-
Разработаны оригинальный метод статической балансировки вычислительной нагрузки программы, описанной на процесс-ориентированном языке и реализуемой в рамках кооперативной многопоточности, на основе учета данных о ресурсоемкости функций-состояний и времени реакции процессов на внешнее событие, а также субоптимальный алгоритм его реализации, отличающийся низкой вычислительной сложностью при удовлетворительном качестве балансировки: а) процессы с одинаковыми временами реакции на внешнее событие объединяются в группы; б) для каждой из групп с временем реакции, превышающим значение периода активизации гиперпроцесса, определяется базовый делитель частоты активизации D; в) для каждого из процессов группы затем определяется индивидуальное смещение активизации <9e{0,l,...,D-l}.
-
Определены и классифицированы варианты интеграции процесс-ориентированных алгоритмических структур в программы Lab VIEW через dll-механизм, механизм Formula Node и интерпретатор Python, а также вариант реализации гиперпроцесса средствами языка G с помощью: а) тактированного цикла по условию для организации циклической активизации с заданным периодом; б) структур выбора для реализации функций-состояний процесса с ловушкой для диагностики неспецифицированных состояний во время исполнения; в) строковых переменных для хранения идентификатора текущей функции-состояния процесса, -различающиеся между собой по ресурсоемкости реализации, возможности интеграции с элементами пользовательского интерфейса, необходимости использования сторонних программных пакетов и пакета разработки Lab VIEW и по уровню контроля семантической корректности кода.
-
Предложена и обоснована концепция итерационной разработки управляющих алгоритмов уровня ПЛК с использованием средств управления сценариями и средств контроля исполнения, отличающаяся унифицированной
связкой между алгоритмом управления и виртуальным объектом управления, которые описываются языковыми средствами процесс-ориентированного программирования, используемыми в целевом ПЛК.
Теоретическая и практическая значимость результатов исследования.
Разработанная информационная технология, реализованная в виде набора трансляторов языка Рефлекс и программ, созданных на языке Рефлекс, позволяет унифицированно описывать управляющие алгоритмы широкого класса в виде, который понятийно, структурно и терминологически соответствует автоматизируемому технологическому процессу, что обеспечивает эффективную коммуникацию разработчика и пользователя-технолога во время разработки системы, а также облегчает изучение, верификацию и модификацию программ на протяжении жизненного цикла системы управления. Благодаря этому не только снижаются сроки разработки, но и повышается качество создаваемого ПО, что особенно важно при автоматизации технологических процессов и научных исследований, при отработке и внедрении новых технологий.
Созданное ПО и теоретические результаты исследования использовались в работах по созданию автоматизированных цифровых комплексов по выращиванию методом Чохральского монокристаллического кремния («ЦУК-М», 2002-2005 гг.) и корунда («Корунд», 2004-2006 гг.), при создании системы тестирования радиоэлектронной аппаратуры («М700-У», 2007-2009 гг.), автоматизированного комплекса контроля качества монтажных работ («Стенд-09», 2009 г.), при разработке технологических линий передела с/х продукции и пищевых отходов (проекты «Углеводные добавки», «Биогаз», «Биодизель», 2006-2011 гг.), при создании микроконтроллерного адаптера промышленных весов («Адаптер», 2012 г.), при модернизации системы тестирования радиоэлектронной аппаратуры («М700-У12», 2012-2013 гг.)
Результаты работы использовались при выполнении: гранта Миннауки № 4917ф (Российская научно-техническая программа "Кремний России", 1995-1996 гг.); интеграционного проекта № 84 Сибирского отделения РАН «Монокристалл» 2006-2008 гг., программы развития научно-образовательного центра Института автоматики и электрометрии СО РАН 2007-2009 гг.; программы «Научно-исследовательский университет НГУ» 2009-2012 гг.; гранта № 2012-1.2.1-12-000-2013-012 (ФЦП «Научные и научно-педагогические кадры инновационной России»).
Теоретические результаты диссертационных исследований и набор виртуальных лабораторных стендов позволили повысить качество подготовки студентов по дисциплинам «Программирование информационно-управляющих
систем на основе конечных автоматов» и «Процесс-ориентированное программирование» (факультет информационных технологий НГУ) и по дисциплине «Теория управления» (Высший колледж информатики НГУ).
Документальные подтверждения эффективности полученных результатов при практическом использовании приведены в Приложении к диссертации.
Методология и методы исследования. Задачи, поставленные в работе, решались с использованием теории конечных автоматов, теории автоматического регулирования, методов системного анализа и математического моделирования, процедурного программирования, экстремального программирования и программирования на основе потоков данных. Специфика алгоритмов управления технологическими процессами выявлена на основе содержательного подхода. При анализе существующих языков программирования алгоритмов управления использовался преимущественно логико-исторический подход. Содержательный подход позволил также сформулировать базовые требования к формальным и языковым средствам описания управляющих алгоритмов. Разработка математической модели управляющего алгоритма и программных средств базировалась на формальном подходе. Эмпирический метод использовался при исследовании эффективности предложенного понятийного аппарата и набора разработанных средств программирования в задачах автоматизации технологических процессов и физико-технических исследований.
Область исследования. Содержание диссертации соответствует паспорту специальности 05.13.17 «Теоретические основы информатики» (технические науки) по следующим областям исследований: п. 2 «Исследование информационных структур, разработка и анализ моделей информационных процессов и структур»; п. 6 «Разработка методов, языков и моделей человекомашинного общения; разработка методов и моделей распознавания, понимания и синтеза речи, принципов и методов извлечения данных из текстов на естественном языке»; п. 8. «Исследование и когнитивное моделирование интеллекта, включая моделирование поведения, моделирование рассуждений различных типов, моделирование образного мышления»; п. 10 «Разработка основ математической теории языков и грамматик, теории конечных автоматов и теории графов»; п. 12 «Разработка математических, логических, семиотических и лингвистических моделей и методов взаимодействия информационных процессов, в том числе на базе специализированных вычислительных систем»; п. 14 «Разработка теоретических основ создания программных систем для новых информационных технологий».
Положения, выносимые на защиту:
-
Набор классификационных признаков, характерных для алгоритмов уровня ПЛК: а) дуализм системы «управляющий алгоритм - управляемый объект»; б) цикличность и неопределенная продолжительность функционирования алгоритма управления; в) гибридность; г) событийность; д) синхронизм; е) логический параллелизм; ж) структурность и абстрактность формальной спецификации.
-
Математическая модель гиперпроцесса, представляющая управляющий алгоритм в виде периодически активизируемой совокупности логически параллельных слабосвязанных процессов, каждый из которых представлен снабженной индивидуальным таймером событийно-управляемой полиморфной функцией (альтернативными активными и пассивными функциями-состояниями).
-
Варианты модификации модели гиперпроцесса, обеспечивающие повышенную утилизацию вычислительных ресурсов платформы и статическую балансировку вычислительной нагрузки: а) гиперпроцесс с плавающим периодом активизации; б) гиперпроцесс с индивидуальными делителями частоты активизации процессов.
4. Си-подобная грамматика процесс-ориентированного языка
программирования Рефлекс, позволяющая описывать алгоритмы управления
широкого класса.
-
Программно-алгоритмические решения, использованные при проектировании транслятора языка Рефлекс и его реализации, обеспечивающие повышенную портируемость пользовательских программ на микроконтроллерных платформах.
-
Итерационный подход к разработке алгоритмов управления на основе унифицированной связки «алгоритм управления - виртуальный объект управления» и программно-алгоритмические решения, обеспечивающие использование виртуальных лабораторных стендов для обучения программистов в области промышленной автоматизации.
Степень достоверности и апробация результатов. Результаты диссертационной работы докладывались и обсуждались на: VIII Международной конференции по электронным публикациям «EL-Pub2003» (Новосибирск, 2003); семинарах научной школы «Информационные технологии» ИАиЭ СО РАН (Новосибирск, 2004, 2008); III Международной конференции "Идентификация систем и задачи управления" SICPRO'04 (Москва, 2004); Совещании «Кремний-2004» (Иркутск, 2004); Международной научно-технической конференции «Информационные, измерительные и управляющие системы» (Самара, 2005);
Second IASTED International Multi-Conference on "Automation, Control, and Information Technology" (Новосибирск, 2005); Третьей Российской школе ученых и молодых специалистов по физике, материаловедению и технологиям получения кремния и приборных структур на его основе «Кремний. Школа-2005» (Москва, 2005); Международной научной конференции "Современные проблемы информатики" (Воронеж, 2006, 2009-2011, 2013); V Международной конференции "Идентификация систем и задачи управления", SICPRO'06 (Москва, 2006); IEEE International Siberian Conference on Control and Communications, SIBCON-07 (Томск, 2007); Четвертой российской конференции с международным участием по физике, материаловедению и физико-химическим основам технологий получения легированных кристаллов кремния и приборных структур на их основе «Кремний-2007» (Москва, 2007); Всероссийских научных чтениях с международным участием, посвященных 75-летию член-корр. АН СССР М. В. Мохосоева (Улан-Удэ, 2007); 2nd International Conference "Telecommunications, Electronics and Informatics", ICTEI 2008 (Chisinau, 2008); Международной научно-практической конференции «Пища. Экология. Качество» (Краснообск, 2008, 2010, 2013, Казахстан, Алматы, 2011); IEEE International Conference on Computational Technologies in Electrical and Electronics Engineering, SIBIRCON-08 (Новосибирск, 2008); Четвертой международной научно-практической конференции-выставки "Промышленные контроллеры 2008: от А до Я" (Москва, 2008); Седьмой международной конференции «Перспективы систем информатики» (Новосибирск, 2009); Международной научной конференции «Кремний 2009» (Новосибирск, 2009); Всероссийской научно-практической конференции «Имитационное моделирование. Теория и практика», ИММОД-2009 (Санкт-Петербург, 2009); Всероссийской научной конференции «Когнитивные науки: междисциплинарные исследования мышления и интеллекта» (Томск, 2009); Second IASTED International Multi-Conference on "Automation, Control, and Information Technology" (Новосибирск, 2010); Pacific Conference on Computer Technology and Applications (Владивосток, 2010); Ershov Informatics Conference (Новосибирск, 2011); Международной конференции по актуальным проблемам физики, материаловедения, технологии и диагностики кремния, наноразмерных структур и приборов на его основе "Кремний-2011" (Москва, 2011); Международной научно-практической конференции «Металлургический кремний-2012. Физико-химические процессы и технологии получения металлургического кремния» (Казахстан, Караганда, 2012); IEEE International Siberian Conference on Control and Communications, SIBCON-13 (Красноярск, 2013).
Достоверность научных положений и выводов обеспечивается также практическими результатами, полученными при выполнении хоздоговорных работ и грантов и подтвержденными полученными актами о внедрении.
Публикации. По теме диссертации опубликовано 94 печатных работ, из них две монографии, 29 статей в рецензируемых журналах из Перечня ВАК, два патента и четыре свидетельства об официальной регистрации программ.
Структура и объем диссертации. Диссертация состоит из введения, шести глав, заключения и приложения. В первой главе обсуждается специфика задач промышленной автоматизации, проводится критический анализ существующих подходов к реализации ПО систем управления, формулируются требования к формальным и лингвистическим средствам описания сложных управляющих алгоритмов. Во второй главе предлагается формальная математическая модель управляющего алгоритма в виде гиперпроцесса и приводится понятийный аппарат процесс-ориентированного программирования. В третьей главе рассматриваются возможные варианты модификации модели гиперпроцесса и способы его алгоритмической реализации различными языковыми средствами. Четвертая глава посвящена языку Рефлекс, вариантам процесс-ориентированного расширения языков МЭК 61131-3 и графическому языку процесс-ориентированного программирования HPD. В пятой главе описывается реализация трансляторов языка Рефлекс в язык Си, язык формата Formula Node и язык Python, предлагаются варианты интеграции создаваемого трансляторами кода в системы управления, в том числе на базе пакета Lab VIEW, даются классификационные признаки для предложенных вариантов интеграции. В шестой главе приводятся сведения о практическом использовании языка Рефлекс, в частности излагается и демонстрируется на примерах концепция виртуальных объектов управления.
Объем работы - 250 страниц основного текста, содержит 70 рисунков, 18 таблиц. Список литературы содержит 215 наименований.
Психологические аспекты описания управляющих алгоритмов
Поскольку ПЛК строятся на базе цифровой техники, естественным образом предполагаются некоторые языковые средства их программирования, позволяющие описывать функционирование автоматизируемой системы, или ее алгоритм управления.
Алгоритм управления выполняет особую роль уже при проектировании управляющей системы. Собственно, само моделирование любой управляющей системы всегда начинается с алгоритмического описания процесса управления [1].
С методологической точки зрения это обосновывается особенностями инженерии и проектировочного подхода, выдвигающими на первый план алгоритмическую, процессную и функциональные составляющие системного анализа [2]. При проектировании технических систем проектировщик ориентируется на функцию, т. е. заданные преобразования объекта деятельности, определенное функционирование системы. Датчики и исполнительные устройства, которые будут обеспечивать это функционирование, - вторичны. Также вторичны физические принципы работы датчиков и исполнительных устройств, используемые материалы, типоразмеры. Поэтому проектирование начинается не с материально выделенных объектов, а с формально заданных функций и способа функционирования. Таким образом, сначала описывается функциональная составляющая технической системы, а затем на основании спроектированного определяются те или иные материальные устройства, обеспечивающие реализацию. При этом функциональная составляющая должна быть представлена особым образом – так, чтобы допускать компоновку, преобразование и трансформацию в известных пределах независимо от реализующего материала. «Это означает, что проектировщик начинает задание своего объекта с фиксации процессов в этом объекте, в первую очередь процессов функционирования, и именно эти процессы определяют границы объекта проектирования как системы, а все остальное должно быть к ним подстроено» [2].
Таким образом, приступая к проектированию системы управления, нужно, прежде всего, выяснить, что должна делать система, задать условия ее работы, определить ее функции, выразив их на некотором формальном языке, не допускающем неоднозначности толкования [3].
Кроме свойства однозначности толкования формальный язык должен предоставлять удобство описания алгоритма управления технической системы, т. е. давать пользователю возможность не только сделать это быстро и лаконично, но легко ознакомиться с уже описанным алгоритмом. Сделать это можно только в случае, если формальный язык описания алгоритма имеет понятийный аппарат, адекватный специфике задач управления.
К сожалению, в настоящее время теоретические исследования, связанные с промышленной автоматизации, сильно фрагментированы: гибридные системы, гомеостатические системы, реагирующие (reactive) системы, системы реального времени, системы автоматического регулирования, дискретные системы, системы логического управления, встраиваемые системы, автоматизированные системы управления – неполный список направлений исследований, так или иначе связанных с проблемой создания управляющих алгоритмов. Такое разнообразие в немалой степени обусловлено и недостаточным вниманием к выделению классификационных признаков предмета исследований. Среди редких исключений из этого правила – анализ специфики алгоритмов логического управления, проведенный А. Д. Закревским при разработке специализированного языка ПРАЛУ [3].
Открытость, цикличность и событийность. Существенное отличие задач автоматизации от задач для персонального компьютера – это открытость, наличие внешней (по отношению к системе управления) среды – управляемого объекта, и активное воздействие на нее через исполнительные устройства (рис. 1.7). Самый распространенный случай управляемого объекта – техническая система, реализующая некоторую производственную технологию. Воздействия или, другими словами, реакция системы управления определяется алгоритмом управления в зависимости от событий на объекте управления, информация о которых поступает через датчики обратной связи [4]. Для цифровых систем это обстоятельство обусловливает цикличность управляющего алгоритма по схеме, уже обсуждавшейся ранее: «считывание состояния входных сигналов через датчики» – «их обработка и формирование выходных сигналов» – «выдача выходных сигналов на исполнительные устройства».
При этом размывается смысловое понятие исходных данных. Во-первых, потому что обрабатываемые алгоритмом управления данные поступают на его вход непрерывным потоком и целью алгоритма является уже не получение некоторого конкретного искомого результата в концентрированной форме, а выдача ответной последовательности управляющих сигналов, регулирующих поведение объекта управления [3]. Во-вторых, потому что при выполнении управляющего алгоритма происходит вычленение из потока данных только ограниченного набора возможных изменений, которые и влияют на выдаваемую последовательность управляющих сигналов. Открытость и устойчивое функционирование механизмов во внешней среде изучаются в гомеостатике, свойства событийности исследуются в теории реагирующих систем и событийно-управляемых (event-driven) систем.
Синхронизм и временные интервалы. Управляемый объект принадлежит физическому миру, подчиняется объективным законам физики, химии, биологии. Если, скажем, автоматизируется рост дрожжевых палочек в автоклаве и для выращивания партии дрожжей требуется 250 кВт час, то эта энергия должна подаваться в систему равномерно и в течение длительного времени, около двух суток. Попытка вкачать эту энергию как можно быстрее приведет к тому, что микроорганизмы погибнут от перегрева. Механические элементы конструкции, например клапаны, не могут отработать управляющий сигнал мгновенно. Для передачи пакета данных требуется время, зависящее от длины пакета и скорости передачи.
Анализ исторических условий использования конечных автоматов в начале компьютерной эпохи
Гибридность. Кроме операций с логическими переменными (функции так называемого релейного управления) алгоритмы управления предполагают операции с плавающей точкой, реализующие вычислительные функции, функции регулирования аналоговых сигналов и функции дискретного управления. Вопросы организации управления дискретными и аналоговыми сигналами рассматриваются при изучении гибридных систем (hybrid systems) [7].
Надежность. Независимость и неопределенность при возникновении событий на объекте управления в случае параллельных алгоритмов может привести к конфликтам между одновременно выполняемыми частями алгоритма, называемым «гонками». Факт гонок трактуется как некорректность алгоритма. Поэтому методика создания алгоритма управления должна обеспечивать отсутствие таких ситуаций. На практике это достигается либо через процедуру формальной верификации алгоритма, либо обеспечивается конструктивными особенностями средств разработки, гарантирующими принципиальную невозможность гонок [3]. Кроме собственно реализационных проблем, необходимо учитывать и наличие предела любой языковой системы, в части обнаруживаемых ею ошибок описания. Например, если распознаваемость семантически ошибочных языковых конструкций может быть повышена за счет типизации переменных, то ошибки в логическом построении программы не поддаются автоматическому обнаружению [8]. При этом, чем более сложным является объект управления, тем более вероятно возникновение логических ошибок. Обычно в качестве основных факторов, повышающих надежность создаваемой программы, называются такие характеристики как удобочитаемость и простота. А в качестве средств их достижения – степень типизации переменных, вид языковых конструкций и способ формировании листинга программы [8–10]. Перечисленные факторы могут быть учтены на этапе определения синтаксиса языка, однако проблема формирования логической структуры алгоритма требует отдельного рассмотрения. Этот неразрешимый для языков общего назначения вопрос в специализированных языках может быть частично снят за счет ориентации средства программирования на конкретную методологию.
Вопросы оценки качества используемого языкового средства возникли много лет назад, еще при становлении программирования, как профессиональной деятельности. Однако, если с тезисом «программирование на языке ассемблера предпочтительнее программирования в машинных кодах» согласится подавляющее большинство программистов, то утверждение о графическом и текстовом представлениях алгоритма (или о графическом и консольном интерфейсах, или о Microsoft Equation и пакете LaTex) раскалывают программистское сообщество на два враждующих лагеря. В развернувшейся дискуссии одна сторона будет отстаивать широко распространенное мнение о безусловной предпочтительности визуальных средств при отображении информации и ее восприятии. Другая сторона, состоящая по большей части из высококвалифицированных профессионалов, будет ссылаться на свои собственные предпочтения и практически демонстрировать свое мастерство владения клавиатурой. В таких дискуссиях, метко называемых по-английски “holly wars”, практически никогда не упоминается о весьма интригующем факте: утверждение о преимуществе графики не имеет однозначного экспериментального подтверждения. При одних условиях графика дает неплохие результаты, в других – явно проигрывает обычной текстовой записи.
Это только один из примеров. Общепринятая практика в области информационных технологий заключается в том, что активность исследователей концентрируется на тех аспектах человеко-машинных систем, которые могут быть исследованы чисто математическими методами. Число работ по прагматике формальных языков и психологии программирования весьма незначительно.
Попытки исследовать вопросы программирования в ракурсе взаимодействия человека и компьютера приводят к целой веренице вопросов. Например. Насколько справедливо рассматривать программирование только с точки зрения вычислительной математики, как простое манипулирование битами? Какой вред компьютеру может нанести программа, содержащая строки с GOTO, о которых писал Дейкстра [11]? Можем ли мы ограничить наши исследования только формализмами, в то время как программирование немыслимо без участия человека? И, наконец, сможем ли мы вообще изучать программирование, если мы исключили из рассмотрения неотъемлемую часть системы «человек-компьютер»?
Как отмечал Джеральд Сассман «программы пишутся людьми для людей, и только потом – для компьютера» [12]. Осознание этого простого факта приводит к заключению, что при разработке программных моделей и формализмов должны учитываться не только компьютерные стороны проблемы, но и вопросы удобства их последующего использования человеком, прагматика. Это особенно важно в современных информационных системах, при рассмотрении вопросов системного анализа, при формировании требований, разработке общей концепции, кодировании (как использовании языковых средств) и сопровождении. Исключение из рассмотрения человеческого фактора означает отказ учитывать значимую часть ключевых условий.
Исторически, программирование и кибернетика возникли как ветви математики – «царицы точных наук». Студенты математики и физики, специализирующиеся на информационных технологиях, даже не имеют курсов по основам психологии. С другой же стороны, психология рассматривается скорее как гуманитарная наука, которая слабо интересуется проблемами построения формализмов.
Последствия этой ситуации очень болезненны. Достаточно вспомнить проект АЛГОЛ. Несмотря на громадные интеллектуальные усилия научного сообщества, произошел коллапс проекта. Неимоверная сложность (психологическая сложность!) в изучении и сопровождении языка, обилие выразительных средств привели к повторению печальной истории Вавилонской башни.
В этих условиях любая более-менее успешная попытка интегрировать достижения психологии в практику программирования, если и не будет означать грандиозного прорыва, так хотя бы позволит сократить число досадных и болезненных провалов. Автор твердо убежден, что программирование не имеет будущего без ассимиляции основ психологии в практику программирования и процесс обучения программированию.
Вопрос о преимуществах графики. Большинство программистов считают, что графическая форма представления информации предпочтительнее любой другой. На рынке появляются разнообразные языки визуального программирования. Чувствуя тенденцию, производители ПО и CASE-средств используют привлекательное слово в названиях средств, изначально базирующихся на текстовой форме описания (например, Visual C). На рынке компьютерных программ прочно обосновались средства разработки класса WYSIWYG (what-you-see-is-what-you-get), подавляющее большинство ПО персональных компьютеров – это средства WIMP (windows-icons-menu-pointing_device). В качестве эпитетов для графики используются слова «дружественный», «интуитивный», «простой», «читабельный», «привычный», «привлекательный», «надежный», «понятный», «легкий», «запоминающийся», «непосредственный», «очевидный». Часто графика позиционируется как прогрессивная альтернатива «устаревшей» текстовой форме представления. Однако при попытках найти строгое теоретическое или экспериментальное обоснование подобным заявлениям выявляются крайне нелицеприятные для графики факты: ни теория, ни эксперимент не позволяют говорить о несомненном превосходстве графической формы представления алгоритмов. Более того, специалисты по эргономике утверждают, нередки случаи, когда графическая форма записи менее понятна, чем обычная текстовая [13–16].
Программная реализация на языках потоков данных. Язык G пакета LabVIEW
Классическая модель конечного автомата не является чем-то раз и навсегда заданным. Расширение свойств классической модели не только возможны, но и, как показывает пример ММКА, могут самым положительным образом повлиять на свойства модели. Введение в исходную модель концепции переменной, сделанное в ММКА, обеспечивает возможность использовать условные и безусловные выражения, и существенно упрощает создание алгоритма, по сути, позволяя описывать функции-состояния способами, принятыми в современных языках программирования высокого уровня. Разумеется, при этом, классические табличные и графические способы описания автомата, предполагающие работу с алфавитами, превращаются в анахронизм.
Также известны следующие модификации МКА, предпринятые с целью адаптировать модель к специфике задач.
Автоматы, ориентированные на обработку входных слов бесконечной длины. -автомат, или потоковый автомат [97], а также его детерминированные и недетерминированные варианты в виде автомата Бучи (Bchi automaton) [98], автомата Рэбина (Rabin automaton), автомата Стритта (Streett automaton) [99], чётного автомата (parity automaton) [100] и автомат Мюллера (Muller automaton) [101]. Эти модификации ориентированы на обработку слов бесконечной длины, на неопределенную продолжительность функционирования алгоритмов управляющих программ, операционных систем, схем, сетевых протоколов и других случаев, предполагающих вычленение из потока входных символов заданные последовательности [102]. Эти модификации автомата разрабатывались для подмножества систем длительного функционирования, однако эти модели не предполагают описание гибридных систем, систем с параллелизмом, систем требующих синхронизма, также в модели не определены методы решения проблемы блочного синтеза.
Автомат, расширенный набором таймеров. Модель автомата с таймерами (timed automaton) базируется на МКА, расширенной счетным набором часов, формирующих реальные числа [103]. Во время исполнения автомата с таймерами, показания часов возрастает с одинаковой скоростью. Классическое задание переходов между состояниями автомата может дополняться проверкой условий сравнения показания некоторых часов с целыми значениями. Эти сравнения могут разрешать или запрещать переходы, влияя тем самым на поведение автомата. Показания часов могут быть обнулены.
Модель автомата с таймером ориентирована на моделирование и анализ динамических характеристик систем так называемого «реального времени» или сетей, решает проблему синхронизма, на базе модели создан программный пакет UPPAAL, позиционируемый как интегрированная среда для моделирования, валидации и верификации систем реального времени [104]. Пакет расширяет исходную модель переменными различных типов, однако модель затрудняет систем с параллелизмом, также в модели не определены методы решения проблемы блочного синтеза.
Гибридный автомат. Модель гибридного автомата, известная в двух модификациях – гибридного автомата Алё-Хейзингера (Alur-Henzinger hybrid automaton) [105] и его усовершенствованного варианта гибридного входного/выходного автомата (hybrid input/output automaton) [106], ориентирована на описание систем, в которых вычислительный процесс взаимодействует с аналоговым физическим процессом. Гибридный автомат включает в себя полный набор операций с плавающей запятой и позволяет моделировать системы, включающие как цифровые, так и аналоговые сигналы. Недостатками модели является отсутствие средств структуризации алгоритма на уровне потоков команд.
Коллективы автоматов. Практическая невозможность и сложность реализации реальных систем в виде одного последовательного автомата обусловливают постоянные попытки исследователей решить проблему использования параллелизма за счет решения проблемы блочного синтеза автоматов. Наиболее часто исследователи предлагают организовать взаимодействие автоматов через введение дополнительных связей (расширение входного алфавита) [107], а также подходы, близкие к моделям взаимодействующих цепей Маркова [108, 109]. Подход в основном используется в стохастических вариантах, однако допускает простой переход к детерминированным моделям. Недостаток модели – наличие жесткой связи между взаимодействующими автоматами, что предполагает некоторый шаблон связи (гомогенность) и равнозначность автоматов. При необходимости конструировать гетерогенную систему это влечет увеличение числа связей по факториальной зависимости (каждый с каждым). В силу последнего обстоятельства количество связей строго фиксировано и ограничивается связями с соседями. Среди преимуществ такой модели следует указать возможность использования арифметических операций и возможность анализа информации о состоянии соседних автоматов.
Параллельные автоматы. Альтернативные модели конечных автоматов с параллелизмом основаны на идее отказа от последовательной модели. Модель автомата расширяется понятием частичных состояний, и устанавливается, что автомат может одновременно находиться в нескольких состояниях [3]. Введение частичных состояний радикально сокращает сложность описание алгоритмов управления независимыми устройствами. При переходе от параллельного автомата к последовательному по экспоненциальному закону растет не только число состояний автомата, но и объем описания состояния [3]. Однако такой подход характеризуется жесткими связями на уровне дивергенции / конвергенции потока управления, которые, по сути, задают постоянные отношения «родитель-потомок», крайне затрудняющие описание алгоритма управления в случае фиксации отказа оборудования. Среди достоинств автомата, предложенного А. Д. Закревским, следует указать переход от понятий входного / выходного алфавита и переход к концепции входной и выходной переменных, которые задаются совокупностями булевых переменных, представляемыми в виде булевых векторов.
Вернемся к рассмотрению ММКА, задаваемой пятеркой A = (F, x, y, fcur, f1), и обсудим понятие функции-состояния. В этой модели мы определили F = {f1, … , fk, … , fK} как множество альтернативных функций-состояний, отображающих x в y (y = fok (x), fok (x) O) и x в F (fcur = fsk (x), fsk (x) F). Сделаем следующее тривиальное замечание. Нет причин в жесткой привязке переменных к конечному автомату. Переменные для каждой функции-состояния могут быть уникальными. Это обстоятельство находит отражение и в классической модели конечного автомата, когда вводится возможность частичной спецификации. Таким образом, переменные могут привязываться исключительно к функции-состоянию. Сделанное замечание подчеркивает тот факт, что функция-состояние по своим свойствам совпадает с понятием обычной функции или процедуры (функцией, работающей с глобальными переменными), используемым в программировании. А наименование «функция-состояние» отражает факт их альтернативности, переключаемости.
В качестве возможных функций-состояний будем рассматривать и «пустые» функции, которые не производят никаких действий. Такие «пустые» функции, значение которых обсудим чуть позже, мы будем называть «пассивными», а все остальные – «активными».
Вышесказанное позволяет ввести понятие «процесса», означающее циклически активизируемую полиморфную функцию, представляющую собой совокупность альтернативных функций-состояний, описываемую в программе как единая неделимая сущность. При вызове такой полиморфной функции (процесса) исполняется одна и только одна из составляющих его функций-состояний – текущая функция-состояние. Программа, задающая алгоритм управления, может состоять из описания нескольких процессов, взаимодействующих друг с другом. Выявленный тип функционального полиморфизма был назван событийным полиморфизмом [110].
Hyper-Process Diagram: графическая спецификация алгоритма управления в процесс-ориентированном стиле
Практическая апробация языка Рефлекс проводилась на задаче автоматизации процесса выращивания монокристаллического кремния методом вытягивания из расплава (метод Чохральского).
Процесс получения монокристаллов кремния методом выращивания из расплава чрезвычайно сложен для автоматизации: управление ведется по нескольким параметрам, конечный продукт должен удовлетворять набору критериев, а сам процесс характеризуется сильной изменчивостью законов регулирования. Хотя подобные процессы широко известны в химии, металлургии, кристаллографии, при получении сверхчистых, высокосовершенных и редких материалов, биосинтезе, удовлетворительного решения проблемы так и не найдено [181].
Нестабильность процесса, отсутствие математических описаний, пригодных для использования в системе управления, приводят к необходимости экспериментальных работ по выявлению взаимозависимости параметров и созданию управляющих алгоритмов. Расходы на эксперимент становятся неотъемлемой и существенной частью затрат при эксплуатации.
Объемы экспериментальных работ при получении управляющих алгоритмов – технологических программ (ТП) выращивания – существенно возрастают при попытках получить продукцию в предельных условиях, где течение процесса нестабильно и требуется ужесточение требований к комплексу технических средств по надежности и погрешности регулирования.
Зарубежные производители, занимающиеся выращиванием монокристаллического кремния, как правило, имеют более чем пятидесятилетний опыт работы, собственный штат высококлассных специалистов. Исследование и создание новых ТП производится преимущественно эволюционными методами. Технологии имеют характер «ноу-хау» и тщательно охраняются. Недоступны для приобретения не только технологические карты и информация о технологических режимах, но и оборудование с базовым программным обеспечением.
При этих обстоятельствах все попытки стороннего игрока повторить путь компаний-обладателей «ноу-хау» и выйти на рынок «классическим» эволюционным методом обречены на провал: продукция с низкими потребительскими характеристиками, а это неизбежно на начальных этапах, не будет иметь спроса. В течение десятилетий предприятие будет вынуждено работать вхолостую, с отсутствием прибыли или даже с отрицательной прибылью. Поэтому основная задача начального этапа – быстро и с минимальными затратами получить конкурентоспособное изделие. Единственно возможное решение – создать аппаратный комплекс с расширенной программной функциональностью, обеспечивающей поиск выверенной методики создания ТП и совмещение экспериментальных работ со штатной эксплуатацией [182], которая бы дополняла классические подходы экспериментального поиска технологических режимов на имитаторах [183]
При автоматизации сложных объектов к системе управления предъявляется комплекс жестких требований, в том числе требования по помехозащищенности, надежности, технологичности, времени восстановления, эргономичности, стоимости и т. д.
Установка для выращивания монокристаллов кремния (УВМК) методом вытягивания из расплава (метод Чохральского [184]) как объект управления имеет следующий ряд основных специфических особенностей.
Эксплуатация в тяжелых условиях цеха промышленного предприятия, запыленность, наличие влаги обусловливает необходимость защищать аппаратуру системы управления. Расплавленный кремний является чрезвычайно агрессивной средой, выход процесса из-под контроля может привести к значительным материальным 226 потерям и даже человеческим жертвам, поэтому к системе управления предъявляются повышенные требования по надежности и устойчивости, в частности, команды управления, подаваемые оператором, должны контролироваться на корректность.
Относительно большое число разнородных цифровых и аналоговых сигналов, многопараметричность технологического процесса подразумевают сложный алгоритм, характеризующийся сильной степенью распараллеливания потока управления. Требуемую степень параллелизма невозможно обеспечить средствами операционных систем.
Штатная эксплуатация предполагает большую экспериментальную составляющую, не говоря уже об этапе отработки системы управления, поэтому к программному обеспечению предъявляются повышенные требования по гибкости и модифицируемости; также требуется регистрировать большие объемы информации для последующего анализа.
Низкий уровень компьютерной подготовки обслуживающего персонала предполагает простой, дружественный и эффективный пользовательский интерфейс на основе современных мультимедийных средств.
Система управления УВМК должна обеспечивать возможность работы как в основных рабочих режимах (автоматический режим, ручной режим), так и во вспомогательных режимах (режим комплексных регламентных проверок, режим тарировки и т. д.) [185]. В автоматическом режиме система управления УВМК должна проводить выращивание монокристалла кремния по технологической программе, создаваемой инженером-технологом.
Система управления УВМК должна быть выполнена в виде базового управляющего модуля (БУМ УВМК), допускающего подключение дополнительных устройств (датчики, приводы, источники питания) через последовательный канал типа RS232/485. Кроме этого, БУМ УВМК должен предусматривать возможность интеграции в производственную систему цехового уровня посредством сети Ethernet, протокола TCP/IP.