автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.17, диссертация на тему:Процесс-ориентированная технология программирования: модели, языки и инструментальные средства для спецификации алгоритмов управления сложными техническими системами

доктора технических наук
Зюбин, Владимир Евгеньевич
город
Новосибирск
год
2013
специальность ВАК РФ
05.13.17
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Процесс-ориентированная технология программирования: модели, языки и инструментальные средства для спецификации алгоритмов управления сложными техническими системами»

Автореферат диссертации по теме "Процесс-ориентированная технология программирования: модели, языки и инструментальные средства для спецификации алгоритмов управления сложными техническими системами"

На правах рукописи

Зюбин Владимир Евгеньевич

ПРОЦЕСС-ОРИЕНТИРОВАННАЯ ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ: МОДЕЛИ,ЯЗЫКИ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ДЛЯ СПЕЦИФИКАЦИИ АЛГОРИТМОВ УПРАВЛЕНИЯ СЛОЖНЫМИ ТЕХНИЧЕСКИМИ СИСТЕМАМИ

Специальность 05.13.17 - «Теоретические основы информатики»

АВТОРЕФЕРАТ диссертации на соискание ученой степени доктора технических наук

1 6 янв 2014

Новосибирск - 2013

005544423

Работа выполнена в Федеральном государственном бюджетном учреждении науки «Институт автоматики и электрометрии» Сибирского отделения Российской академии наук

Научный Родионов Алексей Сергеевич, д-р техн. наук, проф. кафедры

консультант: вычислительных систем Федерального государственного образовательного бюджетного учреждения высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»

Легалов Александр Иванович, д-р техн. наук. проф.. Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Сибирский федеральный университет», зав. кафедрой вычислительной техники (г. Красноярск)

Окольнишников Виктор Васильевич, д-р техн. наук. Федеральное государственное бюджетное учреждение науки «Конструкторско-технологический институт вычислительной техники» Сибирского отделения Российской академии наук, вед. науч. сотр. (г. Новосибирск)

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

Защита состоится " 14 " марта 2014 г. в 13 часов минут на заседании диссертационного совета Д.219.005.02 при Федеральном государственном образовательном бюджетном учреждении высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» по адресу: 630102. г. Новосибирск, ул. Кирова. 86. ауд. 625.

С диссертацией можно ознакомиться в библиотеке ФГОБУ ВПО «Сибирский государственный университет телекоммуникаций и информатики» по адресу: 630102, г. Новосибирск, ул. Кирова, 86.

Автореферат разослан « 24 » декабря 2013 г.

Учёный секретарь совета по защите / Я/)

докторских и кандидатских диссертаций С ^ И. И. Резван

Д.219.005.02. канд. техн. наук, доцент

Официальные оппоненты:

Ведущая организация:

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность работы и степень ее разработанности. В настоящее время задачи обработки информации и управления технологическими процессами и производствами решаются исключительно с использованием цифровых систем. Базовый элемент промышленной автоматизации - специализированный вычислитель - программируемый логический контроллер (ПЛК), функционирующий в соответствии с заданным алгоритмом управления, который реализуется в виде компьютерной программы.

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

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

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

Такие объекты управления изначально предполагают: серьезные последствия выхода технологического процесса из-под контроля; высокую вероятность возникновения нештатных ситуаций (например, при отказе оборудования или из-за отсутствия теоретической модели объекта управления); высокую функциональную наполненность алгоритма управления и его неоднородность (например, алгоритм может одновременно обеспечивать логическое управление и регулирование); предсказуемость алгоритма управления и жесткие требования по времени реакции на внешнее событие.

Ошибка в программном обеспечении (ПО) системы управления сложным техническим объектом может обернуться не только серьезными материальными потерями, но и привести к катастрофическим последствиям, в том числе, к гибели людей.

В качестве примера сложного объекта управления можно упомянуть ростовую установку для выращивания монокристаллического кремния методом

Чохральского. Технологический процесс характеризуется: а) отсутствием теории, позволяющей в аналитическом виде описать процесс кристаллизации;

б) многомерным фазовым пространством состояний объекта;

в) многокритериальностью показателя качества конечного продукта;

г) отсутствием масштабной инвариантности; д) сложным алгоритмом управления; е) вероятностью возникновения аварийных ситуаций и нерегламентных быстротекущих процессов, угрожающих жизни обслуживающего персонала.

В силу специфики предметной области разработка и реализация алгоритмов управления технологическими процессами представляет собой отдельную ветвь программирования.

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

К настоящему времени наиболее распространенное средство создания ПО систем управления - набор языков МЭК 61131-3. Однако каждый из языков МЭК 61131-3, взятый в отдельности, имеет выраженную ориентацию на узкую подобласть (логическое управление, регулирование, вычислительные задачи, рецептурные процессы), поэтому при создании сложных управляющих алгоритмов разработчики вынуждены прибегать к так называемому мулътиязыковому программированию (описывать один алгоритм частично на одном, а частично на другом языке). Это обстоятельство вынуждает переходить на альтернативные продукты, например пакет LabVIEW, а в некоторых случаях даже прибегать к языкам общего назначения Си или Си++.

Отечественные и зарубежные исследователи (Ф. Вагнер, А. Бласс, М. Самек, К. Кратер, А. Хубер, А. А. Шальгго и др.) указывают на высокий потенциал модели конечного автомата и обосновывают, в частности, ее преимущества по сравнению с моделями, используемыми в языках МЭК 61131-3. Однако, несмотря на теоретические предпосылки, модель конечного автомата крайне редко используется на практике. Это объясняется:

а) недостаточным соответствием модели специфике промышленной автоматизации (например, в модели отсутствует механизм, позволяющий организовать совместное функционирование нескольких конечных автоматов, что затрудняет спецификацию естественной иерархии и параллелизма, которые

характерны для реальных технологических процессов);

б) отсутствием ориентированных на промышленную автоматизацию формальных языков, реализующих модель конечного автомата;

в) специфическим понятийным аппаратом модели, который затрудняет ее восприятие и изучение специалистами в области информационных технологий.

Таким образом, в силу перечисленных проблем, с которыми сталкиваются разработчики при спецификации алгоритмов управления сложными промышленными объектами на уровне ПЛК, разработка теоретических подходов и лингвистических средств, ориентированных на создание ПО систем управления технологическими процессами является актуальной проблемой.

Объект исследования — программное обеспечение автоматизированных систем управления сложными техническими системами.

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

Цель работы — сокращение трудоемкости реализации и повышение качества ПО уровня ПЛК путем разработки теоретических основ, лингвистических и инструментальных средств создания алгоритмов управления технологическими процессами.

В соответствии с поставленной целью в работе решаются следующие основные задачи исследования:

1) проанализировать специфику алгоритмов управления технологическими процессами, недостатки существующих средств их программирования и сформулировать требования к формальным и лингвистическим средствам спецификации управляющих алгоритмов;

2) разработать понятийный аппарат и формальную математическую модель управляющего алгоритма;

3) определить варианты программной реализации разработанной формальной модели управляющего алгоритма;

4) на основе разработанной модели предложить лингвистические средства для спецификации алгоритма работы сложного технического объекта;

5) разработать и реализовать инструментальные средства генерации исполняемого кода по формальному описанию управляющего алгоритма;

6) предложить подход к отладке управляющих алгоритмов;

7) исследовать предложенные средства программирования на задачах создания автоматизированных систем управления.

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

На базе модифицированной модели конечного автомата можно создать унифицированные понятийный аппарат и лингвистические средства программирования алгоритмов управления широкого класса. Создаваемая понятийно-инструментальная база будет иметь практическую ценность, если:

а) модифицированная модель будет отражать специфику задач автоматизации;

б) понятийный аппарат модифицированной модели будет соответствовать текущим тенденциям в области информационных технологий.

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

Принципиальный вклад в развитие технологии процесс-ориентированного программирования вносят следующие научные результаты, полученные автором:

1. Для алгоритма управления объектом автоматизации построена оригинальная математическая модель гиперпроцесса, отличающаяся от существующих тем, что представляет алгоритм управления в виде совокупности циклически активизируемых параллельных процессов, которые задаются набором альтернативных функций-состояний (активных и пассивных), имеют индивидуальный счетчик времени, сбрасываемый при смене текущей функции-состояния, и взаимодействуют, в частности, через операторы контроля функций-состояний.

2. Предложена парадигма процесс-ориентированного программирования — новый концептуальный подход к организации управляющих алгоритмов уровня ПЛК, который отличается от существующих тем, что предполагает описание управляющего алгоритма на базе модели гиперпроцесса и обеспечивает, тем самым, иерархическую структуризацию программы в виде параллельно исполняемых слабосвязанных процессов.

3. Создан новый формальный язык программирования четвертого поколения — Си-подобный процесс-ориентированный язык Рефлекс, предназначенный для спецификации алгоритмов работы сложных объектов автоматизации. Основные отличительные особенности языка Рефлекс: а) средства описания

входных/выходных переменных, с указанием их привязки к физическим портам ввода/вывода и области видимости; б) средства описания процессов и активных функций-состояний; в) средства структуризации программы (операторы запуска процессов, операторы останова, средства контроля текущей функции-состояния и средства генерации временных событий).

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

5. Разработаны оригинальный метод статической балансировки вычислительной нагрузки программы, описанной на процесс-ориентированном языке и реализуемой в рамках кооперативной многопоточности, на основе учета данных о ресурсоемкости функций-состояний и времени реакции процессов на внешнее событие, а также субоптимальный алгоритм его реализации, отличающийся низкой вычислительной сложностью при удовлетворительном качестве балансировки: а) процессы с одинаковыми временами реакции на внешнее событие объединяются в группы; б) для каждой из групп с временем реакции, превышающим значение периода активизации гиперпроцесса, определяется базовый делитель частоты активизации D; в) для каждого из процессов группы затем определяется индивидуальное смещение активизации О е {0,1, ...,£>- 1}.

6. Определены и классифицированы варианты интеграции процесс-ориентированных алгоритмических структур в программы LabVIEW через dll-механизм, механизм Formula Node и интерпретатор Python, а также вариант реализации гиперпроцесса средствами языка G с помощью: а) тактированного цикла по условию для организации циклической активизации с заданным периодом; б) структур выбора для реализации функций-состояний процесса с ловушкой для диагностики неспецифицированных состояний во время исполнения; в) строковых переменных для хранения идентификатора текущей функции-состояния процесса, — различающиеся между собой по ресурсоемкости реализации, возможности интеграции с элементами пользовательского интерфейса, необходимости использования сторонних программных пакетов и пакета разработки LabVIEW и по уровню контроля семантической корректности кода.

7. Предложена и обоснована концепция итерационной разработки управляющих алгоритмов уровня ПЛК с использованием средств управления сценариями и средств контроля исполнения, отличающаяся унифицированной

связкой между алгоритмом управления и виртуальным объектом управления, которые описываются языковыми средствами процесс-ориентированного программирования, используемыми в целевом ПЛК.

Теоретическая и практическая значимость результатов исследования.

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

Созданное ПО и теоретические результаты исследования использовались в работах по созданию автоматизированных цифровых комплексов по выращиванию методом Чохральского монокристаллического кремния («ЦУК-М», 2002-2005 гг.) и корунда («Корунд», 2004-2006 гг.), при создании системы тестирования радиоэлектронной аппаратуры («М700-У», 2007-2009 гг.), автоматизированного комплекса контроля качества монтажных работ («Стенд-09», 2009 г.), при разработке технологических линий передела с/х продукции и пищевых отходов (проекты «Углеводные добавки», «Биогаз», «Биодизель», 20062011 гг.), при создании микроконтроллерного адаптера промышленных весов («Адаптер», 2012 г.), при модернизации системы тестирования радиоэлектронной аппаратуры («М700-У12», 2012-2013 гг.)

Результаты работы использовались при выполнении: гранта Миннауки №4917ф (Российская научно-техническая программа "Кремний России", 19951996 гг.); интеграционного проекта № 84 Сибирского отделения РАН «Монокристалл» 2006-2008 гг., программы развития научно-образовательного центра Института автоматики и электрометрии СО РАН 2007—2009 гг.; программы «Научно-исследовательский университет НГУ» 2009-2012 гг.; гранта №20121.2.1-12-000-2013-012 (ФЦП «Научные и научно-педагогические кадры инновационной России»).

Теоретические результаты диссертационных исследований и набор виртуальных лабораторных стендов позволили повысить качество подготовки студентов по дисциплинам «Программирование информационно-управляющих

систем на основе конечных автоматов» и «Процесс-ориентированное программирование» (факультет информационных технологий НГУ) и по дисциплине «Теория управления» (Высший колледж информатики НГУ).

Документальные подтверждения эффективности полученных результатов при практическом использовании приведены в Приложении к диссертации.

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

Область исследования. Содержание диссертации соответствует паспорту специальности 05.13.17 «Теоретические основы информатики» (технические науки) по следующим областям исследований: п. 2 «Исследование информационных структур, разработка и анализ моделей информационных процессов и структур»; п. 6 «Разработка методов, языков и моделей человекомашинного общения; разработка методов и моделей распознавания, понимания и синтеза речи, принципов и методов извлечения данных из текстов на естественном языке»; п. 8. «Исследование и когнитивное моделирование интеллекта, включая моделирование поведения, моделирование рассуждений различных типов, моделирование образного мышления»; п. 10 «Разработка основ математической теории языков и грамматик, теории конечных автоматов и теории графов»; п. 12 «Разработка математических, логических, семиотических и лингвистических моделей и методов взаимодействия информационных процессов, в том числе на базе специализированных вычислительных систем»; п. 14 «Разработка теоретических основ создания программных систем для новых информационных технологий».

Положения, выносимые на защиту:

1. Набор классификационных признаков, характерных для алгоритмов уровня ПЛК: а) дуализм системы «управляющий алгоритм - управляемый объект»; б) цикличность и неопределенная продолжительность функционирования алгоритма управления; в) гибридность; г) событийность; д) синхронизм; е) логический параллелизм; ж) структурность и абстрактность формальной спецификации.

2. Математическая модель гиперпроцесса, представляющая управляющий алгоритм в виде периодически активизируемой совокупности логически параллельных слабосвязанных процессов, каждый из которых представлен снабженной индивидуальным таймером событийно-управляемой полиморфной функцией (альтернативными активными и пассивными функциями-состояниями).

3. Варианты модификации модели гиперпроцесса, обеспечивающие повышенную утилизацию вычислительных ресурсов платформы и статическую балансировку вычислительной нагрузки: а) гиперпроцесс с плавающим периодом активизации; б) гиперпроцесс с индивидуальными делителями частоты активизации процессов.

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

5. Программно-алгоритмические решения, использованные при проектировании транслятора языка Рефлекс и его реализации, обеспечивающие повышенную портируемость пользовательских программ на микроконтроллерных платформах.

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

Степень достоверности и апробация результатов. Результаты диссертационной работы докладывались и обсуждались на: 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, предлагаются варианты интеграции создаваемого трансляторами кода в системы управления, в том числе на базе пакета LabVIEW, даются классификационные признаки для предложенных вариантов интеграции. В шестой главе приводятся сведения о практическом использовании языка Рефлекс, в частности излагается и демонстрируется на примерах концепция виртуальных объектов управления.

Объем работы - 250 страниц основного текста, содержит 70 рисунков, 18 таблиц. Список литературы содержит 215 наименований.

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ

Во ВВЕДЕНИИ обоснована актуальность работы, сформулированы цель и задачи исследования, научная новизна, практическая ценность и основные положения, выносимые на защиту.

В ПЕРВОЙ ГЛАВЕ обсуждается специфика задач промышленной автоматизации, проводится критический анализ существующих подходов к реализации ПО систем управления, формулируются требования к формальным и лингвистическим средствам спецификации управляющих алгоритмов.

На современном этапе развития техники в качестве ядра системы промышленной автоматизации используется специализированный вычислитель -программируемый логический контроллер (ПЛК), к которому со стороны объекта автоматизации подключаются датчики и исполнительные органы (рис. 1).

Рис. 1. Программируемый логический контроллер -ядро современной системы управления

Через датчики в ПЛК поступает информация о текущем состоянии объекта, а через исполнительные органы ПЛК изменяет состояние управляемого объекта. Эта базовая схема может усложняться. Например, ПЛК может подключаться к АРМ оператора для супервизорного управления или к базе данных для накопления информации и интеграции в АСУ предприятия.

Типичное исполнение ПЛК предполагает наличие крейта с источником питания и системной магистралью, объединяющей процессорный модуль и входные/выходные интерфейсные модули. Интерфейсные модули обеспечивают связь с датчиками и исполнительными органами. Типовые интерфейсные модули-модули аналоговых входов/выходов на основе АЦП/ЦАП, модули цифровых входов и выходов, счетчики и частотомеры.

Процессорный модуль современного ПЛК может включать (помимо собственно процессора, оперативной и энергонезависимой памяти) последовательные порты RS-232/RS-485, Ethernet и USB, через которые можно подключать входные/выходные модули с Ethernet и USB-интерфейсами и создавать системы управления с распределенной архитектурой.

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

Алгоритм управления выполняет особую роль уже при проектировании управляющей системы. А. А. Ляпунов констатировал, что моделирование любой управляющей системы всегда начинается с алгоритмического описания процесса управления.

С методологической точки зрения, проработанной в отношении систем управления Г. П. Щедровицким, это обосновывается особенностями инженерии и проектировочного подхода, которые выдвигают на первый план алгоритмическую, процессную и функциональную составляющие системного анализа. При разработке технических систем проектировщик ориентируется на функцию, т. е. заданные преобразования объекта деятельности, определенное функционирование системы. Датчики и исполнительные органы, которые будут обеспечивать это функционирование, вторичны. Поэтому проектирование начинается не с материально выделенных объектов, а с идеально заданных функций и способа функционирования. Таким образом, сначала описывается функциональная составляющая технической системы, а затем уже определяются те или иные материальные устройства, обеспечивающие реализацию. Г. П. Щедровицкий резюмирует эту мысль так: «...проектировщик начинает задание своего объекта с фиксации процессов в этом объекте, в первую очередь процессов функционирования, и именно эти процессы определяют границы объекта проектирования как системы, а все остальное должно быть к ним подстроено».

А. Д. Закревский, в работах которого по языку ПРАЛУ убедительно обосновано выделение задачи автоматизации в отдельный класс, также приходит к выводу, что, приступая к проектированию системы управления, нужно, прежде всего, выяснить, что должна делать система, задать условия ее работы, определить ее функции и описать их на некотором формальном языке, исключающем неоднозначность толкования.

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

Автоматизация технологических процессов на основе вычислительной цифровой техники предполагает следующий набор специфических классификационных признаков:

1. Дуализм — наличие собственно системы управления с программной реализацией алгоритма, включающей датчики обратной связи и органы управления, и внешней (по отношению к системе управления) среды — объекта управления.

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

3. Гибридность алгоритма управления, т. е. необходимость использовать в алгоритме операции с целочисленными и логическими переменными, а также с переменными с плавающей точкой, которые реализуют вычислительные функции, функции регулирования аналоговых сигналов и функции дискретного управления (в пределе, так называемое релейное управление).

4. Событийность алгоритма управления: система управления формирует управляющие выходные сигналы, или реагирует, в зависимости от внешних и внутрисистемных событий, причем во время исполнения могут изменяться и алгоритмы формирования выходных сигналов, и алгоритмы вычленения событий из потока входных сигналов.

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

6. Логический параллелизм алгоритма управления, предполагающий наличие в алгоритме управления независимых или слабосвязанных потоков управления, которые отражают существование множества параллельно протекающих процессов в объекте управления.

7. Формальный язык программирования, учитывающий вопросы удобства пользования языком (прагматику) и предоставляющий механизмы структуризации алгоритма и механизмы абстрагирования, которые позволяют описывать алгоритм в терминах целевого технологического процесса.

Анализ существующих подходов к спецификации алгоритмов управления, в первую очередь языков МЭК 61131-3, проведенный с целью определить степень соответствия языков МЭК 61131-3 специфике задач автоматизации, выявляет серьезные недостатки. Языки МЭК 61131-3 хотя и просты в изучении в силу своей метафоричности, но при усложнении реализуемого алгоритма управления быстро достигают пределов своих выразительных свойств. Альтернативные языкам МЭК 61131-3 средства (встроенные средства БСАОЛ-систем, ориентированные на программирование алгоритмов управления, процедурные и объектно-

ориентированные языки программирования, «конечно-автоматные» языки, МЭК 61499, язык G пакета Lab VIEW, Microsoft Robotics Developer Studio) также небезупречны, что существенно ограничивает возможность их использования для спецификации сложных алгоритмов управления.

Модель конечного автомата, которая могла бы стать основой для конструирования формализма с заданными свойствами в части описания взаимодействия с внешней средой, цикличности и событийности, в исходном виде не обладает требуемыми свойствами синхронизма, гибридности и логического параллелизма, не предоставляет механизмов структуризации (в терминологии, использованной В. М. Глушковым, - механизмы блочного синтеза). Кроме того, она ориентирована на схемную реализацию и основана на устаревшем понятийном аппарате, который идет вразрез с современными тенденциями в области информационных технологий. Перечисленные недостатки модели затрудняют ее изучение и принципиально ограничивают ее использование на практике.

На основе изложенного можно сформулировать основные требования к базовому математическому формализму, ориентированному на спецификацию алгоритмов управления сложным техническим объектом. Он должен:

1. Основываться на модели конечного автомата.

2. Предоставлять простой механизм синхронизации алгоритма.

3. Допускать организацию программы в виде обозримых, информационно-изолированных компонентов, возможно, иерархически вложенных друг в друга.

4. Включать средства распараллеливания алгоритма, обеспечивающие надежную дивергенцию и конвергенцию потоков управления.

5. Обеспечивать возможность спецификации гетерогенных алгоритмов, в том числе, предоставлять механизмы описания логического управления, регулирования, условных и безусловных выражений.

6. Учитывать современное состояние информационных и компьютерных технологий, в частности, использовать адекватный понятийный аппарат.

Во ВТОРОЙ ГЛАВЕ проводится критический анализ существующих модификаций модели конечного автомата, предпринятых в последние годы исследователями с целью сделать модель более универсальной, предлагается формальная математическая модель управляющего алгоритма в виде гиперпроцесса и вводится понятийный аппарат процесс-ориентированного

программирования, терминологически базирующийся на принятом в программировании понятийном аппарате.

Гиперпроцесс Н представляет собой упорядоченное множество процессов, циклически активизируемых с периодом активизации Тн:

Н= < Тн,Р,р1 >, где

Тн - период активизации гиперпроцесса;

Р — множество процессов (Р = {р\,рг, ■■■ ,Рп, ■■■ ,Ры}, где ЛГ-число процессов гиперпроцесса);

Рх — начальный или выделенный процесс, р} е Р.

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

Таким образом, математическая модель процесса представляет собой множество из пяти элементов:

р, = < -Р„/„ ,_//°иг, Т,сш >, где

^ - множество альтернативных функций-состояний процесса;

/н — начальная функция-состояние (выделенная активная функция),/ц е Р,; - текущая функция-состояние,^' е Р,;

Т™ - текущее время процесса, время отсутствия смены текущей функции-состояния процесса.

В свою очередь,7-я функция-состояние произвольного /-го процесса:

/у=<Хф >, где

Ху — множество событий функции-состояния /¡¡; Уу - множество реакций функции-состояния /у.

В качестве события функции может рассматриваться произвольная суперпозиция фактов: значение текущей функции некоторого процесса, некоторое определенное значение переменной и некоторое определенное значение времени отсутствия переходов процесса.

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

Среди функций-состояний процесса F, различаются взаимно непересекающиеся множества активных и пассивных функций-состояний, F' и F? соответственно. Функция-состояние процесса пассивна, если его множество реакций пустое:

jreFr.r{ = 0.

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

Анализ явно выраженных свойств предложенной модели указывает на ее соответствие задачам управления: ориентация на взаимодействие с внешним объектом управления, цикличность, событийность, возможность операций с временными интервалами, средства компоновки процессов и естественный параллелизм. Модель гиперпроцесса терминологически ориентирована на программную реализацию и отражает современное состояние информационных технологий. Выявленный новый тип функционального полиморфизма назван событийным полиморфизмом.

Пример описания начального состояния f3l процесса р3, демонстрирующий использование операций по проверке текущей функции-состояния стороннего процесса и работу с временными интервалами: /з1: >>i = i;

if (/Г ==/NS) -> {j, = O-jr =/2' -jr =/з2;}

if(T3p >3C)^{/3OT=/ES;}.

В приведенном фрагменте переменной уi присваивается значение 1. Если текущая функция-состояние процесса р2 — «нормальный останов», то переменной Ух присваивается значение 0. Процесс р2 переводится в начальное состояние, а текущая функция-состояние процесса р3 меняется на /32. При отсутствии других событий через три секунды (7У > 3 с) наступает событие тайм-аута и процесс р3 меняет свою текущую функцию-состояние на пассивную функцию «останов по ошибке».

Для демонстрации операциональных свойств используются сокращенные обозначения (табл. 1).

Пример запуска процесса р2 из процесса ръ демонстрирующий возможность блочного синтеза в рамках модели гиперпроцесса через механизм пассивных функций-состояний (процесс р2 предполагает переход в пассивное состояние): /з':

start p2 ; // запуск процесса р2

/зшг -Уз2 ; // смена текущей функции-состояния на/32 /з2:

if ((р2 in stop) Н (р2 in error)) // ожидание перехода р2 в пассивное состояние —> { < действия >} // по наступлению события - реакция.

Табл. 1. Сокращенные обозначения

Обозначение Пояснение

timeout (0 з if (Г/ >0 Событие тайм-аута, превышение времени нахождения процессар1 в текущей функции-состоянии значения f

start Запуск процесса />,, или установка текущей функции-состояния в начальное активное

StOpp,s {/fur=/№;} errorpjS Wcur=/ES;} Перевод процесса р, в пассивные состояния нормального останова и останова по ошибке (/■к). При задании воздействия на текущий процесс операнд опускается

if {pi in stop) = if (/r==/NS) if (p, in error) s if {fT ==/ES) События «нахождение процесса р, в пассивном состоянии нормального останова (/ш)» / «...останова по ошибке (/"к)>>

Механизм пассивных состояний позволяет организовать передачу информации о результате выполнения процесса - регламентном завершении или завершении в результате возникновения ошибок.

Пример использования пассивных функций-состояний: fi

< действия > // некоторые действия

fi" ~fr ; Н смена текущей функции-состояния на $

Л2:

if ((*22 == 17) // проверка события «значение Хп равно 17» Stop р2; II смена текущей функции-состояния на/NS else -> error р2 ; II инверсивное событие - смена/г"" на/ES. С точки зрения информатики процесс можно рассматривать и как поток управления (control flow). И в терминах потока управления модель гиперпроцесса имеет следующие свойства: а) при порождении нового потока управления порождающий поток управления продолжает свою работу; б) при порождении новых потоков управления не возникают какие-либо отношения родственности между потоками управления.

Это позволяет организовывать гибкие иерархические структуры, в том числе дивергенцию и конвергенцию потоков управления произвольной топологии. Пример порождения потоков управления с последующей конвергенцией: /з':

start pt ; // запуск процесса рл

start ps ; // запуск процесса p5

/з» = /32; // смена текущей функции-состояния на_/з2

/з2:

if (((р4 in stop) II (р4 in error)) && // ожидание конвергенции

((р5 in stop) || (р5 in error))) -> { < действия > }.

Таким образом, модель гиперпроцесса не только решает проблему иерархического описания алгоритма управления при безаварийном течении процесса, но и позволяет изменить эту иерархию в случае диагностики неисправностей.

В ТРЕТЬЕЙ ГЛАВЕ рассматриваются возможные варианты модификации модели гиперпроцесса и способы его алгоритмической реализации различными языковыми средствами.

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

Указан альтернативный способ реализации процессов на процедурных языках - оформление функций-состояний процесса в виде процедур и использование адресной ссылки на процедуру.

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

Рассмотрен вариант реализации гиперпроцесса средствами пакета LabVIEW (рис. 2). Реализация процесса основана на использовании структуры выбора (Case structure), заключенной в тактируемый цикл по условию (While loop). В качестве идентификатора функции-состояния используется строковая переменная. Для контроля корректности используемых имен функций-состояний создается ловушка по умолчанию («Default» case), которая предполагает выдачу диагностического сообщения пользователю в случае, если строковая переменная была ошибочно инициализирована именем несуществующей функции-состояния.

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

Из-за низкоуровневой реализации, которая в первую очередь отвлекает программиста от собственно алгоритма управления, использование LabVIEW сопряжено с отсутствием автоматической диагностики зацикленных и недостижимых функций-состояний и ограниченным обзором кода (видна лишь одна функция-состояние процесса), что приводит к низкой читаемости программы.

Рис. 2. Основные приемы реализации гиперпроцесса в пакете LabVIEW

Среди нюансов реализации была обнаружена сложность организации произвольных иерархических структур, что, скорее всего, обусловлено внутренними деталями синхронизации локальных переменных в LabVIEW.

В качестве варианта, который позволяет устранить непроизводительное расходование вычислительных ресурсов и решить проблему чрезмерной ресурсоемкости алгоритма, описан подход, предложенный при построении процесс-ориентированного расширения языка Lisp - Common Lisp Process System (CLIPS).

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

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

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

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

Pi = (F,J,jr\ ТГ, А, о,, or), где

Д - индивидуальный делитель частоты активизации процесса, Д е N;

Oj - индивидуальное смещение активизации, О, е {0,1,..., Д — 1};

О/ж е {0,1,..., Д- 1}-текущее смещение активизации (во время исполнения).

Рассмотрен субоптимальный алгоритм равномерного распределения процессов с одинаковой частотой активизации по циклам активизации гиперпроцесса на основе индивидуальных смещений активизации.

Индивидуальные смещения активизации определяется по следующему алгоритму, названному субоптимальным алгоритмом:

• для процессов определяется характеристическое время исполнения Мах (р,);

• процессы объединяются в группы по признаку равенства делителя частоты и в дальнейшем рассматриваются по группам;

• внутри группы процессы ранжируются по характеристическим временам в убывающем порядке;

• для каждого из индивидуальных смещений, возможных для рассматриваемого делителя Д заводится счетчик суммарного времени Г/иш , i е {0,1,... ,D- 1};

• распределение индивидуальных смещений производится по процессам, по порядку, начиная с процесса с наибольшим характеристическим временем. Процессу pj присваивается индивидуальное смещение, равное номеру к счетчика суммарного времени с минимальным значением (О, = к: Tksum = Min ({Г/ит})). После чего счетчик суммарного времени увеличивается на величину Мах (р).

ЧЕТВЕРТАЯ ГЛАВА посвящена описанию языка Рефлекс, вариантам процесс-ориентированного расширения языков МЭК 61131-3 и описанию синтаксиса графического языка процесс-ориентированного программирования HPD.

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

Синтаксис Си расширен концептом параллельно исполняемого процесса (полиморфной функции событийного типа) и функции-состояния (альтернативной функции процесса). Синтаксис исключает описание рутинных операций по интерфейсу с модулями связи с объектом управления и периодическую активизацию процессов. Порядок описания определяет начальный процесс гиперпроцесса и начальное состояние процесса.

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

В синтаксис языка введены операторы (Листинг 1), обеспечивающие механизмы дивергенции/конвергенции процессов и их временно Он синхронизации.

Синтаксис и семантика языка ориентированы на модель гиперпроцесса и скрывают от пользователя рутинные вопросы реализации событийного полиморфизма. Язык предусматривает различные области видимости для переменных: локальные, глобальные, видимые только из указанных процессов.

Процесс-ориентированное расширение может быть выполнено для произвольного процедурного языка, что было продемонстрировано на примере языка ST из состава МЭК 61131-3. В случае ST такое расширение привлекательно для пользователей МЭК 61131-3 тем, что при незначительных затратах на

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

Листинг 1. Фрагмент программы на языке Рефлекс

PROG Демо{

TACT 10; /* период активизации 100 мс */

ГIIIIIIII1111IIII ОПИСАНИЕ КОНСТАНТ IIIIIIIIIIIIIIIIIIII 1Ш#Ч CONST BKJ1 1; CONST ВЫКЛ 0;

гннинIIнин описание регистров нпининнIIннimv

INPUT ВХОДЫ 0ХА110 0 8 OUTPUT ВЫХОДЫ 0ХА910 0 16 INPUT АЦП 0ХА120 0 16

/* входной восьмиразрядный порт */ Л выходной 16-разрядный порт */ /* входной 16-разрядный порт */

ОПИСАНИЕ ПРОЦЕССОВ II II II II II II II II IIНЖГ1 PROC Инициализация {

Г II II II II II II II II ОПИСАНИЕ ПЕРЕМЕННЫХ II II II II II II II II II II 1Ж*1

LOG К_БакПолон ={ВХОДЫ[1]} LOCAL; Г булева переменная */

LOG У_НаполнитьБак ={ВЫХОДЫ[1]> FOR ALL;

INT ФП_Температура ={АЦП[16]} FOR PROC ПодогревБака;

/*#### ОПИСАНИЕ ФУНКЦИЙ-СОСТОЯНИЙ (ФС): II II II II II II II II II II II II II II ШИП Г II II II II (ES - «останов по ошибке», NS - «нормальный останов») ####*/ STATE Начало {

У_НаполнитьБак = ВЫКЛ;

NEXT; С изменение текущей ФС */

} Гна описанную следующей */

STATE КонтрольНаполненияБака {

IF (К_БакПолон) START PROC ПодогревБака; Г запуск процесса*/ TIMEOUT (100) IN STATE Начало; I* проверка тайм-аута*/

} /* и смена текущей ФС */

} I* на указанную */

PROC ПодогревБака {

FROM PROC Инициализация ФП_Температура; /* ссылка на переменную*/ STATE Начало {

IF (ФП_Температура < 100)

ERROR; Г перевод процесса в ФС «ES» */

ELSE

STOP PROC РозливБутылок; Г перевод стороннего процесса в ФС «NS» */

}

} }

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

языка предложен язык Hyper-process diagram (HPD) (рис. 3). Язык позволяет описывать управляющие алгоритмы широкого класса и может быть рекомендован в качестве дополнения к набору диаграмм UML, как средство коммуникации с технологическим персоналом, заказчиком и внутри команды разработчиков при создании алгоритмов на основе процесс-ориентированной парадигмы.

В ПЯТОЙ ГЛАВЕ описывается реализация трансляторов языка Рефлекс в язык Си, язык формата Formula Node и язык Python, предлагаются варианты интеграции создаваемого трансляторами кода в систему управления, в том числе, системы управления, создаваемые на базе пакета LabVIEW, приводятся классификационные признаки для предложенных вариантов интеграции.

Для языка Рефлекс разработаны и реализованы трансляторы в язык Си (R2C), Си-подобный язык структуры Formula Node пакета LabVIEW (R2CFN) и язык Python (R2Py). Трансляторы базируются на методе рекурсивного спуска с предсказывающим парсером и имеют двухпроходную архитектуру (первый проход - синтаксический LL( 1 )-анализатор, второй - семантический анализ и кодогенерация), предусмотрена автоматическая подстройка на используемые язык и кодировку (в случае русского варианта синтаксиса). Метод реализации обеспечивает линейную зависимость времени трансляции от размера исходного текста на языке Рефлекс.

В трансляторе R2C реализованы встроенный интерфейс с языком Си через прагму #С с согласованием имен переменных, автоматическая генерация выходных файлов с учетом ограничений Си-трансляции, кодогенерация, ориентированная на stand-alone режим исполнения; предусмотрено выделение архитектурно-зависимых и системно-зависимых участков кода в отдельные модули (обмен с модулями УСО, служба времени, механизм активизации); также предусмотрена генерация заголовочных /¡-файлов, обеспечивающих системную интеграцию на базе механизма сообщений.

В трансляторах R2CFN и R2Py из-за отсутствия понятия констант (в FN и Python) и функций (в FN), константы, заданные пользователем в тексте на языке Рефлекс, преобразуются транслятором в переменные, а процессы реализуются последовательностью конструкций табличного разбора.

Предложен способ интеграции процесс-ориентированных алгоритмических структур (ПОАС) в LabVIEW на основе конструкции Formula Node.

При такой реализации код для структуры Formula Node генерируется транслятором R2CFN. Служба времени и периодичность активизации обеспечиваются с помощью тактированного цикла по условию. Обмен данными между ПОАС и объектом управления реализован через массивы ввода/вывода, а

внутренние переменные гиперпроцесса, обеспечивающие идентификацию текущих функций-состояний процессов и текущих времен, сохраняются в регистровых массивах. Это гарантирует передачу значений от цикла к циклу и независимость структурных связей от изменений, вносимых ПОАС при корректировке. В силу особенностей реализации LabVIEW оператор должен вручную вставлять код, сгенерированный транслятором, в структуру Formula Node, поэтому при работе постоянно используется пакет LabVIEW.

Рис. 3. Фрагмент программы на языке HPD

В качестве альтернативы предложен способ, позволяющий исключить использование среды разработки LabVIEW при корректировке ПОАС. Он предполагает интеграцию в среду LabVIEW интерпретатора Python и, в отличие от варианта интеграции алгоритмического блока через механизм Formula Node,

создать законченное приложение, независимое от пакета разработки LabVIEW. ПОАС, создаваемый на языке Рефлекс, преобразуется транслятором R2Py в текст на языке Python, который затем запускается на исполнение интерпретатором языка Python. Интерпретатор языка Python интегрирован в среду LabVIEW через механизм ActiveX. Тактирование гиперпроцесса произведено штатными средствами LabVIEW: основной цикл гиперпроцесса «обернут» тактируемым циклом. Механизм ActiveX обеспечивает доступность из текста на языке Python входных/выходных массивов, необходимых для взаимодействия ПОАС с объектом управления, и служебных переменных, необходимых для программной реализации модели гиперпроцесса.

Указан вариант интеграции ПОАС через механизм dll с использованием транслятора R2C.

Классификационные признаки и особенности различных способов внедрения ПОАС в среду LabVIEW сведены в табл. 2.

В ШЕСТОЙ ГЛАВЕ рассматриваются примеры решения типовых задач промышленной автоматизации на процесс-ориентированном языке Рефлекс, приводятся сведения о его практическом использовании, излагается и демонстрируется на примерах концепция виртуальных объектов управления.

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

Далее приводятся сведения об использовании языка Рефлекс при создании

АСУ технологическим процессом выращивания монокристаллического кремния методом Чохральского.

Система построена на серийно изготавливаемой элементной базе и имеет распределенную

многомашинную архитектуру (рис. 4), включающую набор программных средств

технологического уровня (1) и программно-технические комплексы (ПТК) производственного участка (5), объединенные цеховой сетью Ethernet.

Рис. 4. Архитектура системы управления

Таблица 2. Варианты интеграции ПОАС в LabVIEW

Название Примеры Достоинства Недостатки

Интеграция через Formula Node Express VI Транслятор языка Рефлекс в Си-подобный язык Formula Node (R2CFN) и ручное копирование кода в структуру • диагностика ошибок; • низкие накладные расходы на организацию исполнения • необходимость использовать среду разработки LabVIEW для модификации управляющего алгоритма; • обмен данными интерфейсной и со-бытийно-управляемой частями программы через дополнительную прослойку (data-layer); • ограничения выразительных средств языка Formula Node

Интеграция через dll-меха-низм Транслятор языка Рефлекс в язык Си (R2C) с последующей генерацией кода компилятором языка Си • возможность изменять событийно-управ-ляемую часть программы без пакета LabVIEW; • диагностика ошибок (в случае транслятора Reflex2C); • низкие накладные расходы на организацию исполнения • необходимость использовать стороннее коммерческое ПО для модификаций управляющего алгоритма (например, Vusual С); • обмен данными интерфейсной и со-бытийно-управляемой частями программы через дополнительную прослойку; • отсутствие контроля ошибок и проблемы качества событийно-управляе-мой части программы (при ручной реализации на Си)

Интеграция через встраиваемый интерпретатор Транслятор с языка Рефлекс в язык Питон (R2Py) и последующее использование интерпретатора Python • возможность изменять событийно-управ-ляемую часть программы без пакета LabVIEW; • возможность бесшовной модификации управляющего алгоритма во время исполнения • диагностика ошибок • обмен данными интерфейсной и со-бытийно-управляемой частями программы через дополнительную прослойку; • высокие накладные расходы на организацию исполнения (интерпретатор); • несоответствие арифметических операций из-за автоматического определения типов переменных в языке Python

Реализация нативными средствами LabVIEW Язык G • бесшовный интерфейс между интерфейсной и событийно-управляемой частями программы; • независимость от сторонних пакетов разработки • ограничение на сложность программы; • низкая сопровождаемость; • необходимость использовать среду разработки LabVIEW для модификации управляющего алгоритма; • низкий уровень контроля семантики программы

Технологический уровень обеспечивает удаленный мониторинг системы, анализ экспериментальных данных, гибкую настройку алгоритмов программно-

технического комплекса (ПТК) нижнего уровня, учет и паспортизацию продукции. ПТК производственного участка включает ростовую установку (3) и герметичный шкаф программного управления (2), на передней панели которого расположен сенсорный экран промышленного ПК (2.1), реализующий мультимедийный интерфейс пользователя.

Высоконадежный контроллер (2.2) обеспечивает отработку технологических программ, интеграцию цифровых устройств: приводов (2.3), датчиков (2.4), выносного пульта оператора (2.5), источника питания (2.6), и управление подсистемами ростовой установки (4).

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

Высокая вероятность нерегламентного течения техпроцесса и серьезный материальный ущерб при аварии с возможным травматизмом обслуживающего персонала, сложность и разнородность алгоритма управления позволяют отнести техпроцесс к классу критических. Поэтому кроме собственно осуществления выращивания, включающего более 20 этапов, алгоритм управления предусматривает и специализированные технологические режимы проверки исправности комплекса технических средств, и постоянный контроль возникновения аварийных ситуаций (перегрев в магистралях охлаждения, разрушение тигля, отказ управляющих утройств и т. д.), а при аварии — переключение на дублирующие механизмы или автоматический перевод ростовой установки в безопасное состояние.

Вытекающие из этого базовые требования к ПО (высокая надежность и устойчивость ПО; постоянный контроль возникновения аварийных ситуаций во время работы, их точная диагностика и автоматическое устранение; предотвращение действий оператора, ведущих к аварийным ситуациям; необходимость интеграции в систему удаленных датчиков и серводвигателей, документирование текущих параметров с возможностью их считывания извне для

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

управления с большим числом параллельно исполняемых процессов; высокая степень гибкости и модифицируемости алгоритма управления; высокая степень модульности алгоритма с возможностью модификации как во время отладки, так и на протяжении всего жизненного цикла) обусловили двухуровневую архитектуру построения ПО с явным выделением управляющего ПО в качестве ядра системы и подчинением ему ПО, реализующего интерфейс оператора (рис. 5).

Для спецификации алгоритма управления использовалась событийно-управляемая стратегия. Алгоритм создавался на процесс-ориентированном языке Рефлекс. Вычислительная платформа - MicroPC с процессором CPU686E фирмы Fastwel, 300 МГц. Алгоритм управления был описан в виде гиперпроцесса с числом процессов около 800. Размерность поведенчески эквивалентного автомата -порядка Ю30 состояний. Вариант реализации - системонезависимая (инструментальные функции загрузки возложены на ОС MS DOS 6.22). Для получения целевого машинного кода использовался транслятор Рефлекс версии 1.5 в совокупности с компилятором Borland С++ версии 3.1. Период активизации гиперпроцесса - 100 мс. Пиковая нагрузка - не более 9 мс. Время реакции на внешнее событие - не более 110 мс (достижимое время реакции - 20 мс).

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

Предложена и обсуждена концепция итерационной разработки управляющих программ на основе виртуальных объектов управления (ВОУ) (рис. 6). Подход

Панельный компьютер оператора

Выносные активные устройства (датчики, пульты, источники питания)

%

t X RS-232 Т RS-232/ X RS-485

Модуль процессорный Модуль последовательных интерфейсов

ж Z

Системная магистраль IBM/XT

IX

Модуль ввода/вывода Модуль ввода/вывода

Логические и аналоговые входы/выходы

Рис. 5. Структурная схема крейта контроллера

предполагает описание алгоритма и программной модели объекта едиными лингвистическими средствами, унифицированный интерфейс между алгоритмом и ВОУ и получение исполняемого кода для целевого ПЛК.

Рис. 6. Итерационная модель разработки алгоритма управления (АУ) с тестированием на виртуальном объекте управления (ВОУ)

Использование метода в реальных проектах по автоматизации позволяет:

1. Тестировать создаваемые алгоритмы, начиная с самых ранних стадий разработки, и внедрить итерационную модель разработки управляющих алгоритмов уровня ПЛК.

2. Контролировать процесс создания управляющих алгоритмов и снизить психологическую нагрузку на коллектив разработчиков.

3. Уменьшить трудоемкость проекта и имеющиеся риски этапа пуско-наладки.

4. Гибко расширять круг лиц, участвующих в процессе разработки и приемосдаточных испытаний, в том числе, с целью выявить и устранить ошибки в техническом задании, согласовать варианты исполнения, сократить время подготовки операторов к этапу внедрения и последующей эксплуатации.

Подход использовался при автоматизации технологического процесса контроля радиоэлектронной аппаратуры (схема: LabVIEW, язык G). Полученные результаты подтверждают теоретические выводы: до пуско-наладочных работ выявлен и устранен ряд неопределенностей в техническом задании, сокращены сроки выполнения работы, продолжительность приемо-сдаточных испытаний сокращена с одного месяца (планируемый срок) до рабочей недели. Последующая существенная модернизация проекта проводилась дистанционно, без присутствия разработчика на приемо-сдаточных испытаниях.

Рассмотрен пример использования концепции ВОУ при отработке технологий получения углеводных кормовых добавок и побочных продуктов пищевой

промышленности в биотопливо (биогаз и биодизель). В работах проведена оценка параметров технологического процесса, уточнен состав технологического оборудования, получены алгоритмы управления технологическими процессами и компьютерные модели, активно используемые при общении с потенциальными заказчиками в качестве демонстрационных макетов.

Рассмотрен пример использования концепции ВОУ при создании набора виртуальных лабораторных стендов, ориентированных на практическое освоение основ программирования задач промышленной автоматизации. Приведена архитектура системы. В качестве рабочей среды использована среда LabVIEW, расширенная языком процесс-ориентированного программирования Рефлекс. Интеграция транслятора Рефлекс в среду LabVIEW выполнена на основе интерпретатора языка Python и механизма Active X.

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

В ЗАКЛЮЧЕНИИ подводятся итоги диссертационной работы, формулируются ее основные результаты.

ПРИЛОЖЕНИЕ содержит список резервированных слов языка Рефлекс и вспомогательные материалы, копии документов о результатах использования средств процесс-ориентированного программирования на практике.

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ

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

В диссертации получены следующие основные результаты:

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

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

3. Определены варианты программной реализации модели гиперпроцесса на процедурных языках, языках МЭК 61131-3, LISP и G, выявлены возможные модификации гиперпроцесса, обеспечивающие повышенную утилизацию вычислительных ресурсов платформы и статическую балансировку вычислительной нагрузки в средах с кооперативной многопоточностью: а) гиперпроцесс с плавающим периодом активизации; б) гиперпроцесс с индивидуальными делителями частоты активизации процессов.

4. Предложены грамматики текстовых и графических процесс-ориентированных языков (Си-подобного языка Рефлекс, расширенного языка ST / МЭК 61131-3, графического языка HPD).

5. Разработаны и реализованы трансляторы языка Рефлекс для генерации Си-кода (R2C), кода на языке Formula Node (R2CFN) и Python-кода (R2Py).

6. Предложен новый итерационный подход к разработке управляющих алгоритмов уровня ПЛК средствами процесс-ориентированного программирования на основе унифицированной связки «алгоритм управления - виртуальный объект управления» и разработан набор виртуальных лабораторных стендов, позволяющих организовать практическую отработку стратегий создания управляющих алгоритмов средствами процесс-ориентированного программирования.

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

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

СПИСОК ОСНОВНЫХ РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕРТАЦИИ

1. ЗюбинВ.Е. Процесс-ориентированное программирование: учеб.-метод. пособие. -Новосибирск: Новосиб. гос. ун-т, 2011. - 192 с.

2. Зюбин В.Е. К пятилетию стандарта IEC 1131-3. Итоги и прогнозы // Приборы и системы управления. 1999. № 1. С. 64-71.

3. Зюбин В. Е. Программирование ПЛК: языки МЭК 61131-3 и возможные альтернативы // Промышленные АСУ и контроллеры. 2005. № 11. С. 31-35.

4. Зюбин В. Е. Многоядерные процессоры и программирование // Открытые системы. 2005. № 7-8. С. 12-19.

5. Зюбин В. Е. Графика или текст: какой язык нужен программисту? И Открытые системы. 2004. № 1. С. 54-58.

6. ЗюбинВ.Е., Кузнецове. А. Проблемы классификаций в машиностроении // Автоматизация и современные технологии. 1999. Ks 2. С. 31-33.

7. Зюбин В. Е. Управляющие алгоритмы сложных технологических процессов И Автоматизация и современные технологии. 2004. № 8. С. 23-31.

8. Зюбин В. Е. Человеко-ориентированное программирование // Веста. Том. гос. ун-та. 2010. № 1(9). С. 52-59.

9. Зюбин В. Е. Язык Рефлекс. Математическая модель алгоритмов управления // Датчики и системы. 2006. № 5. С. 24-30.

10. Зюбин В.Е. "Си с процессами" - язык программирования логических контроллеров // Мехатроника, автоматизация, управление. 2006. № 12. С. 31-35.

11 .ЗюбинВ.Е. Перспективные модификации языка ST из состава МЭК 61131-3 // Промышленные АСУ и контроллеры. 2009. № 4. С. 19-22.

12. ЗюбинВ.Е. Пути расширения языка ST из состава МЭК 61131-3 для задач промышленной автоматизации // Приборы и системы. 2009. № 3. С. 16-19.

13. ЗюбинВ.Е. LabVIEW: Создание управляющих алгоритмов в процесс-ориентированном стиле // Промышленные АСУ и контроллеры. 2011. № 1. С. 39-45.

14. Zyubin V. Е. Using Process-oriented Programming in LabVIEW I I Proceedings of the Second IASTED Internationa] Multi-Conference on "Automation, Control, and Information technology": Control, Diagnostics, and Automation. Novosibirsk, June 15-18,2010. P. 35-41.

15. ЗюбинВ.Е. Статическая балансировка вычислительных ресурсов в процесс-ориентированном программировании И Вестник НГУ. Серия: Информационные технологии. 2012. Том 10, Выпуск 2. С. 44-54.

16. Зюбин В. Е. Использование виртуальных объектов для обучения программированию информационно-управляющих систем // Информационные технологии. 2009. № 6. С. 79-82.

17. Зюбин В. Е., Котов В. #., Котов Н. В. и др. Базовый модуль, управляющий установкой для выращивания монокристаллов кремния // Датчики и системы. 2004. Ks 12. С. 17-22.

18. ЗюбинВ.Е., Лубков А. А. Комплексная автоматизация выращивания монокристаллов кремния // Известия вузов. Материалы электронной техники. 2007. № 4. С. 74—77.

19. Зюбин В Е.. Клисторнн II. Ф.. Лубков А. А. Архитектура системы управления установкой для выращивания монокристаллов кремния // Вестник Самарского государственного технического университета. Серия "Технические науки". № 33. 2005. С.43^47.

20. Зюбин В. Е.. Лубков А. А.. Перебейнос С. В.. Петухов А. Д. Информационно-управляющая система моделирующего комплекса выращивания крупногабаритных моионокристаллов // Известия вузов. Материалы электронной техники. 2006. № 1. С. 24-29.

21 .Зюбин В. Е., Калугин А. А. Виртуальные лабораторные стенды: обучение программированию задач промышленной автоматизации // Промышленные АСУ и контроллеры. 2009. № 2. С. 39-44.

22. Зюбин В. Е.. Носенко А. В. Методика создания виртуальных объектов управления для обучения программированию ПЛК // Новые технологии в образовании. 2009. № 5. С. 102-103.

23. Зюбин В. Е. Итерационная разработка управляющих алгоритмов на основе имитационного моделирования объекта управления //Автоматизация в промышленности. 2010. № 11. С. 43-48.

24. Зюбин В. Е. Процесс-ориентированный подход к программированию управляющих алгоритмов в среде 1_аЬ\'1Е\\' // Промышленные АСУ и контроллеры. 2011. № 1. С. 39^5.

25. Аксёнов В. В.. Зюбин В. Е.. Петухов А. Д. Автоматизация технологических линий производства кормовых паток из зернового сырья с использованием виртуальных объектов // Вестник КрасГАУ. 2012. № 1 С. 14-20.

26. Горячкчн А. А.. Зюбин В. Е.. Лубков А. А. Разработка графического формализма для описания алгоритмов в процесс-ориентированном стиле // Вестник НГУ. Серия: Информационные технологии. 2013. Том 14, Выпуск 2. С. 44-54.

Подписано к печати 10.12.2013. Формат 60x84 1/16. Бумага офсетная. Печать офсетная. Усл. печ. л. 2,0. Уч.-изд. л. 1,84. Зак. № 1012-13. Тираж 120 экз. Издательство СО РАН 630090, г. Новосибирск, Морской пр., 2

Текст работы Зюбин, Владимир Евгеньевич, диссертация по теме Теоретические основы информатики

Федеральное государственное бюджетное учреждение науки «Институт автоматики и электрометрии» Сибирского отделения Российской академии наук

На правах рукописи

О5204М0665

Зюбин Владимир Евгеньевич

ПРОЦЕСС-ОРИЕНТИРОВАННАЯ ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ: МОДЕЛИ, ЯЗЫКИ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ДЛЯ СПЕЦИФИКАЦИИ АЛГОРИТМОВ УПРАВЛЕНИЯ СЛОЖНЫМИ ТЕХНИЧЕСКИМИ СИСТЕМАМИ

Специальность: 05.13.17 - «Теоретические основы информатики»

Диссертация на соискание ученой степени доктора технических наук

Научный консультант:

д-р техн. наук, проф. Родионов Алексей Сергеевич

Новосибирск - 2013

СОДЕРЖАНИЕ

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ..................................................................4

Глава 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 пакета

Lab VIEW.........................................................................................................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

Список литературы....................................................................................................269

Приложение 1. Синтаксис языка Рефлекс..............................................................283

Приложение 2. Таблица соответствия русскоязычного и англоязычного

варианта синтаксиса языка Рефлекс..........................................................287

Приложение 3. Информация о внедрении результатов........................................293

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность работы и степень ее разработанности. В настоящее время задачи обработки информации и управления технологическими процессами и производствами решаются исключительно с использованием цифровых систем. Базовый элемент промышленной автоматизации -специализированный вычислитель - программируемый логический контроллер (ПЛК), функционирующий в соответствии с заданным алгоритмом управления, который реализуется в виде компьютерной программы.

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

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

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

Такие объекты управления изначально предполагают: серьезные последствия выхода технологического процесса из-под контроля; высокую вероятность возникновения нештатных ситуаций (например, при отказе оборудования или из-за отсутствия теоретической модели объекта управления); высокую функциональную наполненность алгоритма управления и его неоднородность (например, алгоритм может одновременно обеспечивать логическое управление и регулирование); предсказуемость алгоритма управления и жесткие требования по времени реакции на внешнее событие.

Ошибка в программном обеспечении (ПО) системы управления сложным техническим объектом может обернуться не только серьезными

материальными потерями, но и привести к катастрофическим последствиям, в том числе, к гибели людей.

В качестве примера сложного объекта управления можно упомянуть ростовую установку для выращивания монокристаллического кремния методом Чохральского. Технологический процесс характеризуется: а) отсутствием теории, позволяющей в аналитическом виде описать процесс кристаллизации; б) многомерным фазовым пространством состояний объекта;

в) многокритериальностью показателя качества конечного продукта;

г) отсутствием масштабной инвариантности; д) сложным алгоритмом управления; е) вероятностью возникновения аварийных ситуаций и нерегламентных быстротекущих процессов, угрожающих жизни обслуживающего персонала.

В силу специфики предметной области разработка и реализация алгоритмов управления технологическими процессами представляет собой отдельную ветвь программирования.

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

К настоящему времени наиболее распространенное средство создания ПО систем управления - набор языков МЭК 61131-3. Однако каждый из языков МЭК 61131-3, взятый в отдельности, имеет выраженную ориентацию на узкую подобласть (логическое управление, регулирование, вычислительные задачи, рецептурные процессы), поэтому при создании сложных управляющих алгоритмов разработчики вынуждены прибегать к так называемому мультиязыковому программированию (описывать один алгоритм частично на одном, а частично на другом языке). Это обстоятельство вынуждает переходить на альтернативные продукты, например пакет Lab VIEW, а в некоторых случаях даже прибегать к языкам общего назначения Си или Си++.

Отечественные и зарубежные исследователи (Ф. Вагнер, А. Бласс, М. Самек, К. Кратер, А. Хубер, А. А. Шалыто и др.) указывают на высокий потенциал модели конечного автомата и обосновывают, в частности, ее

преимущества по сравнению с моделями, используемыми в языках МЭК 61131-3. Однако, несмотря на теоретические предпосылки, модель конечного автомата крайне редко используется на практике. Это объясняется:

а) недостаточным соответствием модели специфике промышленной автоматизации (например, в модели отсутствует механизм, позволяющий организовать совместное функционирование нескольких конечных автоматов, что затрудняет спецификацию естественной иерархии и параллелизма, которые характерны для реальных технологических процессов);

б) отсутствием ориентированных на промышленную автоматизацию формальных языков, реализующих модель конечного автомата;

в) специфическим понятийным аппаратом модели, который затрудняет ее восприятие и изучение специалистами в области информационных технологий.

Таким образом, в силу перечисленных проблем, с которыми сталкиваются разработчики при спецификации алгоритмов управления сложными промышленными объектами на уровне ПЛК, разработка теоретических подходов и лингвистических средств, ориентированных на создание ПО систем управления технологическими процессами является актуальной проблемой.

Объект исследования - программное обеспечение автоматизированных систем управления сложными техническими системами.

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

Цель работы - сокращение трудоемкости реализации и повышение качества ПО уровня ПЛК путем разработки теоретических основ, лингвистических и инструментальных средств создания алгоритмов управления технологическими процессами.

В соответствии с поставленной целью в работе решаются следующие основные задачи исследования:

1) проанализировать специфику алгоритмов управления технологическими процессами, недостатки существующих средств их программирования и сформулировать требования к формальным и лингвистическим средствам спецификации управляющих алгоритмов;

2) разработать понятийный аппарат и формальную математическую модель управляющего алгоритма;

3) определить варианты программной реализации разработанной формальной модели управляющего алгоритма;

4) на основе разработанной модели предложить лингвистические средства для спецификации алгоритма работы сложного технического объекта;

5) разработать и реализовать инструментальные средства генерации исполняемого кода по формальному описанию управляющего алгоритма;

6) предложить подход к отладке управляющих алгоритмов;

7) исследовать предложенные средства программирования на задачах создания автоматизированных систем управления.

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

На базе модифицированной модели конечного автомата можно создать унифицированные понятийный аппарат и лингвистические средства программирования алгоритмов управления широкого класса. Создаваемая понятийно-инструментальная база будет иметь практическую ценность, если:

а) модифицированная модель будет отражать специфику задач автоматизации;

б) понятийный аппарат модифицированной модели будет соответствовать текущим тенденциям в области информационных технологий.

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

Принципиальный вклад в развитие технологии процесс-ориентированного программирования вносят следующие научные результаты, полученные автором:

1. Для алгоритма управления объектом автоматизации построена оригинальная математическая модель гиперпроцесса, отнимающаяся от существующих тем, что представляет алгоритм управления в виде

совокупности циклически активизируемых параллельных процессов, которые задаются набором альтернативных функций-состояний (активных и пассивных), имеют индивидуальный счетчик времени, сбрасываемый при смене текущей функции-состояния, и взаимодействуют, в частности, через операторы контроля функций-состояний.

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

3. Создан новый формальный язык программирования четвертого поколения - Си-подобный процесс-ориентированный язык Рефлекс, предназначенный для спецификации алгоритмов работы сложных объектов автоматизации. Основные отличительные особенности языка Рефлекс: а) средства описания входных/выходных переменных, с указанием их привязки к физическим портам ввода/вывода и области видимости; б) средства описания процессов и активных функций-состояний; в) средства структуризации программы (операторы запуска процессов, операторы останова, средства контроля текущей функции-состояния и средства генерации временных событий).

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

5. Разработаны оригинальный метод статической балансировки вычислительной нагрузки программы, описанной на процесс-ориентированном языке и реализуемой в рамках кооперативной многопоточности, на основе учета данных о ресурсоемкости функций-состояний и времени реакции процессов на внешнее событие, а также субоптимальный алгоритм его реализации, отличающийся низкой вычислительной сложностью при удовлетворительном качестве балансировки: а) процессы с одинаковыми временами реакции на внешнее событие объединяются в группы; б) для каждой из групп с временем реакции, превышающим значение периода активизации гиперпроцесса, определяется

базовый делитель частоты активизации Z); в) для каждого из процессов группы затем определяется индивидуальное смещение активизации О е {0, 1, ... ,D- 1}.

6. Определены и классифицированы варианты интеграции процесс-ориентированных алгоритмических структур в программы LabVIEW через dll-механизм, механизм Formula Node и интерпретатор Python, а также вариант реализации гиперпроцесса средствами языка G с помощью: а) тактированного цикла по условию для организации циклической активизации с заданным периодом; б) структур выбора для реализации функций-состояний процесса с ловушкой для диагностики неспецифицир