Разработка прикладных программ для вычислительных комплексов на базе отечественных микропроцессоров с архитектурой SPARC с использованием языков высокого уровня стандарта IEC 61131-3
Обзор среды разработки Beremiz. Структура прикладной программы, отладка и управления ею с помощью элементов человеко-машинного интерфейса. Использование кросс-компилятора архитектуры SPARC из среды Windows. Управление прикладной программой из браузера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | доклад |
Язык | русский |
Дата добавления | 27.11.2018 |
Размер файла | 398,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Всероссийская молодежная научно-техническая конференция ОАО «Концерн «Вега»
Тема доклада:
Разработка прикладных программ для вычислительных комплексов на базе отечественных микропроцессоров с архитектурой SPARC с использованием языков высокого уровня стандарта IEC 61131-3
Баранов И. А.
Аннотация
Рассматриваются вопросы разработки прикладного программного обеспечения для вычислительных комплексов с микропроцессором SPARC с использованием языков стандарта IEC 61131-3. Особое внимание уделено использованию кросс-компилятора архитектуры SPARC из среды Windows. Рассказывается про структуру прикладной программы, отладку и управления ей с помощью элементов человеко-машинного интерфейса. Кратко изложены направления дальнейшего развития.
Annotation: This article covers the issues of software development for computation systems based on SPARC architecture microprocessors using programming languages of IEC 61131-3 standard. Particular attention is attended to using SPARC cross-compiler under OS Windows. It also shows the structure of program, processes of debugging and controlling using human-machine interface. Trends in further development are briefly presented.
Ключевые слова: IEC 61131-3, интегрированная среда разработки, SPARC, языки программирования, ЧМИ
Keywords: IEC 61131-3, IDE, SPARC, programming languages, HMI
Введение
Современные отечественные микропроцессоры с архитектурой SPARC (МЦСТ R-500S, МЦСТ-4R) позволяют создавать на их основе миниатюрные и высокопроизводительные управляющие вычислительные комплексы для применения в области промышленной автоматизации, отвечающие всем современным требованиям по производительности, надежности и защищенности. [1] Однако, для таких устройств необходимы средства разработки ПО, поддерживающие высокоуровневые языки программирования, ориентированные, в первую очередь, на инженеров-технологов, не имеющих специальных навыков в области программирования на традиционных языках, таких как С или С++. Требования к таким технологическим языкам описаны в международном стандарте IEC 61131-3.
На данный момент существует ряд широко известных инструментов разработки, поддерживающих стандарт IEC 61131-3, например ISaGRAF, CoDeSyS и т.д. Но в процессе адаптации таких сред разработки для вычислительных комплексов с аппаратной частью на новой, нестандартной, архитектуре может возникнуть ряд проблем. Например, отсутствие необходимых компиляторов под конкретную архитектуру или невозможность внесения изменений в саму среду разработки для специфичной задачи, требующей доступа к исходному коду определённого компонента среды. Кроме того, данные инструменты являются коммерческим продуктом и для их применения необходимо пройти процесс лицензирования, требующий больших финансовых вложений. Существует также свободно-распространяемая среда с открытым исходным кодом Beremiz (www.beremiz.org). Возможность иметь доступ ко всем её компонентам, а так же разрабатывать и добавлять новые, даёт преимущества в адаптации данного инструмента к написанию прикладных программ на языках IEC 61131-3 для вычислительных комплексов на базе отечественных микропроцессоров с архитектурой SPARC. Инструмент Beremiz можно рассматривать как конструктор (причём на всех уровнях), который благодаря модульности и слабой связности компонентов (с точки зрения архитектуры), позволяет адаптировать его под специфичный класс задач.
Обзор среды разработки Beremiz
Beremiz представляет собой интегрированную среду разработки (IDE) прикладных программ для целевых устройств, в данном случае вычислительных комплексов с архитектурой SPARC, на языках стандарта IEC 61131-3. Основными компонентами Beremiz являются:
редактор PLCOpen для текстовых (IL и ST) и графических языков (FBD, LD, SFC) стандарта IEC 61131-3;
компилятор MatIEC, преобразующий логику и алгоритмы программных модулей (из которых состоит прикладная программа), описанных на языках стандарта IEC-61131-3 в эквивалентный С код;
механизм плагинов, позволяющий связывать внешние источники данных, такие как модули УСО (их параметры, состояния), SCADA-системы с логикой и алгоритмами программных модулей;
средства отладки прикладной программы в режиме исполнения;
элементы для создания человеко-машинного интерфейса управления прикладной программой.
Гибкость в изменении существующих и добавлении новых компонентов достигается использованием языка Python (и соответствующих библиотек для пользовательского интерфейса, работы с сетью и т.д.) и xsd (XML Schema) файлов, применяемых для описания компонентов среды разработки: модулей работы с компиляторами целевой архитектуры, плагинов внешних источников данных и т.д. В совокупности, описание компонента в xsd формате преобразуются в метаклассы на языке Python, которые позволяют создавать соответствующие сущности (объекты) конкретного компонента при запуске среды разработки.
Данная архитектура среды разработки Beremiz существенно упрощает решение одной из важных задач - задачи компиляции сгенерированного кода на языке С под целевую платформу SPARC.
Использование кросс-компилятора GCC для целевой платформы SPARC
Процесс компиляции кода на языке C из операционной системы Windows под различные архитектуры процессора, как правило, вызывает затруднения. Предлагаемым вариантом решения данной задачи является использование свободно-распространяемой UNIX-подобной оболочки Cygwin (запущенной под ОС Windows) и собранного в ней кросс-компилятора для платформы SPARC с помощью скриптов crosstoll.[3] Благодаря тому, что имеется возможность изменить исходный код компонента Beremiz, отвечающего за работу с компиляторами, в нём произведены соответствующие изменения. Реализована поддержка запуска компилятора из среды Beremiz не напрямую, а из оболочки Cygwin и вывод результата его исполнения перенаправлен в соответствующие компоненты Beremiz.
Сам процесс добавления поддержки нового компилятора выглядит следующим образом. В исходном коде среды разработки Beremiz имеется папка targets, которая содержит платформо-независимый код (файлы plc_common_main.c и plc_debug.c) и папки с кодом под конкретную целевую архитектуру и описанием для неё компилятора. Для добавления кросс-компилятора для архитектуры SPARC создаётся соответствующая папка и добавляется описание его параметров в xsd файле:
<xsd:element name="Sparc">
<xsd:complexType>
<xsd:attribute name="Compiler" type="xsd:string" use="optional" default="sparc-compiler/bin/sparc-unknown-linux-gnu-gcc"/>
<xsd:attribute name="CFLAGS" type="xsd:string" use="required"/>
<xsd:attribute name="Linker" type="xsd:string" use="optional" default=sparc-compiler/bin/sparc-unknown-linux-gnu-gcc"/>
<xsd:attribute name="LDFLAGS" type="xsd:string" use="required"/>
<xsd:attribute name="CygwinPath" type="xsd:string" use="optional" default="cygwin\"/>
</xsd:complexType>
</xsd:element>
Так же в данную папку добавляется платформо-зависимый код в виде файла plc_Sparc_mail.c, который будет помещен вместе с платформо-независимым кодом файла plc_common_main.c. Данный файл содержит реализацию следующих функций:
запуска и остановки прикладной программы, работа с главным таймером прикладной программы;
сохранения и восстановления значений переменных программных модулей, с опцией RETAIN, т.е. которые согласно стандарту, должны сохранять своё значение в энергонезависимой памяти и при перезагрузке вычислительного комплекса иметь последнее значение при предыдущем исполнении;
выполнения отладки прикладной программы.
Далее даётся краткое описание основным этапам разработки прикладной программы в среде Beremiz.
Основные этапы разработки
Общая схема по созданию прикладной программы в среде разработки Beremiz представлена на рис. 1.
Рис. 1 - Схема создания прикладной программы в среде разработки Beremiz
Программные модули, написанные пользователем (в большинстве случаев инженером по автоматизации) на текстовых (ST, IL) и/или графических (FBD, SFC, LD) языках в соответствии со стандартом IEC 61131-3 объединены в проект. Каждый такой проект представлен в формате XML и хранится в отдельной папке. Результатом работы компилятора MatIEC являются следующие файлы на языке C:
файлы config.c config.h, описывающие элемент конфигурация прикладной программы согласно IEC 61131-3;
файлы resource0.c, resource1.c и т. д., описывающие элементы ресурсы прикладной программы согласно IEC 61131-3;
файлы POUS.h, POUS.c, содержащие определения и реализацию программных модулей (функций, функциональных блоков и программ), определяющих алгоритмы и логику работы прикладной программы;
файл plc_common_main.c, содержащий основной код выполнения прикладной программы: запуск, остановка, работа таймера, вызов функций отладки, считывание данных с внешних модулей, выполнение алгоритмов программных модулей, передача данных на внешние модули и функции с кодом специфичный для целевой архитектуры (в данном случае SPARC);
файл plc_debugger.c, содержащий код для отладки прикладной программы на целевом устройстве из среды разработки Beremiz.
Сгенерированный C код и код всех используемых плагинов (как правило, драйверов модулей УСО или других источников данных на языке C) с помощью кросс-компилятора, запущенного под UNIX-подобной оболочной Cygwin, компилируется в исполняемый бинарный файл (динамическая библиотека). Исполняемый файл, благодаря средствам Beremiz, может быть размещен на целевом устройстве через локальную сеть. На целевом устройстве исполняемый файл запускается и в процессе работы выполняет следующие действия (см. рис. 1):
с помощью драйверов модулей УСО обменивается данными с внешними модулями;
исполняет алгоритмы и логику, определенную пользователем в программных модулях проекта;
приём и передача отладочной информации.
Созданная прикладная программа может быть запущена в режиме отладки. Появляется возможность вывести и изменять значения переменных (аналогично процессу отладки в IDE для широко используемых языков программирования) программных модулей, из которых состоит прикладная программа, отображать их в виде графика. Также доступна графическая трассировка потока выполнения программ (в данном случае имеется ввиду программный модуль программа), алгоритмы которых описаны на графических языках FBD, LD, SFC (см. рис. 2).
Рис. 2 - Отладка программного модуля, написанного на языках SFC и LD
Элементы человеко-машинного интерфейса
Среда разработки Beremiz предоставляет возможности для быстрого создания элементов человеко-машинного интерфейса, позволяющих управлять созданной прикладной программой. Логика работы и поведение элементов человеко-машинного интерфейса может быть связана с алгоритмами работы программных модулей, из которых состоит прикладная программа. Данная задача решается использованием соответствующих функциональных блоков (см. рис. 3), которые становятся доступными, как и стандартные функциональные блоки.
Рис. 3 - Использование функциональных блоков SVGUI
Человеко-машинный интерфейс может быть создан в двух вариациях:
SVGUI - с использованием векторной графики SVG (см. рис. 4), управление осуществляется через браузер [4];
wxPython - пользовательский интерфейс библиотеки wxPython, управление осуществляется из отдельной программы [5].
Рис. 4 - Управление прикладной программой из браузера
При создании человеко-машинного интерфейса можно использовать существующий набор элементов или создать новый элемент, описав логику его работы на языке Python (для элементов wxPython) или на языке JavaScript (для элементов SVGUI). При необходимости также следует добавить соответствующие функциональные блоки.
прикладная программа интерфейс
Заключение
В перспективе планируется перевести весь цикл разработки, отладки, выполнения и управления прикладными программами на вычислительные комплексы с микропроцессором SPARC и схожие с ними вычислительные комплексы с микропроцессором «Эльбрус». Благодаря открытости Beremiz, возможность вносить изменения любого характера в саму среду разработки, в получаемые прикладные программы и средства управления ими, является серьёзным преимуществом при адаптации данного инструментария под новые, нестандартные отечественные архитектуры. Все эти шаги направлены на решение государственной задачи на двойное применение данных вычислительных комплексов: не только для нужд обороны, но и в области промышленного производства и системах управления им [2].
Библиографический справочник
Ким А.К., Перекатов В.И., Ермаков С.Г. Микропроцессоры и вычислительные комплексы семейства «Эльбрус». - СПб.: Питер, 2013. - 272 с.
Ким А.К. Российские универсальные микропроцессоры и ВК высокой производительности: результаты и взгляд в будущее. - «Вопросы радиоэлектроники», сер. ЭВТ, 2012, вып. 3.
Размещено на Allbest.ru
...Подобные документы
Человеко-машинный интерфейс. Текстовый и смешанный (псевдографический) интерфейсы. Применение человеко-машинного интерфейса в промышленности. Программные средства для разработки человеко-машинного интерфейса. Среда разработки мнемосхем GraphworX32.
дипломная работа [5,3 M], добавлен 19.03.2010Задачи разработчиков следующего поколения многопроцессорных и многопоточных процессоров Oracle. Архитектура процессора SPARC T3. Интерфейсы когерентных связей, ядро процессора. Особенности конвейера, интегрированные сети, управление электропитанием.
реферат [1,9 M], добавлен 25.10.2012Рассмотрение информатики как учебного предмета в средней школе. Методика технологии работы в прикладных программных средах. Освоение среды текстового и табличного процессоров. Решение задач из курса "Математика" с помощью прикладной среды MS Excel.
дипломная работа [14,9 M], добавлен 10.03.2012Создание приложения для контроля знаний студентов, программ-тестов, созданных с помощью пакета прикладных программ Microsoft Office. Основные требования к его структуре и функциональности, взаимосвязь компонентов. Составление и листинг программы.
курсовая работа [900,3 K], добавлен 03.06.2014Определение назначения прикладных, системных и инструментальных программ. Общее описание программной среды Visual basic версии 6.0. Обзор требований к аппаратным средствам для создания программного продукта и разработка модуля "Конвертер величин".
курсовая работа [139,4 K], добавлен 27.07.2014Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.
курсовая работа [233,5 K], добавлен 14.12.2012Эволюция графических пользовательских интерфейсов. Устройство системы X Window и менеджеры окон. Описание рабочего стола и приложения KDE и GNOME. Обзор основных принципов организации интерфейса в системе Windows, описание пакета ее прикладных программ.
реферат [1,8 M], добавлен 15.02.2012Классификация пакетов прикладных программ. Microsoft Office как популярный пакет, предназначенный для решения задач автоматизации офиса. Пример формирования калькуляции стоимости выпечных изделий на хлебозаводе с помощью табличного процессора MS Excel.
курсовая работа [1,3 M], добавлен 05.06.2013Операционная система Windows - совокупность программных средств, обеспечивающих работу аппаратной части компьютера и прикладных программ, их взаимодействие между собой и пользователем. Основные объекты и приемы управления. Текстовый процессор Word.
методичка [1,4 M], добавлен 23.04.2012Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Теоретические и практические аспекты решения прикладных задач с применением функций и процедур структурного (модульного) программирования. Особенности разработки схемы алгоритма и программы для вычисления массива z на языке Turbo Pascal 7.0, их описание.
курсовая работа [241,7 K], добавлен 11.12.2009Разработка комплекса алгоритмов. Кодирование и компиляция. Тестирование, отладка, испытание и сдача программы. Минимальные системные требования для использования Delphi 7. Написание программы с использованием инструментального языка высокого уровня.
курсовая работа [2,7 M], добавлен 21.02.2011Построение компилятора с языка высокого уровня как одного из элементов системы программирования. Разработка компилятора ассемблера, модификация базы данных исходного макета. Загрузчик, эмулятор, отладчик. Использование Flex и Bison для программирования.
курсовая работа [599,0 K], добавлен 04.11.2014Разработка архитектуры ключевых прикладных систем предприятия. Разработка требований к системе управления качеством и контроллинга бизнес-процесса. Анализ разрывов между исходным и целевым состоянием бизнес-процесса. Разработка диаграммы миграции.
курсовая работа [6,3 M], добавлен 12.03.2022Программная модель МП с регистр-аккумуляторной архитектурой. Особенности программирования в машинных кодах, мнемокодах и на языке ассемблера. Правила составления схем алгоритмов. Порядок ввода, редактирования, трансляции и отладки прикладных программ.
контрольная работа [266,1 K], добавлен 21.08.2010Изучение особенностей операционной системы, набора программ, контролирующих работу прикладных программ и системных приложений. Описания архитектуры и программного обеспечения современных операционных систем. Достоинства языка программирования Ассемблер.
презентация [1,3 M], добавлен 22.04.2014Разработка проекта с помощью встроенных средств языка C#, на базе сетевого стека и сетевых функций Windows. Специфика создания удобного интерфейса программы с использованием Windows Forms, которая способна пересылать данные на удалённый компьютер.
курсовая работа [162,6 K], добавлен 16.06.2013Краткая характеристика предметно-ориентированных языков, различия между "внутренними" и "внешними" DSL. Особенности работы транслятора (компилятора). Листинг программы для разработки простейшего калькулятора с использованием программной среды Java.
лабораторная работа [57,8 K], добавлен 31.03.2017Изучение набора прикладных программ операционной системы Windows. Особенности редактирования графического объекта и масштабирования рисунка в редакторе Paint. Вычислительные операции и возможности калькулятора. Создание документов в текстовом процессоре.
контрольная работа [577,0 K], добавлен 05.11.2012Обзор популярных игровых движков для разработки 2D и 3D игр, среды разработки и конструкторы компьютерных игр. Основные этапы и концепции разработки игровых программ под платформу Windows. Документация и современные методы управления рабочими группами.
курсовая работа [62,7 K], добавлен 11.01.2016