В клубе макетной железной дороги всё шло по расписанию, кроме одного поезда.
— Снова минус двенадцать, — сказал я.
На табло возле станции «Берёзовая» загорелось: 14:07:48. По расписанию поезд должен был прибыть в 14:08 ровно.
Сам поезд при этом выглядел совершенно невиновно. Красный тепловоз медленно прокатился вдоль платформы и остановился точно у белой черты.
— Скорость не трогал? — спросил Сергей Андреевич.
— Не трогал.
— Тогда ещё круг.
Мы готовили большой макет к воскресному дню открытых дверей. Поезда ходили сами: программа включала участки пути, переводила стрелки и следила, чтобы два состава не оказались на одной ветке. Возле каждой станции стоял маленький датчик. Когда поезд проходил над ним, компьютер отмечал время прибытия.
Красный состав сделал новый круг.
14:15:48.
— Опять двенадцать секунд, — сказал я.
— Хорошая неисправность, — заметил Сергей Андреевич.
— Это почему?
— Повторяется.
Я сначала решил, что он шутит. Но повторяющаяся ошибка действительно была удобнее случайной. Если поезд каждый раз опаздывает то на секунду, то на двадцать, причин может быть много. А здесь кто-то словно аккуратно отрезал один и тот же кусок времени.
Я поставил телефон на штатив и снял следующий круг. Потом мы посмотрели видео покадрово.
Тепловоз въехал на платформу. Табло отметило прибытие. Через двенадцать секунд состав остановился у белой черты.
— Так он не приезжает раньше, — сказал я. — Компьютер раньше считает, что он приехал.
Сергей Андреевич кивнул.
Под рельсами в начале платформы был спрятан магнитный датчик. На днище каждого состава крепилась маленькая пластинка-магнит. Когда магнит проходил над датчиком, тот замыкал контакт, и программа записывала время.
Я перевернул красный тепловоз на мягкой подставке.
Магнита не было.
— Вот и причина!
— Не спеши.
Я перевернул первый вагон. Пусто. Второй — тоже. На третьем, почти в конце состава, обнаружилась серебристая пластинка.
Я уставился на неё.
— Но тогда он должен отмечаться позже, а не раньше.
— Верно.
Хорошая причина прожила около семи секунд.
Мы проверили датчик станции. Он работал. Поднесли к нему запасной магнит — лампочка на плате мигнула. Провода держались крепко.
Тогда я запустил другой поезд. Синий электропоезд прошёл платформу, и табло показало правильное время.
— Значит, станция исправна, — сказал я.
— Или неисправность зависит от состава.
Я снял с макета красный поезд и поставил вместо него зелёный. Всё совпало. Потом вернул красный — опять минус двенадцать.
Я начал подозревать программу, хотя это было неудобно. В программе ничего не меняли уже неделю.
— Можно посмотреть журнал датчиков? — спросил я.
Сергей Андреевич открыл окно, где шли короткие строки: номер датчика, время, состояние. Перед отметкой станции «Берёзовая» у красного состава появлялась ещё одна запись.
Датчик 17.
— А где семнадцатый?
Мы нашли схему. Датчик 17 стоял перед въездом в тоннель, примерно в трёх метрах от платформы.
— Он не должен считать прибытие, — сказал я.
— Не должен.
Но в настройках маршрута красного поезда было записано иначе: событие «прибытие на Берёзовую» запускалось не датчиком 21 у платформы, а датчиком 17 перед тоннелем.
— Всё, нашли.
Я уже потянулся менять номер, но Сергей Андреевич снова остановил меня.
— Сначала выясним, почему так стало.
Это казалось лишним. Ошибка была перед глазами. Но мы открыли копию настроек за прошлую неделю. Там тоже стоял датчик 17.
— Значит, всегда было неправильно?
— Тогда почему раньше время совпадало?
Я замолчал.
Мы подняли старые записи. До четверга красный поезд проходил от датчика 17 до белой черты ровно за двадцать четыре секунды. Теперь — за двенадцать.
Вот это уже было интереснее.
Я снова включил поезд и лёг на живот у края макета, чтобы видеть рельсы перед тоннелем. Красный тепловоз прошёл поворот без остановки. Раньше там был медленный участок: программа снижала напряжение на рельсах, чтобы поезд не влетал в станцию слишком быстро.
Теперь он ехал почти с той же скоростью, что и на прямой.
— Ограничение скорости пропало, — сказал я.
Мы проверили блок питания участка. Он оказался исправен. Потом нашли настройку: в четверг после замены стрелки участок перед тоннелем объединили с соседним. Медленная зона стала короче.
Получалось забавно. В системе было две старые ошибки, которые много месяцев взаимно скрывали друг друга. Компьютер считал прибытие слишком рано — у тоннеля. Но поезд после тоннеля шёл медленно, и записанное время случайно совпадало с расписанием. Когда путь переделали и поезд ускорился, совпадение исчезло.
— Если просто вернуть старую скорость, табло опять станет правильным, — сказал я.
— Станет.
— Но неправильно правильным.
Сергей Андреевич улыбнулся.
Мы поменяли событие маршрута: прибытие теперь отмечал датчик 21 у платформы. Потом отдельно настроили скорость перед станцией, чтобы поезд тормозил плавно, а не ради красивой цифры на табло.
Красный состав пошёл на проверочный круг.
14:47:59.
Я нахмурился.
— На секунду раньше.
— Переживём?
— Нет.
Оказалось, магнит на третьем вагоне проходил над датчиком за секунду до того, как тепловоз доходил до белой черты. Мы переставили магнит под середину локомотива и снова запустили состав.
14:56:00.
Точно.
На следующий день я приклеил рядом с компьютером бумажку: «Если цифра стала правильной, это ещё не значит, что причина правильная». Сергей Андреевич прочитал и ничего не сказал.
В воскресенье посетители стояли у макета в два ряда. Красный поезд вошёл на «Берёзовую», табло показало время, состав мягко остановился у платформы.
— Прямо как настоящий, — сказал мальчик лет пяти.
Я посмотрел на часы.
Ровно.
И впервые за три дня не стал искать, где спрятались двенадцать секунд.