🔍 Поиск готовых работ

🔍 Поиск работ

РАЗРАБОТКА МЕХАНИЗМОВ МОДУЛЯРИЗАЦИИ ПРОЕКТОВ ALPHA HMI

Работа №197157

Тип работы

Магистерская диссертация

Предмет

информатика

Объем работы45
Год сдачи2020
Стоимость4860 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
18
Не подходит работа?

Узнай цену на написание


Перечень условных обозначений 5
Введение 6
1 Актуальность проблемы 9
2 Постановка задачи 12
3 Бинарный формат 14
4 Библиотека сериализации 16
4.1 Архитектура библиотеки 17
4.2 Алгоритм сериализации сырых указателей 19
4.3 Структура библиотеки 21
4.4 Пример использования 22
5 Подсистема архивации модуля 26
6 Создание скомпилированного модуля 29
7 Запуск скомпилированного модуля 32
8 Подключение модулей в проект 35
Заключение 37
Список использованных источников 38
Приложение А

В настоящее время компанией АО «Атомик Софт» разрабатывается Alpha платформа - платформа для создания проектов автоматизации производств и технологических процессов. Любой технологический процесс требует визуализации для оперативного уведомления пользователей и при необходимости воздействия на процесс через удобный и понятный интерфейс, его еще называют мнемосхемой или человеко-машинным интерфейсом (сокр. англ. HMI). Задачу создания такого интерфейса в рамках Alpha платформы решает программный комплекс Alpha HMI.В его состав входят три взаимосвязанных приложения:
• Designer- редактор для создания мнемосхем;
• Viewer- приложение для отображения мнемосхем локально;
• Web Viewer- приложение для удаленного отображения мнемосхем в веб-браузере.
Alpha HMIнаписан на языке C++, является кроссплатформенным и на данный момент используется на операционных системах семейства Windowsи Linux.
На рисунке 1.1 изображено, как выглядит пользовательский интерфейс редактора мнемосхем Alpha HMI Designer,а на рисунке 1.2 как выглядит готовая мнемосхема при отображении в Alpha HMI Viewer. 
На мнемосхеме отображаются датчики, счетчики, индикаторы, кнопки и другие элементы отображения и управления.
Мнемосхемы, или экранные формы, в Alpha HMIразрабатываются следующим образом. Сначала создаются графические объекты на основе имеющихся в библиотеке готовых компонентов, например, кнопок, линий, прямоугольников и т.д. Затем создаются экранные формы, куда помещаются графические объекты. С помощью скриптов, написанных на языке Alpha Om или на Javascript,можно связывать события, генерируемые различными объектами, с обработчиками этих событий. В результате все разработанные графические элементы и экранные формы сохраняются в виде исходных файлов в xml нотации языка Alpha Omв рамках одного проекта.
Для запуска экранных форм проект сначала компилируется, в результате в оперативной памяти получаются скомпилированные спецификации объектов и форм. Далее на основе этих скомпилированных определений происходит инстанцирование объектов в среде исполнения. Теперь пользователь может взаимодействовать с экранной формой, нажимать на элементы управления, тем самым генерируя события, то есть экранная форма начинает работать, события генерируются, обработчики событий выполняются и тоже могут генерировать события.
Все разработанные экранные формы находятся в одном проекте, то есть пока что нет поддержки разбиения проекта на модули и возможности переиспользовать экранные формы из других проектов.
Цель данной работы заключается в разработке механизмов, которые позволят разбивать проекты Alpha HMI на модули.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате данной работы было выполнено:
• разработан бинарный формат скомпилированного модуля;
• разработана библиотека сериализации;
• реализована подсистема архивации скомпилированного модуля, которая отвечает за сохранение и загрузку модуля в бинарном формате;
• реализован быстрый запуск экранной формы из бинарного модуля при запуске приложения Alpha HMI Viewer;
• унифицирован механизм подключения всех типов модулей в проект;
• реализован «жесткий» способ связывания с определениями из подключенных скомпилированных модулей;
• доработан интерфейс пользователя для настройки путей поиска и создания ссылок на модули.
В целом, можно сказать, что цель работы достигнута и все поставленные задачи выполнены.
В будущем планируется дальнейшее развитие модульной системы, а именно:
• добавление «гибкого» способа связывания с определениями из подключенного скомпилированного модуля;
• добавление новых типов сегментов в бинарный формат, в первую очередь для полного включения зависимостей в сам модуль;
• развитие интерфейса пользователя для более удобной работы с подключенными модулями и для формирования пакетов развертывания проектов Alpha HMI.



1. Документация библиотеки сериализации boost::serialization //
[Электронный ресурс]
https://www.boost.org/doc/libs/1 70 0/libs/serialization/doc/index.html(Дата обращения 14 января 2020 г.)
2. Документация библиотеки сериализации Cereal // [Электронный ресурс] https://uscilab.github.io/cereal/index.html(Дата обращения 17 января 2020 г.)
3. Статья о статическом полиморфизме в С++ // [Электронный ресурс] https://www.fluentcpp.com/2017/05/12/curiously-recurring-template- pattern/(Дата обращения 11 февраля 2020 г.)
4. Документация графического фреймворка Qt // [Электронный ресурс] https://doc.qt.io/qt-5/reference-overview.html(Дата обращения 18 марта 2020 г.)


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ