Напомним, что аппарат «Луна-25» был запущен 11 августа 2023 года (первый запуск российского аппарата на Луну с 1976 года). Он должен был отработать процесс посадки в околополярной области спутника Земли и проверить лунный грунт на наличие в нем водного льда.
«Установлено, что наиболее вероятной причиной аварии стало нештатное функционирование бортового комплекса управления. Оно было связано с тем, что блок акселерометров в приборе БИУС-Л (блок измерения угловых скоростей) не включился из-за возможного попадания в один массив данных команд с различными приоритетами».
«…не провели для программного обеспечения базовый (!) тест на ноль и конфликт приоритетов? Это умеют делать даже самые примитивные программы для автоматического тестирования. Такие примитивные ошибки совершают ну максимум на первом курсе вуза», – удивляется Zloy Marketolog.
Мы обратились к нашим разработчикам, чтобы они перевели это объяснение «Роскосмоса» обратно на «программистский», а редакторы выкрутили бы их объяснение обратно на русский. Помогает backend-разработчик TexTerra Денис Скрипицын, но с оговоркой, что он, как и все прочие, не знает специфики работы бортового оборудования «Луны-25», а в частности БИУС-Л.
Денис: Должны выполниться команды с наиболее высоким приоритетом. По идее, команда с низким приоритетом должна прерваться и уступить место более приоритетной. Если команда фиксации набора скорости была менее приоритетной, и сыпались какие-нибудь более приоритетные команды – то да, данные о необходимости торможения могли не доходить вовремя.
Перевод: Повода для появления «нулевых сигналов» нет. Более приоритетная команда всегда будет выполнена, какие бы еще команды ни поступали вместе с ней, что обусловлено логикой и математикой – основами программирования. Другой вопрос, каким командам какой приоритет был задан, а для этого нужно смотреть код.