Применение фреймворка Qt к разработке программного обеспечения тренажёров подвижного состава

Введение

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

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

 

1 Структура тренажёрного комплекса подвижного состава

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

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

При разработке подобной системы важным этапом является проектирование её архитектуры. Именно от этого этапа во многом будет зависеть скорость и качество разработки программного обеспечения. Обобщая опыт разработки тренажерных комплексов в Ростовском государственном университете путей сообщения, приходим к архитектуре системы, реализованной в тренажерах тепловоза 2ТЭ116 и скоростного пассажирского электропоезда ЭС1 «Ласточка». Структурная схема тренажерного комплекса, на примере тренажера электропоезда ЭС1 приведена на рис. 1.

 
 

Главное преимущество подобной архитектуры – это модульность. Все модули являются самостоятельными, независимыми друг от друга приложениями и могут быть написаны с использованием различных языков программирования:
  1. Вычислительное ядро тренажёра (серверная часть) включает в себя: движок динамики поезда TrainEngine, созданный на основе разработок ученых РГУПС [1, 2], модули имитации работы оборудования электропоезда и модуль связи с аппаратным обеспечением тренажера.
  2. Клиентские модули имитирующие аналогичные системы реального электропоезда (дисплеи «Интерфейс человек-машина» и БЛОК), а так же обеспечивающие управление тренировкой (интерфейс запуска сценария)
  3. Видеосистема тренажеров подвижного состава — модуль имитации вида из кабины электропоезда [3].
  4.  Монитор параметров работы систем электропоезда — обеспечивает визуализацию работы оборудования электропоезда на видеостене в учебной аудитории.

Так же, стоит отметить, что использование такой архитектуры даёт возможность распределения задач по разработке отдельных модулей между разработчиками. Очевидным положительным эффектом является отсутствие различных конфликтов при слиянии всех частей проекта. А при использовании какой-либо из систем контроля версий (Git, Mercurial и т.д), появляется возможность разделения проекта на несколько ветвей или подпроектов.

2 Обоснование кроссплатформенной реализации архитектуры ПО тренажера

Программное обеспечение тренажеров строится по модульному принципу, представляя собой в общем случае распределенную вычислительную систему. Особенность данной системы является то, отдельные её части могут работать разных программных платформах. Основная часть программного обеспечения тренажёра подвижного состава ЭС1 «Ласточка» работает под управлением операционной системы на базе ядра Linux (серверная  часть, дисплейные интерфейсы кабины, видеосистема 3D-визуализации). Части отвечающие за визуализацию процессов в системах электропоезда ориентированы на запуск в среде MS Windows. Необходимость в согласовании протоколов связи модулей системы, а так же стремление к унификации средств разработки программного обеспечения (ПО) и обеспечение быстрого развертывания ПО на объекте приводит к необходимости применять средства кроссплатформенной разработки ПО. Данная тенденция в последние годы характерна для индустрии программного обеспечение в целом.

 

3 Выбор программных средств реализации тренажёров

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

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

Оптимальным решением стал выбор фреймворка Qt, для языка C++. Данный фреймворк предоставляет огромный спектр возможностей и готовых решений, как для вычислительных задач, так и для разработки графического интерфейса. Данная библиотека является кроссплатформенной и позволяет собирать один и тот же проект под различные операционные системы без корректировок [4]. Для реализации распределённой архитектуры служат готовые средства TCP/IP соединения позволяющие производить передачу данных, как между процессами, так и между ПЭВМ под управлением различных операционных систем. В настоящее время Qt поддерживает работу с протоколом Modbus RTU, что использовано в тренажере электропоезда ЭС1 для обеспечения связи ПО тренажера с органами управления на пульте машиниста. Инструменты разработки графического интерфейса предоставляют возможность создавать приложения с графическими интерфейсами любой сложности и, при необходимости, создавать собственные элементы управления.

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

Стоит отметить, что компанией Qt выпущена и успешно развивается мощная интегрированная среда разработки QtCreator, созданная специально для разработки программного обеспечения с использованием данного фреймворка. Продвинутая система подсветки синтаксиса, мощные инструменты рефакторинга и возможность подключения сторонних инструментов делают её незаменимым инструментом для эффективной и быстрой разработки программного обеспечения. Данная среда разработки выпущена для всех основных операционных систем (Linux, Windows,  MacOS).

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

 

Заключение

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

Автор(ы): Ковшиков С.В., Даглдиян Б.Д.

< Назад