На чем пишут ПО для авиатехники?

Всем привет.

Хотел бы поинтересоваться такими вопросами:

1) На чем пишут ПО для самолетов и вертолетов.
2) На чем пишут ПО для авиамоделей?
  • Вопрос задан
  • 5491 просмотр
Решения вопроса 5
alsopub
@alsopub
Про гражданскую авиацию не скажу, а вот это к примеру прошивка популярного полетного контроллера для авиамоделей - https://github.com/ArduPilot/ardupilot/tree/master...
Вот еще прошивка для другого полетного контроллера - https://github.com/cleanflight/cleanflight/tree/ma...
Думаю для авиамоделей можно подытожить - C / C++, возможно с ASM вставками (не искал).

UPD. Про гражданскую авиацию нашел интересную статью - https://tjournal.ru/p/aircraft-software - "За работу того же «Боинга-787» в общей сложности отвечают более 14 миллионов строк кода... Одним из основных языков, на котором пишется код для гражданской авиации, является известный любому программисту C/С++. Второй важный для отрасли язык — разработанный ещё в конце 70-х годов Ada." Там же упоминается ОС реального времени QNX. Разумеется есть масса отдельных программ у отдельных узлов, так же как в квадракоптерах у каждого двигателя отдельный регулятор с отдельным чипом с программой.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Скорость принятия решений в любом случае не зависит от языка.
Это программируется через параллельные потоки с использованием аппроксимации возможной траектории и процентной вероятностью. Т.е. система анализа и управления движением (например, автопилот) работает сразу на несколько возможных направлений полёта, хотя сам летающий объект - движется по одной (осевой) траектории.
При возникновении любой ситуации отклонения от курса - система уже 100% знает как поступить в данном случае (упр. рулями, тягой и т.д.), т.к. эти данные готовятся непрерывно (каждые N-микросекунд).
Язык программирования - здесь может быть любым. Вся "соль" - в параллельных вычислениях и алгоритмах, включая алгоритмы принятия решений за минимально возможный отрезок временного интервала.
Ответ написан
Комментировать
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Язык Ada был разработан по заказу Министерства Обороны США с требованием доказательного соответствия очень четкой и обширной спецификации. Существует строгая сертификация компиляторов на предмет проверок фазы компиляции отчего коммерческих компиляторов немного и они дорогие. В 1991 МинОбороныСША сделало Ada единственным и обязательным языком для своих проектов. В 1997 ограничение снято но унаследована огромная база кода. В гражданской авиации например AIMS - мозги Boeing 777, Canadian Automated Air Traffic System, UnitedKingdom Interim Future Area Control Tools Support (iFACTS).
Ответ написан
Комментировать
@Vasily_Pechersky
Системщик с опытом
Как один из примеров

На летающей технике используют операционные системы реального времени - самая известная https://en.wikipedia.org/wiki/VxWorks (русская статья мало информативна).

Из языков программирования - Гугл указывает на C, C++, Ada. На них програмят компоненты авионики и спутники. Я много раз слышал, что спутники программируют именно на Ada из за возможности отладки во время исполнения и подходу к обработке ошибок. Но доказательств привести не могу.

Также большинство систем используют вендорные ПЛК - соответственно язык и среда разработки зависят от вендора.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Железо
software engineer
Пишут практически на всех языках.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Alexlexandr
@Alexlexandr
Может имелось в виду, : "Какую ОС используют при проектировании сложных объектов с СУ реального времени?"
Например у нас и в мире широко используется QNX. А языки, это уж какие компиляторы вы под неё приобретете , но их список не будет очень широк.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы