WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

загрузка...
   Добро пожаловать!

Pages:     | 1 || 3 | 4 |

К О Н Т Р О Л И Р У Е М Ы Й О Б Ъ Е К Т Форми- Датчик Датчик рователь Другие сигнала каналы Форми- Форми- рователь рователь сигнала сигнала У В Х Аналоговый мультиплексор ЦАП А Ц П У В Х Цифровой А Ц П Схема управления мультиплексор Цифровой Управляющие Цифровой вывод дан- сигналы от ВС вывод данных ных к ВС к ВС В Ы Ч И С ЛИ Т Е Л Ь Н А Я Устройства С И С Т Е М А (ВС) отображения Рис. 1. Схема использования ЭВМ для управления физическими процессами. Потоки информации и аппаратные средства типичной многоканальной системы сбора данных и управления представляются на различных устройствах отображения (дисплеях и т.п.) и, кроме того, если необходимо, вырабатываются управляющие воздействия, которые после соответствующих преобразований поступают к объекту, управляя его функционированием. АЦП – аналогово-цифровой преобразователь. ЦАП – цифро-аналоговый преобразователь. УВХ – устройства выборки-хранения аналогового сигнала.

Первая глава диссертации посвящается общему описанию САПР систем реального времени «СРВ-Конструктор», как основного проектируемого инструментального средства. Описывается состав и структура САПР ВСРВ в целом.

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

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

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

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

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

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

1) проблема синхронизации параллельных процессов в ВСРВ;

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

3) проблема завершения тех или иных вычислений к определённым моментам времени или к моментам определённых событий в системе, указанных пользователем в РВ-программе (соблюдение директивных сроков);

4) проблема сохранения и обновления необходимых наборов поколений данных, как поступающих в ВСРВ извне, так и являющихся результатами вычислений с помощью РВ-программы;

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

Решение этих задач обеспечивает надёжность программного обеспечения ВСРВ.

Разработанная система наиболее эффективна при составлении программ для детерминированных ВСРВ с циклическим поступлением инфор мации от контролируемого объекта. Детерминированность означает здесь следующее:

1) входная информация поступает на входные регистры системы с известным периодом Т, т.е. в моменты времени 0,Т, 2Т,... ;

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

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

4) для каждого программного модуля известна оценка времени его исполнения, а также потребности в других ресурсах системы;

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

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

При разработке САПР ВСРВ для IBM PC были реализованы 1) язык реального времени;

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

3) управляющий монитор, контролирующий вычисления в режиме реального времени.

Во второй главе приводится подробное описание входного языка реального времени для ВСРВ «СРВ-Конструктор».

Основным простейшим объектом языка является модуль – обычный для многих языков программирования оператор процедуры. Все процедуры, участвующие в образовании модулей, составляются заранее и помещаются в системную библиотеку процедур вместе с необходимыми спецификациями формальных параметров. Имеется один специальный тип модуля, введённый для облегчения составления РВ программ – это РВ модуль. Он по описанию и смыслу ничем не отличается от обычного модуля. Но кроме описания он ещё имеет тело, внутри которого указаны вызовы других, в том числе и РВ модулей. Для РВ модулей имеется ограничение – они не должны содержать рекурсивных вызовов. Фактические параметры любого модуля могут быть РВ-параметрами, константами, простыми переменными, идентификаторами с индексами и т.д. РВ-параметры имеют следующий вид:

<РВ-параметр> (<имя РВ-параметра>; <поставщик>;

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

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

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

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

<цикл РВ> <имя цикла РВ>, <период>, <фаза>, <тело цикла РВ> Компонента <период> задаёт интервал времени, через который будет повторяться выполнение модулей, указанных в теле цикла РВ. Задание периода аналогично заданию времени для РВ-параметра. Если в программе реального времени указано несколько источников данных или в качестве базового периода берётся период другого цикла РВ, то требуется явное указание его имени перед значением периода. Кроме этого период может быть задан в абсолютных величинах времени: секундах, миллисекундах. Параметр <фаза> указывает сдвиг начала работы РВ-цикла относительно начала работы программы. Правила задания параметра <фаза> такие же, как и для <периода>.

Фаза не может быть задана больше периода, указанного для данного РВцикла. Если фаза явно не указана, то она равна нулю. <Тело цикла РВ> – это список модулей, РВ-параметры которых могут поставляться из блоков входной информации, из модулей других циклов РВ и из модулей данного цикла.

Поименованная совокупность РВ циклов образует безусловное задание (простое задание).

<безусловное задание> smplpgm <имя задания>;

head <список модулей> end;

tail <список модулей> end;

inherit <список безусловных заданий>;

<список циклов РВ> end Безусловное задание может быть снабжено конструкциями предварительной и заключительной части. Они служат для проведения набора специ фических действий перед началом работы и соответственно после конца работы простого задания.

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

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

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

<условное задание> condpgm <имя задания>;

cvector <вектор условий>;

switchtable <таблица переключений> end;

<флаги и очереди> <список простых заданий>;

end В разделе <вектор условий> определяется список булевых переменных, от значения которых будет зависеть порядок исполнения программы реального времени. Здесь же указываются начальные значения компонент вектора.

Компоненты вектора условий могут быть использованы в качестве входных и выходных параметров РВ-модулей. В разделе <таблица переключений> задаются правила переключения между простыми и условными заданиями, в зависимости от конкретных значений вектора условий. Таблица переключений представляется в виде списка значений вектора условий и имени простого или условного задания, на которое требуется переключиться. Для таблицы переключений имеется два ограничения:

1) В таблице переключений обязана присутствовать строка, соответствующая начальному значению вектора условий.

2) Таблица переключений должна однозначно определять на какое задание должно происходить переключение.

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

<программа РВ> rtpgm <имя программы>;

<описание констант, модулей, переменных, входных данных>;

<условные задания> end;

В третьей главе приводится описание системы автоматизированного синтеза модели выполнения программ в реальном времени и генератора сетевой модели и расписаний.

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

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

Генератор рабочих таблиц выполняет следующие функции:

1. Осуществляет синтаксический анализ конструкций РВ-программы.

2. Выдаёт сообщения о наличии ошибок в РВ-программе.

3. Генерирует таблицы данных для работы последующих блоков.

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

Генератор сетевых моделей и расписаний (ГСМР) выполняет следующие функции:

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

2. Определяет директивные интервалы выполнения прикладных модулей.

3. Определяет, существует ли допустимое расписание выполнения прикладных модулей, и строит его, если оно существует.

4. Определяет необходимое количество копий для каждого прикладного модуля.

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

6. Назначает стеки прикладным модулям для работы с данными.

В главе подробно описываются математические алгоритмы, лежащие в его основе ГСМР, а именно:

• алгоритм построения сети модулей;

• алгоритмы вычисления и коррекции директивных интервалов;

• алгоритмы проверки существования допустимого расписания выполнения модулей и его построения (при положительном ответе на первый вопрос);

• алгоритм определения размеров буферов для входных параметров и др.

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

В главе 4 описывается управляющая программа САПР «СРВ-Конструктор».

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

Хотя операционная система MS-DOS в чистом виде не позволяет организовать многозадачность, но, в отличие от известных систем, предназначенных для этих целей (Unix, OS/2 и т.п.), она обладает такими несомненными достоинствами, как надёжная файловая система и простота использования.

Pages:     | 1 || 3 | 4 |






© 2011 www.dissers.ru - «Бесплатная электронная библиотека»