Параметрический генератор управляющих программ реального времени
Автор: Мясникова Екатерина Андреевна, Тюгашев Андрей Александрович
Журнал: Известия Самарского научного центра Российской академии наук @izvestiya-ssc
Рубрика: Моделирование и анализ сложных систем
Статья в выпуске: 4-2 т.16, 2014 года.
Бесплатный доступ
В статье описаны математическая модель и программная реализация параметрического генератора управляющих программ реального времени с возможностью получения текста на различных языках - Си, ассемблер, и т.д. Описан алгоритм генерации, который основан на многовходовой модели управляющей программы и использует описание стандартных конструкций целевого языка программирования. Рассмотрена структура программного управляющего алгоритма реального времени.
Управляющий алгоритм, управляющая программа реального времени, генерация программы, многовходовая модель
Короткий адрес: https://sciup.org/148203225
IDR: 148203225
Текст научной статьи Параметрический генератор управляющих программ реального времени
Каждый линейный участок можно описать в виде:
luz .={ f k } , k = оТ П , (4) где { fk } последовательность функциональных задач без проверок логических условий и передач управления [2].
Вход можно представить также в виде графа, где вершинами являются линейные участки, а дугами – передачи управления, которые обусловлены проверками условий логических переменных.
Пример графа входа приведен на рис. 3.

Рис. 3. Логическая схема входа
Шаблоны генератора это образцы стандартных конструкций языка программирования, на который настраивается генератор. В программе обязательно присутствуют стандартные начальный блок и завершающий блок, оформленные в соответствии с правилами конкретного целевого языка программирования. Поддержка множества входов реализуется с помощью меток и операторов безусловного перехода. Кроме этого необходима генерация условных операторов реализации ветвлений, а также описание выхода из программы в диспетчер бортовой операционной системы. В программах реального времения к этому необходимо добавить конструкцию, обеспечивающую необходимую задержку (уставку временного интервала). Структура программы представлена на рис. 4, в блоках текста должны быть описаны последовательности запусков функциональных задач.
Если настраиваемый язык не содержит оператора безусловного перехода, то его можно заменить комбинацией специальной переменной, цикла ПОКА и оператора выбора (переключателя).
Внутренние правила генератора определяют алгоритм генерации управляющей программы. Мы начинаем генерацию с вставки стандартного начала программы и обработки первого по времени исполнения входа. Обработка входа это рекурсивное построение дерева линейных участков. Повторы исключаются вставкой команды перехода на уже описанный участок. Каждая из функциональных задач будет заменена соответствующим фрагментом кода. Некоторые функциональные задачи запрашивают на включение

<6лок кода>
1Г(<логическая переменная>)
Snclude "opslib.h"
int main(int argc, char* argvQ)
goto МО;
<6лок кода> goto Ml;
return 0;

Оператор безусловного перехода
Стандартное начало программы
Выход из программы
Стандартное завершение программы
Оператор ветвления
Рис. 4. Пример структуры программы другие входы, исходя из этой информации, формируется очередь входов. После рассмотрения одного входа в основном алгоритме он удаляется из очереди. Повторение алгоритма продолжается до тех пор, пока очередь не опустеет. После этого мы завершаем генерируемую программу и основной алгоритм.
Таким образом, разработанный программный модуль параметрической генерации использует подход, основанный на преобразовании логико-временной схемы управляющего алгоритма над базовыми конструкциями требуемого языка программирования в программный код управляющей программы реального времени. Базовые конструкции языка программирования описываются в формате XML, логико-временная схема так же интерпретируется в XML-структуру. Это позволяет использовать технологию генерации с помощью XSLT (языка преобразования XML). XSLT имеет массу преимуществ: выполнение повторной генерации кода без перекомпиляции приложения (необходимо только изменить шаблон); возможность генерации программы на любом языке программирования; использование наглядного и широко распрост- раненного XML формата [3].
Разработанный модуль генерации является частью программного комплекса ГРАФКОНТ, разрабатываемого по заказу ГНПРКЦ “ЦСКБ-ПРОГРЕСС” на кафедре программных систем СГАУ. Задача системы ГРАФКОНТ состоит в том, чтобы автоматизировать процессы проектирования, создания, документирования и тестирования бортовых управляющих алгоритмов и программ реального времени для космических аппаратов, обеспечить повышение качества и надежности программ, а так снизить трудоемкость и стоимость разработки.
Список литературы Параметрический генератор управляющих программ реального времени
- Калентьев А.А., Тюгашев А.А. ИПИ/CALS технологии в жизненном цикле комплексных программ управления. Самара: Изд-во Самарского научного центра РАН, 2006. 285 с.
- Трусов В.С. Система визуального конструирования временных диаграмм управляющих алгоритмов беспилотных ЛА: дисс. … канд. техн. наук. Самара, 2005. 116 c.
- Канжелев С.Ю. Шалыто А.А. Автоматическая генерация автоматного кода//Информационно-управляющие системы. 2006. № 6. С.35-42.