Логистика

Factorio железнодорожные сигналы: принципы работы и построение сетей

Когда я строил свой первый перекрёсток, первый поезд прошёл нормально, но во время прихода второго поезда он остановился прямо посередине, полностью заблокировав перекрёсток. После замены входа на сигнал цепи поток улучшился радикально, и я понял, что обычные и цепные сигналы имеют совершенно разные роли.

Логистика

Factorio железнодорожные сигналы: принципы работы и построение сетей

Когда я строил свой первый перекрёсток, первый поезд прошёл нормально, но во время прихода второго поезда он остановился прямо посередине, полностью заблокировав перекрёсток. После замены входа на сигнал цепи поток улучшился радикально, и я понял, что обычные и цепные сигналы имеют совершенно разные роли.

Эта статья предназначена для начинающих и опытных игроков в Factorio, которые только начали строить железнодорожную сеть. Здесь я разберу различия между позициями остановки и диапазонами резервирования, помогу правильно использовать разные типы сигналов и научу создавать перекрёстки и входы на станции, которые не заторяются.

Основная идея проста: используйте двухпутные участки в одном направлении, на входах перекрёстков ставьте сигналы цепи, на выходах — обычные сигналы, а очереди хранения размещайте вне основной линии. Это избавит вас от большинства типичных дедлоков. Я также расскажу о разделении блоков цепи внутри перекрёстков, техника которого немного изменилась с версии 2.0.

Версия и предварительные условия в этой статье

Здесь обсуждаются железнодорожные сигналы Factorio версий 1.1–2.0. Базовые спецификации обычных и цепных сигналов одинаковы в этом диапазоне, и основные принципы — «вход цепной, выход обычный» и «поезда управляются блоками» — остаются неизменными. Официальное руководство «Tutorial: Train signals» также строится на этих основах.

Терминология здесь соответствует официальной вики: обычный железнодорожный сигнал (Rail signal), сигнал цепи (Rail chain signal), блок, резервирование маршрута, перекрёсток, очередь хранения (стакер). Хотя иногда используются сокращения вроде «цепной сигнал» или «обычный сигнал», они обозначают именно эти полные названия. Единообразная терминология критична для понимания того, где должен остановиться поезд и в каких условиях он может войти.

Ключевой момент: поезд читает только сигналы справа от себя по направлению движения. На двухпутных участках это работает естественно, но на двусторонних однопутных участках нужны сигналы с обеих сторон. Это частая причина ошибок — сигнал есть, но поезд его не видит и не может ехать.

Что касается различий между версиями, то 1.1 и 2.0 используют одну философию, но в старых руководствах часто рекомендовалось не разделять перекрёстки слишком мелко. В версии 2.0 сообщество распространяет практику тонкого разделения перекрёстков цепными сигналами, которая оказывается удобнее в реальном использовании. Это не изменение официальных спецификаций, а опыт сообщества. В этой статье я придерживаюсь основных принципов, но с учётом лучших практик 2.0.

Также важно помнить, что установка или удаление сигналов и рельсов вызывает полную переоценку маршрутов всех поездов. На больших сетях это заметно: все поезда одновременно замедляются. Это не поломка, просто переоценка, но с большим числом поездов эффект существенен. Поэтому крупные переделки лучше выполнять в часы низкой активности.

Основы железнодорожных сигналов: блоки и направление движения

Блок как минимальная единица безопасности

Главное понимание при работе с железнодорожными сигналами — это «сигналы разделяют путь на блоки». Блок — это безопасная зона для поезда, и обычно только один поезд может находиться в одном блоке. Это основа предотвращения столкновений. Цвет сигнала — это просто способ показать, пуста ли секция впереди.

Когда вы ставите обычные сигналы на равном расстоянии на прямом пути, каждый сигнал создаёт новый блок. Следующий поезд может войти в предыдущий блок, как только первый его покинет. Поэтому удобнее думать о путях не как о едином целом, а как о последовательности безопасных секций. Как только вы это поймёте, сигналы перестают быть просто символами и становятся организацией пространства.

На развилках и слияниях путаница часто происходит из-за непонимания разделения блоков. Если две ветки соединяются в один блок, то два поезда не могут использовать их одновременно, даже если они не пересекаются. Правильное разделение блоками позволяет независимым маршрутам работать параллельно. Основная идея входных цепных и выходных обычных сигналов на перекрёстке — это не позволять поезду войти в опасную зону, если он не может полностью пройти. Это вопрос организации блоков.

Правостороннее движение и двусторонние линии

Другой критически важный момент: поезд читает только сигналы справа по направлению движения. Если сигнал находится слева, этот поезд его не заметит.

На двухпутной односторонней линии это просто — поезда обоих направлений видят сигналы с нужной стороны. Но если вы хотите использовать один рельс в обе стороны, вам нужны сигналы с обеих сторон для каждого направления.

Это одна из самых коварных ошибок. Рельс соединён, но поезд не движется, потому что не видит нужного сигнала. Я потратил много времени на поиск причин, подозревая ошибки в расписании и топливе, пока не понял: сигнал просто был не с той стороны.

Tutorial:Train signals/ja wiki.factorio.com

Самодиагностика с помощью визуализации блоков

Когда вы сомневаетесь, включите визуализацию блоков. Увидев цветовую карту, вы гораздо быстрее поймёте, как разделен путь. На прямых участках, развилках, слияниях и перекрёстках вы сразу увидите, сколько там блоков. Это объясняет, почему система заторяется в определённых местах.

Ищите два вещи: блок разделяется ли перед позицией остановки и нет ли больших однородных зон в развилках или слияниях. Если перекрёсток весь одного цвета, там может быть только один поезд. Если внутри много цветов, несколько поездов могут двигаться параллельно.

Частая проблема: разные маршруты одного цвета. Это значит, что из-за недостатка сигналов они объединены в один блок. Если поезд ждёт на одном маршруте, другой не может идти, даже если они не пересекаются. Визуализация это показывает сразу.

💡 Tip

Когда поезда заторяются, сначала проверьте две вещи: видит ли поезд сигнал с нужной стороны и является ли следующий блок после позиции остановки отдельным блоком.

Различия между обычным и цепным сигналами

Поведение обычного сигнала

Обычный железнодорожный сигнал работает просто: он смотрит только на один блок впереди. Впереди пусто — сигнал зелёный, впереди занято — красный. Это подходит для мест, где поезд может долго ждать без вреда.

Такие места — длинные прямые участки, ряды ожидания перед станциями. Если поезд останавливается там на минуту, это нормально, потому что он не блокирует перекрёсток.

Начинающие обычно используют обычные сигналы везде. Но это вызывает проблему на перекрёстках: поезд входит в перекрёсток (сигнал зелёный, впереди свободно), но застревает внутри, потому что выход забит. Это типичная ошибка. Обычный сигнал не смотрит дальше одного блока, поэтому он пропускает поезда, которым потом деваться некуда.

АспектОбычный сигналСигнал цепи
ПрименениеДлинные участки, очереди ожиданияВходы перекрёстков, входы развилок, однопутные входы
Диапазон видимости1 блок вперёдДо следующего сигнала или выхода
Долгие остановкиНормальноНе рекомендуется
ЦветаЗелёный, жёлтый, красныйЗелёный, жёлтый, красный, синий

Поведение и 4 состояния цепного сигнала

Цепной сигнал гораздо осторожнее. Он смотрит не на один блок, а на путь до следующего сигнала или выхода. Ещё важнее: он проверяет, может ли маршрут быть зарезервирован. Это значит, что поезд впускается только если он сможет полностью пройти, не застряв.

Это необходимо на перекрёстках, развилках, однопутных участках — везде, где остановка внутри создаст проблемы.

Цепной сигнал имеет 4 состояния:

СостояниеЗначение
ЗелёныйВыход впереди свободен, маршрут зарезервирован, можно ехать
ЖёлтыйВпереди цепной сигнал жёлтый, но проход возможен
КрасныйМаршрут не зарезервирован, нельзя входить
СинийЧастичная свобода — из нескольких возможных выходов свободны не все

Синий цвет часто путает. Это не значит «можно ехать». Это значит, что одна развилка может быть свободна, а другая — нет. Автоматический поезд выберет свободный маршрут, если он соответствует его расписанию.

Ещё один момент: автоматические поезда переоценивают маршрут, если ждут у цепного сигнала. Сообщество упоминает примерно 5 секунд, но точное время не официально. Так что здесь уместна осторожность в описании.

連動式列車用信号 - Factorio Wiki wiki.factorio.com

Где ждать, где нельзя останавливаться

Правило просто: долгие ожидания — обычный сигнал, входы с проблемой при остановке — цепной сигнал.

Перед станцией в очереди ждут? Обычный сигнал. Вход на перекрёсток? Цепной сигнал. На перекрёстке поезд не должен застревать, поэтому цепной сигнал пропускает его только если он сможет выехать.

Частая ошибка: цепной сигнал в очереди ожидания. Поезды становятся слишком осторожны, не заполняют очередь полностью, и на входе образуется затор. Когда я заменил цепной на обычный в очереди, всё встало на место.

💡 Tip

Если вы не знаете, что выбрать, подумайте: может ли поезд останавливаться здесь на 30 секунд? Если да — обычный, если нет — цепной.

Перекрёстки без заторов: цепной на входе, обычный на выходе

T-образный перекрёсток: минимальная практичная конфигурация

T-образный перекрёсток простой, и на нём хорошо видна основная идея. Входы — цепной сигнал, выходы — обычный. Так поезд входит только если может выехать.

Ставим цепной сигнал перед каждым входом на T-образный перекрёсток. После выхода ставим обычный сигнал на безопасном расстоянии.

Важный момент: выход не должен быть слишком близко к перекрёстку. Нужно место, чтобы целый поезд вышел полностью. Если следующий сигнал слишком близко, задняя часть поезда остаётся в перекрёстке, блокируя остальной трафик. Я это не заметил, и половина поезда осталась в перекрёстке, затопив всю сеть.

Убедитесь: после выхода из перекрёстка достаточно места для одного полного поезда.

Четырёхсторонний перекрёсток: разделение внутри для параллельного трафика

На четырёхсторонних перекрёстках можно увеличить пропускную способность, разделяя внутри цепными сигналами. Идея: некоторые маршруты не пересекаются и могут идти одновременно.

Например, поезд идущий с севера на восток и поезд с юга на запад не пересекаются. Если внутри перекрёстка правильно разделить блоки, оба могут идти параллельно.

Я видел конфигурации, где 4 поезда одновременно проходят четырёхсторонний перекрёсток в разных направлениях. Ключ — не в том, чтобы попускать один поезд за раз, а в том, чтобы разделить блоки так, чтобы независимые маршруты не конфликтовали.

Но учтите: слишком много цепных сигналов замедляет всё. Если предусмотреть слишком много условий, поезда начнут стоять в нерешительности. Разделяйте только там, где необходимо.

💡 Tip

Если четырёхсторонний перекрёсток заторяется, сначала проверьте, хватает ли места после выхода, прежде чем менять внутреннее разделение.

Станции и соединение с основной линией: очереди хранения (стакеры)

Компоненты стакера

Когда несколько поездов используют одну и ту же станцию, не держите их на основной линии — создайте очередь хранения (стакер). Я много раз видел, как поезд ждёт на основной линии перед станцией, блокируя весь трафик позади.

Базовая идея: от основной линии ответвляется стакер, внутри него несколько рядов ожидания, затем слияние к станции. Когда станция занята, поезда ждут в стакере, не трогая основную линию.

Цепной на входе, обычный внутри

На входе в стакер — цепной сигнал. Это гарантирует, что поезд входит только если есть место, куда ему ехать. Внутри стакера — обычные сигналы. Здесь длинные остановки нормальны, это вообще их назначение.

Если весь стакер из цепных сигналов, поезда становятся слишком осторожны и не заполняют очередь полностью.

💡 Tip

Если стакер заторяется, проверьте, дошёл ли затор до входа или локализован в очереди. Первое — проблема в логике входа, второе — недостаточно мест или слишком короткие ряды.

Расчёт количества мест и длины рядов

Стакер размер важен. Если туда поступают например 4 поезда, нужно место для примерно 5. Резерв нужен для синхронизации и волн прибытия.

Длина каждого ряда должна вмещать самый длинный ваш поезд целиком. Иначе часть поезда останется на выходе из стакера, блокируя въезд для других.

Частые ошибки и дедлоки

4 типичных дедлока

Первая ошибка: обычные сигналы по всему перекрёстку. Поезд входит (один блок впереди свободен), застревает внутри, потому что выход забит. Затем другие направления блокируются. Решение: цепной на входе.

Вторая: слишком мало места после выхода. Поезд наполовину в перекрёстке, наполовину в следующем блоке. Остальные не могут ехать. Решение: расширить блок после выхода.

Третья: слишком маленькая круговая развязка при большом потоке. Поезда ждут в кругу, заполняя его, и никто не может войти. Решение: расширить или перейти на четырёхсторонний перекрёсток.

Четвёртая: однопутные участки без плана. Два поезда встречаются лоб в лоб, ни один не может ехать и ни один не может развернуться. Решение: добавить места для разъезда или двухпутные участки.

💡 Tip

Дедлок обычно не из-за недостатка сигналов, а из-за того, что поезд может остановиться там, где это запрещено. Внутри перекрёстка, в круге, на встречной однопутке — это не места для остановки.

Как искать причину: где останавливается поезд?

Когда заторяется, смотрите, где именно поезда остановились.

  • Внутри перекрёстка? Входной сигнал слишком мягкий (обычный вместо цепного) или выход слишком близко.
  • Сразу после выхода? Следующий блок слишком короткий.
  • В кругу развязки? Круг слишком маленький для потока.
  • На однопутной линии? Нет мест разъезда или сигналы не синхронизированы.

Когда вы видите проблему, решение часто одно.

Расширение сети

Двухпутная односторонняя сеть как стандарт

Когда сеть растёт, зафиксируйте двухпутную одностороннюю систему. Например, все поезда ходят вверх по левому пути и вниз по правому. Это упрощает всё: перекрёстки, развилки, станции.

Если постоянно менять направления, потом будет ад. Одна часть сети может быть непредсказуема, другая невнятна, и дельта между ними создаст проблемы.

Цепные сигналы по необходимости

Цепные сигналы мощны, но слишком много их замедляет сеть. Ставьте их только на входах, где остановка внутри плохо. Длинные прямые разделяйте обычными сигналами.

Чеклист для немедленного улучшения

Если сеть заторяется, выполните по порядку:

  1. Убедитесь, что вся основная линия одного направления (не смешано)
  2. Выберите один заторяющийся перекрёсток, поставьте цепной на входе, обычный на выходе
  3. Убедитесь, что после выхода достаточно места для целого поезда
  4. Если есть общая станция, добавьте очередь хранения перед ней
  5. Проверьте, что поезда останавливаются вне перекрёсток, не внутри

💡 Tip

"Где поезд стоит?" — это главный вопрос диагностики.

article.share

R

RinSeo

Factorio 2,000時間超。100駅以上の列車ネットワーク運用実績と Death World マラソンクリアの経験から、物流・防衛の実践ノウハウをお届けします。