Авария ракеты-носителя Союз

Авария ракеты-носителя Союз

https://t.me/ekspertai

Авария ракеты-носителя Союз при пуске с космодрома "Восточный" - вторая в истории освоения космоса, произошедшая из-за ошибки программистов: http://www.interfax.ru/russia/591440

Про первую (Ариан 5, Франция, 1:45):

Longer video of 'Ariane 5' Rocket first launch failure/explosion
Что-то меня сегодня пробрало на ракеты)))
Ну и не удивительно, я ведь в прошлом ракетчик, авиационный инженер-программист да и сейчас - если не удалось покодить, считай день прошёл зря :-)
Сегодняшняя история как раз об этом. Сначала посмотрите видео. Красиво и в то же время ужасно, да?
А теперь посмотрите на строку кода на языке ADA, который содержит ошибку, стоившую в итоге 500 миллионов долларов:
P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S ((1.0/C_M_LSB_BH) * G_M_INFO_DERIVE(T_ALG.E_BH)));
Нашли?) Это E_BH (Bias Horizontal), 64-битная переменная с плавающей запятой, хранящая скорость горизонтального смещения. Она без проверки была преобразована в 16-битное знаковое целое, при этом значение превысило максимум в 32767, способный храниться в 16-битной переменной, и возникла ошибка переполнения. Обработчик ошибки сбросил диагностические данные в область памяти, используемую для управления двигателями. Это было истолковано как необходимость срочно скорректировать курс, и двигатели ракеты были повернуты до пределов. Результат - катастрофа.

оригинал - https://www.facebook.com/serg157


Report Page