
Полная версия
Слепая зона

Айко Атами
Слепая зона
Глава 1. Чистое небо
Мокрый снег ложился на обзорное стекло операторской и тут же сползал вниз серыми нитями. За стеклом порт Северореченска не имел контуров: краны то проступали темными ребрами, то исчезали в соленой дымке, как будто их стирали по одному слою. Внизу, за пустой крановой галереей, ждал грузовой БАС: медрасходники для поселка за проливом, кассета датчиков для ремонтной бригады, срочная автоматика для завода. Не демонстрация. То, что люди завтра начнут считать обещанной дорогой.
Алиса Романова не спала нормально третью ночь. Усталость держалась не в веках, а в жестах: она дважды проверяла один и тот же лист допуска, ставила кружку мимо светового пятна на столе и возвращала взгляд к окну старта раньше, чем успевала дочитать строку. Ее подпись уже стояла под сегодняшним прогоном. Если они закрывали окно сейчас, порт терял день, комиссия получала повод назвать коридор красивой игрушкой, а северный склад снова считал туман сильнее любого проекта.
На стене экранов все выглядело спокойнее. Зеленые поля допуска. Ровная линия уверенности. Пустой сектор на радарном слое. Алиса смотрела не на общий статус, а на задержку в канале с портом.
— Канал три, отклик?
Денис Морозов поднял ладонь от пульта, не оборачиваясь.
— Двести восемьдесят миллисекунд. В допуске.
— Не в среднем, Денис. На последнем пакете.
Он вывел на боковую панель узкую дорожку обмена. Красного там не было. Только короткий зубец, такой аккуратный, что его легко было принять за дыхание системы.
— Триста сорок, — сказал Денис. — Один пакет.
Марина Кольцова отозвалась с соседнего места:
— Классификатор не потерял сцену. Слияние держит уверенность девяносто два.
Алиса кивнула, хотя Марина смотрела на модель, а не на нее. В операторской все давно научились говорить не в лицо, а в слой данных: радаристу, инженеру зрения, диспетчеру порта, группе безопасности. Люди были вписаны в схему так же плотно, как линии допусков.
Схема работала только тогда, когда кто-то удерживал ее целой.
— Окно?
— Семнадцать минут, — ответила Тамара с портового канала. Голос шел с песком, но слова держались. — Потом снег сядет ниже крановой галереи. У меня люди уже сняты с третьей эстакады. Второй раз за день я их не выведу.
На дальнем экране мигнула карта коридора: заводской причал, сервисная галерея, пустой участок над контейнерной площадкой, посадочный створ у северного склада. Грузовой БАС стоял на старте, тяжелый, белый, с композитной защитой узлов.
Лебедев именно это повторял комиссии утром: коридор нужен не для красивого отчета. Северу не хватает дороги, когда порт закрыт туманом, а вертолетный час стоит дороже чужого терпения.
Алиса не любила, когда инфраструктуру объясняли через чужое терпение. Терпение редко попадало в протокол. Зато попадали видимость, ветер, плотность осадков, задержка канала, карта препятствий, уверенность модели и подпись руководителя испытаний.
— Павел, кожухи?
Павел Брагин оторвался от промышленного планшета. Он стоял у стола, потому что садиться в операторской не умел: материаловед всегда выглядел так, будто пришел на чужую кухню с деталью в руках.
— Температура по узлам ровная. Обледенения на передней кромке нет. Влажность выше вчерашней, но в пределах.
— Не «в пределах». Число.
— Восемьдесят семь процентов у поверхности, девяносто один на двадцати метрах.
Алиса отметила второе число в журнале. Порт за стеклом снова пропал, остались только лампы на мачтах и размазанная желтая полоса аварийного прохода. Внизу люди уже ушли из опасного сектора. Это было главным условием финального допуска: не скорость, не дальность, не демонстрация для комиссии, а пустой коридор под машиной.
— Комиссия спрашивает, почему держим старт, — сказал Кирилл с административного канала.
Алиса не сразу нажала ответ.
На отдельном стекле над переговорной отражались люди, которым нельзя было показывать сомнение раньше, чем оно станет фактом. Виктор Лебедев стоял ближе всех к двери, не садился и не снимал пальто. Рядом с ним двое из регионального блока и инспекторская группа. Илью Сафонова Алиса знала пока только по фамилии в списке наблюдателей: промышленная безопасность, внеплановый контроль, допуск к протоколам без права вмешательства в штатное решение, если нет красного статуса.
Красного статуса не было.
— Потому что окно еще открыто, — сказала Алиса в микрофон. — Условия тяжелые, но расчетные. Финальный прогон именно для этого диапазона.
Лебедев за стеклом повернул голову к инспектору. Сафонов ничего не записал. Он смотрел не на Алису и не на экран, а на схему эвакуации под картой коридора.
Алиса вернулась к основному слою.
— Предстартовая матрица. По строкам.
Операторская изменила дыхание. Разговоры стали короче, кресла перестали скрипеть. На центральном экране строки уходили вниз.
— Навигация.
— Зеленый.
— Радар.
— Зеленый.
— Техническое зрение.
— Зеленый.
— Карта препятствий.
— Зеленый.
— Связь с портом.
Денис задержался на половину вдоха.
— Зеленый.
Алиса посмотрела на него.
— Что не так?
Он провел большим пальцем по кромке клавиатуры. Этот жест не входил ни в один регламент, но Алиса знала его лучше многих показателей: Денис так делал, когда видел несоответствие, которое еще не мог назвать.
— Картинка чистая, — сказал он.
Марина коротко усмехнулась носом, не зло, а от усталости.
— Это обычно хорошая новость.
— Для такой погоды? — Денис вывел рядом портовую камеру. Там в мокрой дымке дернулась тень крана. На слое технического зрения тени не было, только серое поле и аккуратная граница безопасного сектора. — Слишком чистая.
Слово повисло в операторской хуже красного сигнала. Красный сигнал хотя бы говорил, что делать.
Алиса приблизила слой, потом радар, потом сводную уверенность. Система не врала грубо. Она показывала то, что должна была показывать при отсутствии препятствий в рабочем коридоре. Все источники сходились в допустимую картину.
Кроме мокрого стекла, портового голоса с песком и Денисовой ладони над клавиатурой.
— Шумоподавление в норме? — спросила Алиса.
Марина уже открывала журнал модели.
— Да. Последний патч не трогал этот блок. Уверенность не скачет.
— Именно, — сказал Денис.
Марина повернулась к нему.
— Что «именно»?
— Она слишком ровная.
Алиса подняла руку, останавливая спор до того, как он стал личным. Время на панели уменьшилось до пятнадцати минут. За стеклом переговорной Лебедев что-то говорил инспектору. Тамара на портовом канале молчала, но значок ее линии оставался открытым.
— Денис, формулируй как проверяемое.
Он сглотнул. Не от страха перед ней, Алиса это видела. От того, что хорошая операторская тревога редко рождается готовой фразой.
— Визуальный слой чистит среду сильнее, чем я ожидаю по камере и погоде. Радарный слой пустой. Модель уверена. Но порт так не молчит.
Павел тихо переставил планшет на стол.
— Материал тут при чем?
— Пока ни при чем, — сказала Алиса. — Не притягиваем.
Она открыла быстрый сравнительный прогон с утренним тестом. Утром осадки были слабее, ветер выше, видимость лучше. Уверенность модели шла почти такой же линией. Почти. Сейчас она была ровнее. Красиво ровнее.
Красиво — плохое слово для допуска.
— Марина, дай сырой слой до постобработки.
Марина не спорила. На экране появился зернистый серый поток, в котором порт перестал быть схемой и снова стал мокрым железом. Никакого препятствия в коридоре не было. Тени кранов лежали вне зоны. Галерея была очищена. БАС еще стоял на стартовой позиции.
— Денис? — спросила Алиса.
Он смотрел на сырое изображение дольше, чем требовалось.
— Формального основания нет.
Это была честная фраза. И неудобная. Она отдавала решение наверх.
Наверхом была Алиса.
— Алиса Сергеевна, — сказал Кирилл с административного канала, — комиссия просит подтвердить, что задержка не связана с отказом.
Задержка. Уже задержка. Не проверка, не уточнение, не нормальное право системы на сомнение, а видимый сбой темпа. Алиса почувствовала, как операторская ждет от нее не мягкости и не красивой уверенности. Ждет решения, которое потом можно будет повторить в отчете без стыда.
Она посмотрела на матрицу. Ни один показатель не давал ей права закрыть окно. Ни один не требовал остановки.
Между этими двумя фразами оставалось место для человека. Место было узким и не имело отдельной строки.
— Пишем замечание в журнал, — сказала Алиса. — «Операторская оценка: визуальный слой выглядит чище ожидаемого при текущей портовой среде». Марина, сохраняешь сырой поток. Денис, ставишь маркер на текущую минуту. Старт не отменяем.
Денис опустил глаза к клавиатуре.
— Принял.
Марина выдохнула не в микрофон. Павел ничего не сказал. На стене экранов статус остался зеленым.
Алиса нажала канал переговорной.
— Предстартовая проверка завершена. Замечание внесено, отказов нет. Готовы к финальному прогону.
За стеклом Лебедев кивнул так, будто это был его ответ. Инспектор Сафонов наконец посмотрел на Алису. Не строго, не обвиняя. Просто так, как смотрят на человека, который только что выбрал формулировку.
БАС поднялся без рывка. На стартовом слое это выглядело как короткая белая метка, которая отделилась от земли и вошла в коридор. За стеклом операторской машина исчезла почти сразу: мокрый снег, свет мачт, дымка от теплых цехов. На экране она была точнее мира.
— Высота двадцать два, скорость восемнадцать, — сказал Денис.
— Коридор?
— Держит.
— Порт?
Тамара ответила не сразу.
— Люди сняты. Третья эстакада пустая. На второй только аварийный пост за бетонной стеной.
— Подтвердите отсутствие движения в створе.
— Подтверждаю.
Алиса отметила время. Каждая подтвержденная строка уменьшала пространство для поздней остановки. Это было нормально. Протокол и существовал, чтобы решение не расплывалось при каждом чужом вдохе.
На панели модели уверенность поднялась до девяноста трех.
— Красиво идет, — сказал Кирилл слишком близко к микрофону.
— Не комментируем, — ответила Алиса.
В переговорной кто-то усмехнулся. Она не посмотрела кто. В такие минуты лишний взгляд мог стать лишней связью: с ожиданием Лебедева, с усталостью команды, с тем, что через неделю этот коридор должен был перейти из испытаний в опытную эксплуатацию.
Денис увеличил радарный слой. Пусто. Техническое зрение: пусто. Карта препятствий: пусто. Сырой поток: снег, темные полосы кранов за пределами створа, дрожащая лампа на галерее. Все неважное оставалось неважным.
— Вход в участок «Север-3» через сорок секунд, — сказала Алиса. — Повторяем контроль.
— Навигация зеленый.
— Радар зеленый.
— Зрение зеленый.
— Карта зеленый.
— Связь с портом… — Денис наклонился ближе. — Зеленый.
Алиса не дала ему уйти в молчание.
— Денис.
Он держал палец над маркером, но не ставил новый.
— Та же картина.
— Хуже?
— Не могу сказать.
— Лучше?
— Тоже нет.
Марина повернула к ним профиль. На ее лице уже была защита модели: не упрямство, а профессиональная обязанность не дать чужому ощущению стать техническим фактом без проверки.
— Сырой слой не показывает препятствий, — сказала она. — Радар пустой. Если мы сейчас остановим, причина будет «оператору кажется странным». Это не остановочное условие.
Денис резко глянул на нее.
— Я не сказал «кажется».
— Тогда дай параметр.
Он молчал две секунды. На экране БАС прошел отметку над первым пустым складом.
— Нет параметра.
Алиса услышала в этой фразе не капитуляцию. Скорее обиду на язык, который не успел за глазом. Она сама учила Дениса не приносить наверх неоформленную тревогу. Она сама добивалась, чтобы команда говорила проверяемо, потому что иначе сложный проект распадался на чувства, статус и крик.
И все же порт за стеклом не был чистым.
— У нас есть процедурный вариант, — сказал Павел. — Снизить скорость на участке.
Марина дернула головой.
— Изменим профиль прогона. Финальный допуск будет грязным.
— Зато посмотрим, останется ли ровная уверенность.
— На другой скорости? Это уже другой тест.
Алиса посмотрела на таймер. Двенадцать секунд до «Север-3». Если снизить скорость без формального основания, комиссия получит право сказать, что команда сама не доверяет конфигурации. Если остановить, окно уйдет, порт второй раз людей не снимет, а Лебедев получит не перенос, а провал финального допуска. Если продолжить, они будут действовать по утвержденной матрице.
По матрице все было зеленым.
— Не меняем профиль, — сказала она. — Денис, второй маркер. Формулировка та же: чистота визуального слоя не соответствует операторскому ожиданию от среды. Марина, сырой поток и параметры фильтрации в отдельный пакет. Павел, отмечаешь влажность по участку. После прогона разбираем.
— После? — спросил Денис.
Вопрос был тихим, и именно поэтому Алиса едва не ответила жестче, чем надо. В операторской нельзя было позволять одному слову развернуть решение без нового факта.
— Да. После.
БАС вошел в «Север-3».
На экране ничего не произошло. Метка шла по коридору, как по линейке. Радар молчал. Модель держала девяносто три, потом девяносто четыре. Пустой сектор оставался пустым.
За стеклом порт дрожал от снега и света. Внизу, за бетонной стеной, аварийный пост Тамары был невидим. Люди там доверяли не красивой линии, а тому, что наверху кто-то не перепутает допуск с безопасностью.
Алиса поправила микрофон.
— Борт, подтверждаю прохождение участка по плану. Отклонений, требующих остановки, нет.
Денис не повторил за ней. Он поставил второй маркер.
Марина сохранила пакет. Павел записал влажность. Тамара на портовом канале сказала:
— В створе тихо.
В ее голосе не было облегчения. Только рабочая отметка.
Алиса смотрела на пустой сектор и ждала обычного набора мелких несовпадений: шум на границе крана, слабую рябь от мокрой галереи, дрожание классификации на дальнем свете. Система не дала ей ни одного. Она шла чисто. Очень чисто.
— Выход из «Север-3» через двадцать, — сказал Денис.
— Принято.
В переговорной Лебедев уже говорил кому-то по телефону, закрыв ладонью микрофон. Он видел успешную линию, не слышал ее цены. Сафонов стоял у стекла так же неподвижно, как раньше. Алиса вдруг подумала, что он запомнит не зеленый статус, а Денисову паузу перед словом «зеленый».
Эта мысль была лишней. Она убрала ее так же, как убирала с экрана вспомогательные слои.
— Выход, — сказал Денис. — Коридор держит. Посадочный створ через четыре минуты.
На центральной панели участок «Север-3» стал серым: пройден. За ним не осталось ничего, кроме двух маркеров в журнале и сырого потока, который можно будет разобрать позже. Позже было удобным словом. Оно не спорило с текущим решением.
Алиса нажала запись руководителя.
— Финальный прогон продолжается по утвержденному профилю. Операторское замечание зарегистрировано. Оснований для остановки нет.
Она произнесла это ровно. Фраза получилась пригодной для отчета.
Денис посмотрел на экран так, будто отчет уже стал тяжелее воздуха.
— Алиса Сергеевна.
— Что?
Он не сразу нашел голос.
— Если после прогона окажется, что это был сигнал, журнал покажет, что мы его видели.
В операторской стало тише, чем позволяли вентиляторы. Марина опустила глаза к своей панели. Павел перестал писать. Тамара на портовом канале не отключилась.
Алиса могла сказать, что журнал для этого и нужен. Могла напомнить, что сигнал без параметра не является основанием. Могла перенести разговор на разбор и тем самым закрыть его чисто.
Она выбрала самое короткое.
— Покажет.
БАС шел дальше, к посадочному створу. На экране перед ним было пусто.
Глава 2. Падение
Посадочный створ погас без предупреждения.
Не красным. Не желтым. Просто на долю секунды исчезла рамка допуска, будто интерфейс решил моргнуть. Потом рамка вернулась уже красной, с тонкой подписью под ней: «расхождение карты препятствий».
— Створ? — сказала Алиса.
Денис не ответил. Его рука была на клавиатуре, но пальцы не двигались.
На центральном экране белая метка БАС шла к северному складу по штатной линии. Высота двадцать два. Скорость восемнадцать. Радарный слой все еще показывал пустоту там, где система уже признала расхождение.
— Денис.
Он дернулся, как человек, которого вытолкнули из воды.
— Карта отстала на один цикл. Нет, на два. Визуальный слой не подтверждает новый объект.
— Какой объект?
Марина уже раскрывала журнал слияния.
— Радар дал короткий отклик внизу створа. Модель отнесла к шуму. Сейчас пересчитала.
— Покажи.
На боковой панели появилась белая пустота перед ударом. Сначала ничего, только снег, размазанный свет и ровный серый коридор. Потом короткий зубец на радаре, такой слабый, что его можно было потерять между строками. Потом красная метка, появившаяся слишком поздно.
В портовом канале что-то хрустнуло.
— У нас удар! — крикнула Тамара.
Голос не сорвался. Это было страшнее: Тамара успела войти в аварийный режим раньше, чем операторская приняла случившееся.
— Где? — спросила Алиса.
— Северный склад, нижняя галерея. Не в створе, сбоку. Аппарат ушел с линии. Есть повреждение ограждения. Люди за стеной.
Алиса нажала общий аварийный канал.
— Всем постам: остановка операций. БАС-коридор закрыт. Порт подтверждает людей за бетонной стеной. Денис, телеметрия в аварийный пакет. Марина, заморозить модельный слой и сырой поток. Павел, материалы и влажность по последним пяти минутам в отдельный лог.
Слова выходили ровно. Слишком ровно. Она слышала себя так, будто рядом говорила другая руководительница испытаний, пригодная для протокола и не имеющая права помнить собственную фразу.
Оснований для остановки нет.
— Алиса Сергеевна, — сказал Кирилл с административного канала. — Комиссия просит статус.
— Комиссия подождет.
— Там Лебедев…
— Комиссия подождет, Кирилл. Дай мне спасателей.
На экране с камерой северного склада картинка дернулась. Мокрый снег забил обзор, потом камера нашла часть ограждения: желтая балка лежала поперек аварийного прохода, за ней мигал ручной фонарь. Самого БАС не было видно, только белый обломок кожуха у стены и темная полоса на мокром бетоне.
Алиса заставила себя не приближать изображение до тех пор, пока Тамара не даст людей.
— Тамара, пост?
— Двое в укрытии. Один на связи. Второй… — В канале послышалось короткое дыхание. — Второго проверяют. Бригада идет с южного входа.
Павел у стола снял очки и тут же надел обратно. Марина смотрела на свой слой так, будто могла вернуть метку назад одним правильным запросом.
Денис наконец заговорил:
— Я ставлю аварийную копию.
— Не одну. Три. Локально, на сервер комиссии и на внешний регистратор. Без перезаписи.
— Принял.
— И два маркера из «Север-3» в тот же пакет.
Он посмотрел на нее. Не с упреком. Упрек был бы легче.
— Они там.
— Проверь.
Денис проверил. На панели появились две строки с его формулировкой: «визуальный слой выглядит чище ожидаемого при текущей портовой среде». Первая перед стартом. Вторая перед входом в «Север-3».
— Есть, — сказал он.
Алиса кивнула. Горло не слушалось, но командный голос держался.
— Марина, что с расхождением?
— Радарный отклик пришел сбоку, ниже основной зоны. Визуальный слой его не увидел. Карта препятствий пересчиталась только после изменения траектории.
— Почему траектория изменилась?
— Не знаю.
Марина сказала это слишком быстро, без защиты модели. Значит, уже испугалась не обвинения, а настоящей пустоты в объяснении.
— Автопилот?
— Лог говорит, что борт корректировал удержание по ветру. Команда штатная.
— Штатная команда не кладет аппарат в галерею.
— Я знаю.
Алиса не стала добивать. В операторской и так не осталось воздуха для лишнего давления.
Снаружи по стеклу поползла синяя вспышка аварийной машины. Порт за окном больше не был фоном испытания. Он стал местом происшествия.
— Связь со вторым? — спросила Алиса.
Тамара ответила через три секунды.
— Жив. Травма ноги. Сознание есть.
В операторской никто не выдохнул вслух. Облегчение было недопустимо: БАС все равно упал, галерея все равно получила удар, и слово «жив» не отменяло того, что эта минута уже разделила проект на до и после.
— Медики?
— Заходят.
— Хорошо. Денис, ставь контрольную сумму пакета. Марина, сохрани конфигурацию модели. Павел, не закрывай журнал влажности. Все действия только через аварийный режим, без ручного исправления данных.
Кирилл снова вышел в канал:
— Алиса Сергеевна, инспекторская группа идет в операторскую.
За стеклом переговорной Лебедев говорил уже не по телефону, а с двумя людьми сразу. Илья Сафонов шел впереди группы. Не быстро.
Алиса посмотрела на журнал. Две операторские метки. Сырой поток. Параметры фильтрации. Радарный зубец. Красная метка, появившаяся поздно. Все было сохранено, но сохраненное не спасало людей внизу.
Дверь открылась без стука.
— Работы остановить, — сказал Сафонов.
Его голос был ниже, чем Алиса ожидала. Не громкий, не торжествующий. От этого запрет прозвучал окончательно.
— Все операции уже остановлены, — ответила она. — Аварийный протокол активен.
— Любые повторные действия с бортом, моделью, логами и стендом запрещены до распоряжения комиссии.
Марина подняла голову.
— Мы не сможем восстановить первичную причину без технического доступа.
Сафонов посмотрел не на нее, а на Алису.
— Сможете. По копиям, которые уже должны быть созданы. Если не созданы, это отдельный вопрос.
— Созданы, — сказала Алиса.
— Тогда сейчас вы защищаете не причину, а место происшествия.
За его спиной вошли двое из комиссии и сотрудник охраны завода. Один нес пластиковый кейс с пломбами. Второй держал планшет, на котором уже был открыт акт изъятия.
Денис убрал руки от клавиатуры. В этом движении было больше вины, чем в любой фразе.
— Нам нужен доступ к аварийному пакету, — сказала Алиса. — Иначе вы получите красивую пломбу вместо причины.
— Доступ будет через комиссию.
— Через сколько?
— После фиксации.
— Люди внизу уже рискуют второй раз, если мы не поймем, что случилось с траекторией.
Сафонов на мгновение повернул голову к окну. Там синяя вспышка прошла по его лицу и ушла.
— Именно поэтому вы сейчас ничего не исправляете.
Это было не обвинение. Граница.
Алиса ненавидела границы, когда за ними оставался ответ. Но она знала цену чужих рук в первичных данных. Стоило кому-то открыть модель «просто посмотреть», и каждая последующая строка отчета становилась спорной.
— Денис, — сказала она, не отрывая взгляда от Сафонова. — Закрыть сессию. Только чтение. Контрольные суммы на экран.








