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

кандидата технических наук
Зюбин, Владимир Евгеньевич
город
Новосибирск
год
1998
специальность ВАК РФ
05.13.16
Диссертация по информатике, вычислительной технике и управлению на тему «Средство программирования алгоритмов работы микроконтроллеров»

Автореферат диссертации по теме "Средство программирования алгоритмов работы микроконтроллеров"

РГб од

! 7 ОНТ №8

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

ЗЮБИН Владимир Евгеньевич

СРЕДСТВО ПРОГРАММИРОВАНИЯ АЛГОРИТМОВ РАБОТЫ МИКРОКОНТРОЛЛЕРОВ

Специальность: 05.13.16 "Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях"

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

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

Работа выполнена в Институте автоматики и электрометрии СО РАН

Научный руководитель:

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

Заслуженный деятель науки чл.-корр. АН Молдавии, доктор технических наук, профессор Клисгорин И .Ф.

доктор технических наук Глинский Б.М.

кандидат технических наук Константинов В.И.

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

Новосибирский Государственный Технический Университет

Защита состоится " 20 " 10 1998 г. в 1 \ часов на заседании диссертационного совета К 003.06.01 в Институте автоматики и электрометрии СО РАН по адресу:

630090, г. Новосибирск, пр. ак. Коптюга, 1

С диссертацией можно ознакомиться в библиотеке Института автоматики и электрометрии СО РАН.

Автореферат разослан ". (7- оз 1998 г.

Ученый секретарь диссертационного совета кандидат физико-математических наук - Ильичев Л.В.

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

Возрастающая сложность технических систем и проблема их автоматизации диктуют необходимость создания принципиально новых методик троектирования. Ключевым требованием к таким методикам является требование надежности создаваемого программного обеспечепия(ПО). В первую очередь это сасается класса задач автоматизации сложных научно-технических экспериментов, :вязанных с "критическими" производствами на предприятиях металлургической и шмическои промышленности, атомных электростанциях, предприятиях космической индустрии. Исследования, проводимые в таких условиях, изначально тредполагают: во-первых, высокую вероятность выхода эксперимента из-под <онтроля, например, из-за возникновения непредвиденных ситуаций или отсутствия теоретической модели объекта управления; во-вторых, высокую функциональную наполненность алгоритма управления; в-трегьих, нредсказуемость и жесткие требования по времени реакции на внешнее событие; в-1етвертых, изменения алгоритма управления по мере получения новой информации ю объекте. Этот класс задач включает в себя и проблему отработки новых технологий, и проблему исследования объекта в граничных по ресурсам тдежности областях, и проблему проведения эксперимента в условиях, юключающих непосредственное присутствие испытателя. В этих случаях юзннкповенне ошибки не только влечет неприемлемые материальные и финансовые потери, но зачастую имеет катастрофические последствия - вплоть до ¡еловечеекпх жертв. В качестве при мера такого эксперимента можно привести 1роблему автоматизации процесса выращивания монокристаллического кремния методом Чохральского. Условия исследовательских работ характеризуется: а) ¡тсутствнем теории, позволяющей в аналитическом виде описать процесс сристаллизации; б) многомерным фазовым пространством состояний объекта; в) ¡ложным алгоритмом управления; г) вероятностью возникновения аварийных ситуаций и нерегламентных быстротекущих процессов, угрожающих жизни

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

Работы по данной проблематике зарубежных и отечественных специалистов часто приводят к появлению узкоспециализированных средств, ориентированных на решение ограниченного крута задач вплоть до разработок, предназначенных для решения конкретной задачи. Так, в частности, для написаш; ПО воздушно-космического самолета Space Shuttle был создан уникальный язык высокого уровня - HAL/S. Однако, в рамках концепции "открытых технологий" крайне желательным является создание методики, и обеспечивающей надежностные требования к ПО, и ориентированной на широкий крут пользователей.

К настоящему времени наиболее известным решением этой проблемы является набор языков международного стандарта IEC 1131-3. Представляется очень важным ответ на вопрос, насколько перспективно предлагаемое решение. Аналитические обзоры на эту тему показывают, что подход имеет ряд принципиальных недостатков как на системном, так и па узкоспецифическом уровне, что снижает эффективность его использования в качестве средства проектирования сложных объектов автоматизации. Эти недостатки включают: отсутствие единой методики создания программ, неэффективность способа организация параллелизма, низкие структурирующие возможности и т.п. [2]. Однако следует отметить, что в определенных случаях, при относительно просты; алгоритмах управления, применение набора регламентируемых IEC 1131-3 языко] может быть достаточно эффективно.

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

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

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

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

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

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

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

4) определить информационные и лингвистические средства реализации методики.

5) реализовать ПО, осуществляющее предложенную методику.

Научная новизна работы заключается в следующем:

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

2) Предложен входной символьный язык описания алгоритмов работы объектов автоматизации.

3) Разработан конечный вид эквивалентного преобразования входного выка, обеспечивающий программную реализацию предложенной модели при !Ыполненне аппаратно-зависимых требований по надежности.

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

Реализация и практическая ценность работы. На основе математического, шнгвистического и информационного обеспечения реализовано ПО федложенного подхода. Приоритет закреплен свидетельством об офиц. )егистрации [8].

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

Работа выполнялась в рамках хоздоговоров с НПО "Север" г. Новосибирск (договоры "Сплайн" и "Сплайн-2") и ГП "Красноярский машиностроительный завод" г. Красноярск (договоры "ЦУК" и "Гефест"). Результаты использования работы отражены в Приложении диссертации.

Работа выполнялась также в рамках российской научно-технической программы "Кремний России" (грант Миннауки N4917ф) в 1995-1996 гг.

Основные положения диссертации, выносимые на защиту:

1) Математическая модель алгоритма работы объекта автоматизации в виде множества слабосвязанных Z-aвтoмaтoв.

2) Методы построения входного языка.

3) Алгоритмы решения практических задач автоматизации экспериментальных работ при отработке новых наукоемких технологий.

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

Апробация работы.

Результаты диссертационной работы докладывались и обсуждались на годичных научных сессиях ИАиЭ (г. Новосибирск, 1993, 1996 гг.), Пятом и Шесто международных семинарах по распределенной обработке информации (г. Новосибирск, 1995, 1998 гг.), Третьей международной научно-технической конференции "Микропроцессорные системы автоматики" (г. Новосибирск, 1996 г Третьем сибирском конгрессе по прикладной и индустриальной математике (г. Новосибирск, 1998г.).

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

Структура н объем диссертации. Диссертация состоит из введения, пяти глав, заключения и приложения. Объем работы 98 страниц основного текста, содержит 12 рисунков, 2 таблицы, 5 блок-схем логических. Список литературы содержит 60 наименований.

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

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

ПЕРВАЯ ГЛАВА посвящена обзору и анализу существующих методов и средств построения алгоритмов функционирования объектов автоматизации.

Для любой языковой системы имеется предел обнаруживаемых ею эшнбок. Например, если распознаваемость семантически ошибочных языковых сонструкцнй может быть повышена за счет типизации переменных, то ошибки в югическом построении программы не поддаются автоматическому эбнаружешио. При этом, чем более сложным является объект автоматизации, тем 5олее вероятно возникновение логических ошибок. Обычно в качестве основных факторов, повышающих надежность создаваемой программы, называются такие :арактеристнки как удобочитаемость и простота. А в качестве средств их достижения - степень типизации переменных, вид языковых конструкций и способ [юрмнровании листинга программы. Перечисленные факторы могут быть учтены |а этапе определения синтаксиса языка [5], однако проблема формирования югическон структуры алгоритма требует отдельного рассмотрения.

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

Человеко-завнсимыс аспекты программирования концентрируются вокруг еформализуемых и плохо формализуемых вопросов структуризации ПО, его

оптимизации и простоты, т.е. связаны с проблемами методологии моделирования алгоритмов данного класса задач. При этом, анализ работ B.JI. Кожары, Ю.А. Воронина, С.С. Розовой, Г. Миллера (G. Miller), А. Эриксона(А. Ericsson), В. Кинча(\У. Kintsch), Г.П. Щедровицкого и др., посвященных неформалнзуемым аспектам влияния человеческого фактора па конечное представление моделируемого объекта, позволяют уверенно говорить о том, что объект автоматизации характеризуются следующими уникальными отличительными свойствами, закладываемыми еще на этапе планирования эксперимента. Это:

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

- функциональная природа структурных составляющих алгоритма;

- параллелизм операций;

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

Эти характеристики однозначно обуславливают методику, в которой процесс разработки ПО сложного объекта автоматизации рассматривается как отражение процесса проектирования объекта автоматизации как такового. Другими словами, - как адекватное отражение целевой функции, которую преследовал проектировщик при создании объекта, - функции, которая с необходимостью уже структурирована, имеег процессуальную природу, предполагает параллелизм операций и на верхних иерархических уровнях отвязан от средств реализации^ 1].

Исследования языковых средств проектирования ПО, в частности, финансированные Nuclear Regulatory Commission(ClIIA), позволяют определить базовые правила и требования к построению надежного ПО сложных объектов автоматизации. С учетом вышесказанного, факторы, влияющие на надежностные характеристики ПО, можно достаточно четко разделить на две группы: а) группа факторов, связанная с неформализуемыми аспектами процесса проектирования (недопустимость смешаио-языкового программирования, четкая структуризация, простота, информационная наполненность исходного текста, и т.п.), и б) группа факторов, связанная с аппаратно-программной реализацией алгоритма (минимизация прерываний, недопустимость рекурсивных вызовов функций и

динамических операций с ОЗУ, нежелательность использования многозадачной модели параллелизма и "скрытых" (поставляемых без исходных текстов) процедур, и т.п.). Эти критерии, примененные к набору языков международного стандарта ШС 1131-3, а также к известным примерам его реализации (средство 1ЯаОКАР) выявляют целый ряд принципиальных недостатков. Эти недостатки включают: отсутствие единой методики создания программ, допустимость смешанно-языкового программирования, неэффективность способа организация параллелизма, низкие структурирующие возможности, проблемы переносимости, недостаточная гибкость выразительных средств, и отсутствие полноценной идентификационной развязки временного течения алгоритма (тог факт, что в качестве ссылочных идентификаторов состояний используются числа, позволяет характеризовать присущий 1ЕС 1131-3 средствам механизм информационной развязки как неудовлетворительный)^]. Однако следует отмстить, что в определенных случаях, при относительно простых алгоритмах управления, применение набора регламентируемых 1ЕС 1131-3 языков может быть достаточно эффективно.

На основании рассмотренного к разрабатываемому языку были предъявлены следующие требования:

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

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

3) Способ описания алгоритма должен предоставлять пользователю возможность идентификационной развязки информационной наполненности алгоритма на уровнях:

- аппаратуры (физических портов ввода/пывода);

- временного течения алгоритма (памяти алгоритма);

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

т.п.);

- 1 О -

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

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

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

6) В диагностическом сообщении транслятор должен точно указывать причину возникновения ошибки.

7) Синтаксис языка должен допускать формализованное описание, например, в форме Бскуса-Наура.

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

Математической моделью дискретного устройства является абстрактный автомат, который задается множеством из шести элементов:

А = {8, Х,У, 5,)», в!},

где Б = {51,..., Яш,..., км} - множество состояний (алфавит состояний);

X = {XI,..., хг,..., хр} - множество входных сигналов (входной алфавит);

У = {у1,..., уг,..., уо} - множество выходных сигналов (выходной алфавит):

8 - функция переходов, реализующая отображение множества 1)5 С 8 X X в Б = 8(Бт, Х^, € Б);

X - функция выходов реализующая отображение множества В>. с 3 х X на У (у = /.(Бш, хг));

31 е Б - начальное состояние автомата.

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

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

На иллюстративном примере простого объекта строится алгоритм в виде графа автомата Мура.

При этом аппаратная реализация способа формирования входного/выходного алфавита и вид операций над ними однозначно определяют порождающие правила, которые в случае бинарной логики описываются битовыми составляющими физических портов ввода/вывода или (на уровне программы) логическими переменными. Таким образом введение в математическую модель автомага переменных (множества входных переменных I = {¡1,. ., ¡ь}, формирующего входной алфавит X, и множества выходных переменных О = {01,..., ом}, формирующего выходной алфавит У), позволяет достичь существенного сжатия информационной наполненности алгоритма.

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

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

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

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

4. Z-автомат допускает использование пересекающихся множеств входных и выходных переменных, т.е. процесс имеет доступ к переменным, принадлежащим другому процессу.

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

H = {Z, zi},r%eZ = {zi,..., Zk,..., zk} - множество Z-автоматов Н-автомата, zi - инициализирующий Z-автомат Н-автамата.

В свою очередь, zi¡ - это Z-автомат, который задается множеством из восьми элементов: Zk = {Sk, Ik, Xv-, O, Yk, S\ S'Snark},

где Sk = {ski,..., s^m,..., skM, s^ns, skes, s^pause} - множество состояний (алфавит состояний);

Ik = {iki,-.., iki,..., i-4} - множество входных переменных, - переменных, образующих входных алфавит Хк;

Ok = {okiоЧ),..., - множество выходных переменных, образующих выходной алфавит Yk;

ñk - функция переходов, реализующая отображение множества Dks с Sk х Xk в Sk (sis = ЩвКп, хЧ), е Sk);

Кк - функция выходов реализующая отображение множества 1>л с Sk х Xk на Yk (vk = }.k(skra, xkí));

S'Snark = {ski, skns, skes, s'^pausc}, S^ark e Sk - множество выделенных состояний, где ski - начальное состояние k-ro Z-автомата, s14!« - состояние нормального останова, skes - состояние останова по ошибке, skpause - состояние пауза.

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

1. Описание входных и выходных портов с указанием:

а) имени порта;

б) адреса порта;

в) размера порта;

г) типа порта (вход или выход).

2. Описание процессов:

2.1. Присваивание процессу имени;

2.2. Описание переменных, используемых в процессе, с указанием:

а) имени переменной;

б) имени порта, которому эта переменная принадлежит;

в) номера бита внутри указанного порта.

2.3. Описание состоянии Z-aвтoмaтa с указанием:

а) имени состояния;

б) выходного сигнала и(или) изменения состояния друтого

процесса;

в) переходов в другие состояния в зависимости от входного

сигнала или состояний других процессов [2].

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

1) Алгоритм функционирование устройства разбивается на множество слабозависимых процессов. Это разбиение производится из функциональных соображений, определяемых на этапе проектирования экспериментальных работ.

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

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

В ТРЕТЬЕЙ ГЛАВЕ конкретизируется лексические, синтаксические и семантические правила разработанного языка описания работы дискретных устройств автоматики[5]. В подразделах, посвященным отдельным компонентам, приводятся правила описания этих компонентов - правила сообщение

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

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

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

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

В ЧЕТВЕРТОЙ ГЛАВЕ определяется общий вид эквивалентной С-программы и разрабатывается структурная схема транслятора; описывается работа реализованного транслятора для разработанного языка.

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

Эквивалентное отображение обеспечивает:

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

б) отсутствие рекурсивных вызовов функции;

в) жесткий контроль типов переменных;

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

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

е) отсутствие динамических операций с ОЗУ;

ж) многопоточную (multithread) модель параллелизма;

з) выделение и концентрацию кода, потенциально опасного с точки зрения надежности.

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

ПЯТАЯ ГЛАВА посвящена результатам применения предложенного языка

- Средства Программирования Алгоритмов Работы Микроконтроллеров(СПАРМ)

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

Исследование применимости языка СГ1АРМ проводилось на задаче автоматизации установки для выращивания монокристаллического кремния (УВМК) диаметром до 250 мм методом вытягивания из расплава (метод Чохральского). Эта задача, решаемая в рамках гос.программы "Кремний России" совместно с Красноярским машиностроительным заводом, предъявляет к управляющему алгоритму комплекс требовании, приближенный к полному набору требований АСУ ТП, а объект управления предполагает проведение серии разнообразных экспериментальных работ, т.е. относится к сложным объектам автоматизации [4].

Этап адаптации языка СПАРМ для системы на базе микроконтроллера i80C196NT с системной магистралью Multibus подтвердил декларированные при разработке свойства переносимости.

На разрабатываемом языке был реализован алгоритм работы УВМК, исполняющийся в микроконтроллерном ядре системы управления. Алгоритм работы УВМК имеет 6 уровней иерархии (без учета ветвей обработки аварийных ситуаций) и представлен в виде комбинации более 300 слабосвязанных процессов.

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

около 100 мс, для 10% - 10 мс. Написанные отдельно коммуникационно-интерфейсные функции были реализованы на языке Си и встроены в программу штатными средствами языка [9].

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

1. Возможность гибкого изменения нормального течения алгоритма, обусловленная способом представления алгоритма работы в виде множества слабосвязанных Z-aвтoмaтoв, позволяет:

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

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

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

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

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

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

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

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

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

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

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

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

3) Реализованы алгоритмы:

- разбора синтаксиса и семантики входной языковой последов ательносп i,

- эквивалентного преобразования входного языка в язык Си;

4) Подтверждена эффективность разработанной методики апробацией на реальных практических задачах.

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

1. Зюбни В.Е., Карлсон H.H. Язык СПАРМ для программирования алгоритмов работы микроконтроллеров // Годичная научная сессня-93: Тез.докладов. - Новосибирск: ИАиЭ СО РАН, 1994

2. Зюбии В.Е., Средство программирования алгоритмов работы микроконтроллеров - СПАРМ // Распределенная обработка информации: Тр./Пятый международный семинар. - Новосибирск, 1995.

3. Булавский Д.В., Зюбин В.Е., Криворучко В.О. Один из подходов при создании распределенных микропроцессорных cucicm управления

технологнческтш процессами. // Трегья международная научно-техническая конференция "Микропроцессорные системы автоматики": Тез.докладов. -Новосибирск: НГТУ, 1996.

4. Автоматизированная система управления установкой для выращивания монокристаллов кремния. // Булавский Д.В., Зюбин В.Е., Карлсон H.H., Криворучко В.О., Миронов В.В. - Автометрия, N2, 1996.

5. Зюбин В.Е., Язык СПАРМ - средство программирования микроконтроллеров - Автометрия, N 2, 1996.

6. Булавский Д.В., Зюбин В.В., Криворучко В О. Универсальное микрокотроллерноеядро для создания распределенной микропроцессорных систем управления технологическими процессами // Годичная научная сессия-96: Тез.докладов. - Новосибирск: ИАиЭ СО РАН, 1996

7. Зюбин В.Е. Опыт применения языка параллельного программирования СПАРМ при автоматизации сложных промышленных объектов - // Годичная научная сессия-96: Тез.докладов. - Новосибирск: ИАиЭ СО РАН, 1996

8. Свидетельство об офиц.регисграцин программы для ЭВМ N970557. Средство программирования алгоритмов работы микроконтроллеров (СПАРМ)/ Зюбин В.Е.//1997

9. Зюбин В.Е. Проектирование алгоритмов работы микроконтроллеров -Приборы и системы управления, N 1, 1998

!0. Зюбин В.Е., Исследование условий применимости языка параллельногс программирования СПАРМ для задач построения надежных управляющих программ //Распределеннаяобработка информации: Тр./Шестой международный семинар. - Новосибирск, 1998.

11, Зюбин В.Е., Использование языка параллельного программирования СПАРМ в задачах построения надежных управляющих программ // Третий сибирский конгресс по прикладной и индустриальной математнке(ИНПРИМ-98): Тез.докладов. - Новосибирск: Институт Математики СО РАН, 1998.

Текст работы Зюбин, Владимир Евгеньевич, диссертация по теме Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)

РОСССИЙСКАЯ АКАДЕМИЯ НАУК СИБИРСКОЕ ОТДЕЛЕНИЕ ИНСТИТУТ АВТОМАТИКИ И ЭЛЕКТРОМЕТРИИ

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

ЗЮБИН Владимир Евгеньевич

СРЕДСТВО ПРОГРАММИРОВАНИЯ АЛГОРИТМОВ РАБОТЫ МИКРОКОНТРОЛЛЕРОВ

05.13.16 - применение вычислительной техники, математического моделирования и математических методов в научных исследованиях

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

Научный руководитель: Заслуженный деятель науки и

член-корреспондент АН Молдавии, доктор технических наук, профессор И. Ф. Клисторин

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

ОГЛАВЛЕНИЕ

Лист

ВВЕДЕНИЕ.....................................................4

ГЛАВА 1. ОБЗОР И АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ПЛК..........8

1.1 Международный стандарт 1ЕС 1131-3 ......................9

1.2 Человеческий фактор и методологические аспекты построения модели автоматизации ...................................... 18

1.3 Факторы, влияющие на надежностные характеристики программы.................................................21

ГЛАВА 2 . МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ОБЪЕКТА АВТОМАТИЗАЦИИ........25

2.1 Основные положения теории конечных автоматов .......... 25

2.2 Создание описания объекта автоматизации на базе теории конечных автоматов ........................................ 26

2.3 Предлагаемый способ описания .......................... 32

ГЛАВА 3. СИНТАКСИС И СЕМАНТИКА ЯЗЫКА........................42

3.1 Основные компоненты языка ............................. 42

3.2 Формат исходной программы .............................45

3.3 Описания компонентов языка ............................45

3.4 Текст программы для иллюстративного примера ...........58

ГЛАВА 4 . СТРУКТУРА ТРАНСЛЯТОРА И ЕГО РЕАЛИЗАЦИЯ.............61

4.1 Эквивалентная программа на языке Си ................... 63

4.2 Синтаксический анализатор ............................. 69

4.3 Семантический анализатор и генерация выходных файлов ..71

4.4 Реализация транслятора ................................ 72

ГЛАВА 5. ПОСТРОЕНИЕ УПРАВЛЯЮЩИХ ПРОГРАММ ДЛЯ СЛОЖНЫХ ОБЪЕКТОВ

АВТОМАТИЗАЦИИ..............................................84

5.1 Основные параметры объекта автоматизации .............. 85

5.2 Требования к системе управления ....................... 86

5.3 Аппаратура системы управления ......................... 88

5.4 ПО системы управления.................................92

ЗАКЛЮЧЕНИЕ..................................................98

ЛИТЕРАТУРА.................................................100

ПРИЛОЖЕНИЕ 1. Список резервированных слов .................. 105

ПРИЛОЖЕНИЕ 2. Приоритеты операций ..........................107

ПРИЛОЖЕНИЕ 3. Синтаксический граф СПАРМ....................108

ПРИЛОЖЕНИЕ 4. Тексты выходных файлов для иллюстративного

примера...................................................112

ПРИЛОЖЕНИЕ 5. Информация о внедрении полученных результатов...............................................120

ВВЕДЕНИЕ

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

Возрастающая сложность технических систем и проблема их автоматизации диктуют необходимость создания принципиально новых методик проектирования. Ключевым требованием к таким методикам является требование надежности создаваемого программного обеспечения(ПО). В первую очередь это касается класса задач автоматизации сложных научно-технических экспериментов, связанных с "критическими" производствами на предприятиях металлургической и химической промышленности, атомных электростанциях, предприятиях космической индустрии. Исследования, проводимые в таких условиях, изначально предполагают: во-первых, высокую вероятность выхода эксперимента из-под контроля, например, из-за возникновения непредвиденных ситуаций или отсутствия теоретической модели объекта управления; во-вторых, высокую функциональную наполненность алгоритма управления; в-третьих, предсказуемость и жесткие требования по времени реакции на внешнее событие; в-четвертых, изменения алгоритма управления по мере получения новой информации об объекте. Этот класс задач включает в себя и проблему отработки новых технологий, и проблему исследования объекта в граничных по ресурсам надежности областях, и проблему проведения эксперимента в условиях, исключающих непосредственное присутствие испытателя. В этих случаях возникновение ошибки не только влечет неприемлемые материальные и финансовые потери, но зачастую имеет катастрофические последствия - вплоть до человеческих жертв. В качестве примера такого эксперимента можно привести проблему автоматизации процесса выращивания монокристаллического кремния методом Чохральского. Условия исследовательских работ характеризуется: а) отсутствием теории, позволяющей в

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

Работы по данной проблематике зарубежных и отечественных специалистов часто приводят к появлению узкоспециализированных средств, ориентированных на решение ограниченного круга задач вплоть до разработок, предназначенных для решения конкретной задачи. Так, в частности, для написания программного обеспечения воздушно-космического самолета Space Shuttle был создан уникальный язык высокого уровня - HAL/S[1]. Однако, в рамках концепции "открытых технологий" крайне желательным является создание методологии, и обеспечивающей надежностные требования к программному обеспечению, и ориентированной на широкий круг пользователей.

К настоящему времени наиболее известным решением этой проблемы является набор языков международного стандарта IEC 11313. Представляется очень важным ответ на вопрос, насколько перспективно предлагаемое решение. Аналитические обзоры на эту тему показывают, что подход имеет ряд принципиальных недостатков как на системном, так и на узкоспецифическом уровне, что снижает эффективность его использования в качестве средства проектирования сложных объектов автоматизации. Эти недостатки, подробно рассмотренные в главе 1, включают: отсутствие единой методики создания программ, неэффективность способа организация параллелизма, низкие структурирующие возможности и т.п. Однако следует отметить, что в определенных случаях, при относительно простых алгоритмах управления, применение набора регламентируемых IEC 1131-3 языков может быть достаточно эффективно.

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

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

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

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

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

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

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

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

4) определить информационные и лингвистические средства реализации методики.

5) реализовать ПО, осуществляющее предложенную методику.

Научная новизна работы заключается в следующем:

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

2) Предложен входной символьный язык описания алгоритмов работы объектов автоматизации.

3) Разработан конечный вид эквивалентного преобразования входного языка, обеспечивающий выполнение аппаратно-зависимых требований по надежности.

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

Основные положения диссертации, выносимые на защиту:

1) Математическая модель алгоритма работы объекта автоматизации в виде множества слабосвязанных г-автоматов.

2) Методы построения входного языка.

3) Алгоритмы решения практических задач автоматизации экспериментальных работ при отработке новых наукоемких технологий.

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

ГЛАВА 1. ОБЗОР И АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ПЛК

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

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

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

Положение изменилось в середине 7 0-х годов с появлением микро-ЭВМ. Микро-ЭВМ имеют те же преимущества, что и управляющие ЭВМ, в отношении легкости программирования и оперативного изменения управляющих программ, однако их дешевизна обусловливает их широкое применение.

Широкое распространение и разнообразие объектов, поддающихся автоматизации, неизбежно повлекло за собой создание универсального устройства, занимающегося логическим управлением (УЛУ), устройства, не зависящего от конкретного объекта управления. Таким устройством стал программируемый логический контроллер (ПЛК) -фактически, ЭВМ, выполняющая элементарные логические и арифметические операции и имеющая доступ к портам ввода-вывода.

Проблема создания языка для ПЛК привлекает внимание специалистов, однако многочисленные языки, разработанные в теории автоматов (язык регулярных функций, таблицы включения, матрицы перехода, язык временных функций, язык релейно-контактных схем и т.д. [2, 3, 4, 5, б, 7]), оказались малопригодными для описания работы сложных дискретных устройств. Общим недостатком разработанных языков является то, что на них практически невозможно описать работу объектов большой размерности, в частности, объектов, предполагающих параллелизм исполнения

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

Определенный интерес представляет язык ЯРУС [8]. Предложенный в языке ЯРУС способ представления алгоритма работы в виде совокупности параллельно исполняемых автоматов позволил существенно увеличить размерность описываемых объектов. К сожалению, избыточно-сложный синтаксис, отсутствие полноценных идентификаторов и арифметических операций, отдельные особенности реализации негативным образом сказались на его распространении.

1.1 Международный стандарт 1ЕС 1131-3

Одна из последних попыток решить проблему программирования микроконтроллеров - набор языков международного стандарта 1ЕС 1131-3[9], опубликованный в 1993 году Международной Электротехнической Комиссией (МЭК). Этот международный стандарт входит в группу 1ЕС 1131 стандартов, которая касается различных аспектов использования ПЛК. Назначение 1ЕС 1131-3 - стандартизация существующих языков ПЛК [10], а, вернее, базовая платформа для такой работы в национальных комитетах стандартизации.

Специалисты в области автоматизации отмечают прогрессивность стандарта: несмотря на небольшое число исходных концепций языков ПЛК, количество разных вариантов реализации этих идей неоправданно велико. Стандарт 1ЕС 1131-3 показался настолько актуален, что опережая процесс адаптации стандарта в национальных комитетах стандартизации функции его поддержки и внедрение взяла на себя независимая организация РЬСОреп [11, 12], состоящая из производителей и пользователей ПО, ориентированного на 1ЕС 1131-3. В результате деятельности РЬСОреп на рынке ПО появилась серия сертифицированных средств программирования ПЛК, - средств, которые достаточно широко внедряются в промышленности [13]. На первый взгляд это воспринимается как очередной прогрессивный шаг в рамках концепции "открытых систем". Однако, проведенный ниже анализ сложившейся ситуации выявляет некоторые аспекты, заставляющие усомниться в универсальности такого ПО.

1.1.1 Языки стандарта IEC 1131-3

Стандарт IEC 1131-3 описывает синтаксис и семантику пяти языков программирования ПЛК [11, 14, 15, 16, 17, 18], - языков, ставших широко известными за более чем 30-летнюю историю их применения в области автоматизации промышленных объектов :

1. SFC (Sequential Function Chart) - графический язык, используемый для описания алгоритма в виде набора связанных пар: шаг (step) и переход (transition). Шаг представляет собой набор операций над переменными. Переход - набор логических условных выражений, определяющий передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает логические блок-схемы алгоритмов. SFC имеет возможность распараллеливания алгоритма. Однако, SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта. Происхождение: Grafcet (Telemechanique -Groupe Schneider)[11, 14, 16, 18].

2. LD (Ladder Diagram) - графический язык программирования являющийся стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде обычных реле, которые широко применялись в области автоматизации в 60-х годах. Ввиду своих ограниченных возможностей язык дополнен привнесенными средствами: таймерами, счетчиками и т.п. Происхождение: различные варианты языка релейно-контактных схем (Allen-Bradley, AEG Schneider Automation, GE-Fanuc, Siemens) [14, 17, 18] .

3. FBD (Functional Block Diagram) - графический язык по базовому принципу построения близкий к LD. Вместо реле в этом языке используются функциональные блоки, по внешнему виду напоминающие микросхемы. Алгоритм работы некоторого устройства на этом языке выглядит как функциональная схема электронного устройства: элементы типа "логическое И", "логическое ИЛИ" и т.п., соединенные линиями. Корни языка выяснить очень сложно, однако большинство специалистов сходятся во мнении, что это обычный перенос идей языка релейно-контактных схем на другую элементную базу [14, 16, 18].

4. ST (Structured Text) - текстовый высокоуровневый язык общего назначения. Синтаксис ST ориентирован на язык Паскаль. Самостоятельного значения не имеет: используется только совместно с SFC. Происхождение: Grafcet (Telemechanique - Groupe Schneider)[14, 18].

5. IL (Instruction List) - текстовый язык низкого уровня. Выглядит как язык Ассемблера, что объясняется его происхождением: для некоторых моделей ПЛК фирмы Siemens является языком Ассемблера. В рамках стандарта IEC 1131-3 к архитектуре конкретного процессора не привязан. Самостоятельного значения не имеет: используется только совместно с SFC. Происхождение - STEP 5 (Siemens) [14, 17, 18] .

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

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

1.1.2 Вопросы реализации стандарта IEC 1131-3

Примерно �