Logistyka

【Factorio】Zapobieganie zakleszczeniu pociągów – przyczyny i projektowanie obejść

Gdy pociągi zatrzymują się na skrzyżowaniach lub przed stacjami w Factorio, przyczyny zwykle sprowadzają się do trzech czynników: „rozmieszczenia sygnałów", „przepustowości skrzyżowania" i „braku linii oczekujących przed stacją". W wersji Vanilla v2.0 i Space Age zasady kolei są wspólne, więc prawidłowe zrozumienie tych aspektów pozwala znacznie zmniejszyć ryzyko zakleszczenia.

Logistyka

【Factorio】Zapobieganie zakleszczeniu pociągów – przyczyny i projektowanie obejść

Gdy pociągi zatrzymują się na skrzyżowaniach lub przed stacjami, przyczyny zwykle sprowadzają się do trzech czynników: „rozmieszczenia sygnałów", „przepustowości skrzyżowania" i „braku linii oczekujących przed stacją". W Factorio (popularnej grze strategicznej o zarządzaniu fabryką) w wersji Vanilla v2.0 i Space Age zasady kolei są wspólne, więc prawidłowe zrozumienie tych aspektów pozwala znacznie zmniejszyć ryzyko zakleszczenia.

Pamiętam, gdy po raz pierwszy połączyłem kilka kopalni – lista oczekujących przed stacją wysunęła się na rozgałęzienie i całkowicie sparaliżowała linię. Kiedy prawidłowo wyznaczyłem linie oczekujące i zmieniłem rozwidlenia przed skrzyżowaniem na sygnały łańcuchowe, przepływ natychmiast wrócił do normy.

W tym artykule porządkuję użycie sygnałów zwyczajnych i łańcuchowych, a następnie wyjaśniam, w jakich warunkach wybierać linie jednokierunkowe, dwukierunkowe, ronda czy stosy. To nie jest o naprawianiu po fakcie – to praktyczne podejście do zapobiegania zakleszczeniom już na etapie projektowania.

Wersje docelowe i założenia wstępne

Wyjaśnienie wersji docelowych

Ten artykuł opiera się na Factorio Vanilla v2.0 i Space Age. Space Age to płatne DLC, które według '''Space Age - Factorio Wiki''' zostało wydane 21 października 2024 roku.

Ważne jest, że zasady zapobiegania zakleszczeniu pociągów są prawie identyczne w obu wersjach. Idea umieszczania przed skrzyżowaniem i odbierania pociągu po drugiej stronie działa tak samo. Gdy rozszerzałem istniejący świat na v2.0, zasada przesunięcia wejścia skrzyżowania na sygnał łańcuchowy działała bez zmian. Ta spójność przekracza różnice między wersjami – decyduje przede wszystkim logika projektu.

Z drugiej strony w Space Age fabrika jako całość obsługuje większą skalę logistyki, co oznacza, że więcej pociągów kursuje w sieci. To nie zmienia samych sygnałów – raczej zaniedbania w podstawach stają się bardziej widoczne, gdy transportujesz więcej materiałów.

Space Age/ja wiki.factorio.com

Zakres tego artykułu i założenia

Od tego miejsca skupiam się wyłącznie na zapobieganiu zakleszczeniu w sieciach kolei. Konkretnie mówię o skrzyżowaniach, rozgałęzieniach, wymianach linii jednokierunkowych, dwukierunkowościach, liniach oczekujących przed stacją, rondach i ograniczaniu liczby pociągów za pomocą .

Nie zagłębiać się w szczegóły logistyki międzyplanetarnej czy sieci kosmicznych w Space Age. To fascynujące, ale sedno problemu zakleszczenia to „gdzie pociąg powinien czekać i gdzie nigdy nie powinien się zatrzymać" – rozwiązane przez geometrię torów.

Niezależnie od liczby planet, jeśli użyjesz przed wejściem skrzyżowania, możesz się zablokować. Jeśli brakuje przestrzeni oczekiwania przed stacją, tamtejsi pociągi będą blokować linię główną.

Przez zakleszczenie rozumiem stan, w którym pociągi czekają nawzajem i się nie poruszają – stan, który można rozwiązać tylko ręcznie. Choć może wyglądać na „trochę zagęszczenia", rzeczywista kolizja rezerwacji trasy może prowadzić do permanentnego zatrzymania – to nie to samo co zwykła zator.

💡 Tip

W tym artykule rozróżniam „zatrzymanie spowodowane błędem sygnału" od „chronicznego zakleszczenia spowodowanego niedostateczną przepustowością". Sygnały mogą być prawidłowe, ale małe rondo czy krótka linia czekająca i tak się zablokują. To rozróżnienie wyjaśnia przyczyny szybciej.

Mini słowniczek terminów

Zanim przejdziesz dalej, ustalmy terminy. Będę je wyjaśniać przy pierwszym użyciu w tekście, ale warto je sobie teraz przejrzeć.

sprawdza, czy pociąg może wejść do następnego bloku. Pasuje do prostych odcinków lub miejsc, gdzie ścieżka jest już jasna. Problem: na rozgałęzieniach lub skrzyżowaniach pociągi mogą wejść do środka i stanąć, blokując inny ruch.

nie patrzy tylko na następny blok – sprawdza, czy ścieżka aż do następnego lub stacji jest wolna. Zasada: „jeśli mogę się tu zatrzymać, nie wchodzę". Dlatego właśnie przed skrzyżowaniami i rozgałęzieniami używamy sygnałów łańcuchowych.

to odcinek toru podzielony sygnałami. Zasadniczo jeden blok = jeden pociąg. Pociągi zajmują i zwalniają bloki, poruszając się. Mówiąc wprost – gdy pociągi się blokują, to zwykle z powodu sposobu podziału bloków, a nie liczby pojazdów.

Te trzy pojęcia to fundament. Gdy je rozumiesz, reguła „sygnał łańcuchowy na wejściu, zwyczajny na wyjściu" staje się naturalna.

Ten artykuł to głębokie zanurzenie w temat zapobiegania zakleszczeniom. Jeśli chcesz zobaczyć całościową strukturę sieci kolejowej, przełączaj się między tym artykułem a sekcją rodzica (pillar) – szczególnie podstawowe formy linii dwukierunkowych, rozmieszczenie stacji, zasady linii oczekujących i role sygnałów są łatwiejsze do zrozumienia w szerszym kontekście projektowania sieci.

Z mojego doświadczenia zakleszczenia rzadko wynikają z pojedynczego błędu. Zwykle to kombinacja „skrzyżowanie" + „stacja" + „przepustowość linii głównej". Dlatego każda sekcja poniżej nie mówi o jednopunktowych poprawkach – skupiam się na „gdzie zatrzymać, a gdzie przepuścić" w całej sieci.

w Factorio – przyczyny i sposób rozpознawania

Definicja zakleszczenia i różnica od zatoru

W Factorio zakleszczenie to stan, w którym pociągi czekają nawzajem i się nie poruszają – można je rozwiązać tylko ręcznym przesunięciem. Choć wygląda na „trochę zatoru", rzeczywista sytuacja to wzajemna kolizja rezerwacji trasy i brak ruchu mimo upływu czasu. W '''Tutorial: Train signals - Factorio Wiki''' wyjaśniono, że nawet 2 pociągi mogą to spowodować. To naprawdę ważne – to nie problem dużych sieci.

Z drugiej strony zator to opóźnienie, po którym ruch wraca, gdy przód zwalnia. Długie kolejki na skrzyżowaniu, oczekiwanie na rozładunek – denerwujące, ale logicznie rozwiąże się z czasem. Zator to „wolno, ale się rusza", zakleszczenie to „ścieżka się zerwała i nie rusza się wcale".

Pamiętam, gdy miałem tylko 2 pociągi i były zablokowane – nie miałem pojęcia, dlaczego. Przyczyna była prosta: przed skrzyżowaniem pozwoliły pociągom wejść do środka i stanąć tam. To nie liczba pociągów decyduje – to gdzie mogą stanąć.

Tutorial:Train signals/ja wiki.factorio.com

3 główne wzory powstawania

W praktyce zakleszczenia rozbijają się na 3 typy. Wszystkie mają wspólny mianownik: pociąg stanął w miejscu, gdzie nie powinien.

Typ 1: Czekanie w skrzyżowaniu. Jeśli umieścisz przed skrzyżowaniem, pociąg myśli „następny blok jest wolny, mogę wjechać". Wjechał, ale wyjście jest zatkane – teraz pociąg stoi w środku, blokując inny kierunek. To klasyk i nawet doświadczeni gracze to robią.

Typ 2: Czołowe zatrzymanie na linii jednokierunkowej. Brak wymiany lub linii przemiany pozwala dwóm pociągom z różnych stron zajrzeć do tego samego odcinka, gdzie czekają nawzajem. Linia jednokierunkowa bez przemiany jest od razu niestabilna, gdy transport rośnie.

Typ 3: Linia czekająca przed stacją zajmuje tor główny. Zbyt krótkie miejsca czekania sprawią, że pociągi w oczekiwaniu wysunią się na rozgałęzienie lub tor główny, a to zablokuje całą sieć. Problem wygląda jak problem stacji, ale naprawdę to kwestia geometrii czekania.

Te 3 typy są na pozór różne, ale źródło jest wspólne: projekt nie określił, gdzie pociągi mogą stanąć. Na skrzyżowaniu, na linii jednokierunkowej czy przed stacją – zasada jest taka sama.

💡 Tip

Zapobieganie zakleszczeniom to nie „zmniejsz liczbę pociągów" – to ograniczeń miejsc zatrzymywania. Skoro 2 pociągi mogą się zablokować, wina to rozmieszczenie, nie liczba.

Jak rozpoznać w terenie

Gdy patrzysz na zatrzymany tor, nie patrz na całkowitą liczbę pociągów – patrz na gdzie stoi pierwszy pociąg w kolejce. To szybko pokazuje, co się stało.

Kluczowe to między którymi sygnałami stanął pociąg. Jeśli czołg zatrzymał się w skrzyżowaniu, na rozgałęzieniu czy zaraz za połączeniem, to wpuszczanie było zbyt liberalne – „może stanąć w środku". Jeśli czeka daleko przed, to sygnały pracują prawidłowo, a problem to przepustowość albo brak miejsc czekania.

Ważne też: czy pociąg stoi przed skrzyżowaniem czy w nim? Przed = „przynajmniej nie zamknie innym", w środku = „blokuje wszystkich dokoła".

Patrz też, czy koniec kolejki czekającej wysunął się na rozgałęzienie lub tor główny. Jeśli pociąg czeka przed stacją, ale jego ogon zajmuje rozgałęzienie – to rozgałęzienie jest zablokowane dla innych pociągów. Problem wygląda jak „stacja się nie wybiega", ale naprawdę to geometria czekania.

Empirycznie: zakleszczenie to zwykle „1 pociąg w złym miejscu", nie masowa kolizja. Gdy widzisz całą sieć w czerwonym świetle, zwykle są to efekty domina – początek to jeden pociąg w środku skrzyżowania lub jeden na rozgałęzieniu.

Główna przyczyna 1: Błędy w rozmieszczeniu sygnałów

Różnica w zachowaniu vs

Tu jest matnia. Nazwy są niejasne, ale zachowanie jest jasne. patrzy tylko na następny blok. Jeśli to miejsce jest wolne, wpuszcza pociąg. Problem: jeśli skrzyżowanie i jego wyjście są zatkane, pociąg wjechał i stoi w środku.

czyta naprzód – do następnego lub stacji. Myśli: „czy mogę wyjść stąd?" Jeśli odpowiedź to „nie", pociąg czeka przed wejściem.

Ta różnica na skrzyżowaniach jest gigantyczna. Skrzyżowanie ze zwyczajnymi sygnałami wygląda bezpiecznie (są sygnały!), ale w praktyce to „czekanie wewnątrz" w działaniu. Pamiętam, że nie rozumiałem, czemu czerwone światło pokazuje, skoro coś nie tak. Sygnał tam jestprawidłowa kontrola zatrzymania.

Reguła podstawowa: rozwidlenia i skrzyżowania

Reguła jest prosta: łańcuchowy na wejściu, zwyczajny na wyjściu (ang. „chain in, rail out"). To wystarczy do eliminacji początkowych problemów.

Logika: wejście musi „widzieć dość daleko, by nie wpuszczać bez Exit-planu". Wyjście powraca do normalnego zarządzania blokami. Pociągi czekają poza skrzyżowaniem, wewnątrz nie ma oczekiwania. Taka konstrukcja zmienia charakter skrzyżowania z „miejsca, gdzie mogę stanąć" na „przejście dla pociągów".

W Wiki i poradnikach Community pojawia się to wielokrotnie: zmiana sygnałów na wejściu skrzyżowania z zwyczajnych na łańcuchowe zmniejsza zatrzymania w środku. Moje doświadczenie: większość moich „zatykających się" skrzyżowań miała zbyt liberalne wpuszczanie, nie za mało sygnałów.

💡 Tip

Gdy skrzyżowanie się tyka, patrzę: „czy ten pociąg miał prawo tam wejść?" Jeśli wejście jest łańcuchowe, ta ocena jest łatwa.

Zmiana na łańcuchowy przy krótkim wyjściu

Podstawowa reguła: wyjście zwyczajne. Ale jest jeden praktyczny wyjątek: gdy pole tuż za skrzyżowaniem jest krótkie.

Jeśli za skrzyżowaniem jest kolejne rozgałęzienie, połączenie lub wjazd do stacji – pociąg może wyjść ze skrzyżowania, ale jego ogon wciąż tam jest. Wtedy zamiast zwyczajnego na wyjściu użyj łańcuchowego, aby przepuścić tylko, gdy cały pociąg zmieści się w bezpiecznej strefie.

To ten „short exit chain signal" z porad społeczności. Skrzyżowanie fizyczne nie jest tym samym co koniec kontroli skrzyżowania. Pociąg liczy się „czyściutki" jak w pełni przeszedł bezpieczną ścieżkę.

Zdarzył mi się ten problem na małych połączeniach przed stacją. Zwyczajny na wyjściu = pociąg wysunął się, ale ogon został. Zmiana na łańcuchowy = nagle spokój. Edycja wygląda blaho, ale efekt jest duży.

Typowe błędy i procedura naprawy

Początkujący najczęściej robią to: wszystkie wejścia skrzyżowania to . Naturalnie – buduje się w linii prostej, sygnały przybywają. Ale na skrzyżowaniu to nie działa.

Naprawa w tej kolejności:

  1. Sprawdź bezpośrednio przed skrzyżowaniem
  2. Jeśli to zwyczajne, zamień na łańcuchowy
  3. Za skrzyżowaniem postaw zwyczajny
  4. Jeśli pole za wyjściem jest krótkie aż do kolejnego rozgałęzienia/stacji, wyjście też zmień na łańcuchowy
  5. Sprawdź, czy pociągi czekają przed skrzyżowaniem, a nie w środku

Sedno to nie więcej sygnałów, ale wysunięcie punktów zatrzymywania poza skrzyżowanie. Samą zmianę na łańcuchowy widzę jako przełom – nieraz jedna zmiana przywracała normalność bez ingerencji ręcznej. To czuć jako „zaostrzenie warunków wejścia, aby uniknąć tragedii".

Podpisy dla ilustracji: „Zmiana wejścia na łańcuchowy", „Łańcuchowe wyjście przy krótkim polu"

Podpisy mają pokazywać, co się zmienia i dlaczego.

„Zmiana wejścia na łańcuchowy" – porównaj zwyczajny (pociąg wjechał, teraz stoi w środku) z łańcuchowym (czeka aż do pełnego przejścia). Kontrast powinien ukazywać cel: „w środku nie czeka".

„Łańcuchowe wyjście przy krótkim polu" – scena: krótkie pole, zaraz kolejne rozgałęzienie. Wyjście zwyczajne = ogon w skrzyżowaniu. Łańcuchowe = bezpieczna ścieżka do następnego bloku. Podpis: „Pociąg czeka aż do pełnego wyjścia z zagrożonej strefy".

Oba obrazy mają pokazać: gdzie stanął pociąg i dlaczego to jest problem czy rozwiązanie.

Sygnały łańcuchowe brzmią skomplikowanie, ale praktyka to: zwyczajny patrzy bliżej, łańcuchowy dalej. To wystarczy. Zmiana przed skrzyżowaniem robi różnicę między „czasami się blokuje" a „prawie nigdy".

Główna przyczyna 2: Niedostateczna przepustowość skrzyżowań i rond

Rozmiar ronda i liczba pociągów

Tu jest pułapka: nawet prawidłowe sygnały na małym rondzie się blokują.

Ronda wyglądają ładnie – cztery drogi, kompaktowo. Ludzie je używają. Ale gdy ruch rośnie, mały obwód zbiera pociągi z czterech stron, wewnątrz jest chaos, każdy czeka na każdym, a wejścia na zmianę gaśną.

Zator na rondzie to pociąg wewnątrz, czekając na wyjście; następny nie może wejść; czekający na linii głównej się robi dłuższy. Mały obwód to takie niemal „sakwa bez dna" – wychodzi się trudno, wchodzi się łatwo.

Community mówi: „rondo zbyt małe względem najdłuższego pociągu = pociąg jego własnym ogonem blokuje sobie drogę". Zdarzyło mi się – zrobiłem rondo na krótkie pociągi, potem przyszły długie i bum, całkowite zatrzymanie. Projektowanie z 1-4-0 zmienia obliczenia.

Najgroźniejsze to, gdy rondo zawsze ma kogoś w środku – to nie skrzyżowanie, to pułapka.

(Uwaga) Społeczność testowała skrzyżowania T-kształtne vs ronda. Niektóre testy wykazały wyższą przepustowość T-kształtnego, ale to zależy od konfiguracji, długości pociągu i sygnałów. Nie generalizuj na „T zawsze lepsze" – zależy od warunków.

„Tylko 1 pociąg naraz" – zalety i wady

Bezpieczna taktyka: ograniczyć liczbę pociągów jednocześnie w rondzie na 1.

Wejścia na , rondo w środku puste, wychodzą spokojnie. Problem w rondzie się zmniejsza, pojawia się przed nim – naturalne „odsunięcie czekania".

Zaleta: nikt się nie blokuje w środku, problem się przenosi i jest czytany łatwo.

Wada: kolejka przed rondem się wydłuża. Jeśli to nie jest pilnowane, przesunięcie problemu oznacza, że tor główny czy stacja przed rondem teraz czeka. To nie wyeliminuje zatoru, tylko jego miejsce.

Więc ta strategia zadziała, ale wymaga wbudowanych linii czekania poza rondem – w stacjach, na bocznych torach. Rondo zmienia zasadę, ale saldo przechodzi na zewnątrz.

💡 Tip

Rozszerzył em rondo, zamiast ograniczać wejście. I dalej miałem problem, bo czekający przed rondem wysyłał się na rozgałęzienie. Dopiero dodanie linii czekania przed stacją rozwiązało sprawę. Problem nie zmienił się – przesunął.

Jeśli główna czekająca rośnie, zwiększ linie czekania na stacjach

Skoro rondo przepuszcza mniej, to gdzie czekać? Na liniach czekania (stackers) przed stacją.

Zasada: czekaj gdzie indziej, nie na linii głównej. Stacja potrzebuje czasu? Załóż czekającą. Linia główna powinna być wołna – czekającą chroni sieć.

Jeśli rondo ograniczy przepływ, ale czekająca przed stacją jest krótka, to czekający wysyłają się na tor główny – a to to samo co bez ronda. Przepuśćmy, że rondo jest bezpieczne, ale jego wartość znika, jeśli czekająca jest słaba.

(Uwaga) Linia czekająca powinna zmieścić całą długość pociągu w jednym bloku sygnałów. Dla 1-4-0 community podaje ok. 37 tili jako przybliżenie (baza wspólnotowa, nie oficjalna). Nie memoryj liczb – pociąg powinien się zmieścić całkowicie.

Ronda + czekające to tandem. Jeśli jedno zmienia się bez drugiego, problem się przenosi.

Podpisy dla ilustracji: „Zbyt małe rondo – NG", „Rozsądny rozmiar i sygnały – OK"

„Zbyt małe rondo – NG" – pokaż małe rondo, pociąg wewnątrz, inne nie mogą wejść, czekająca wysuwająca się. Podpis: „Pociąg w środku blokuje przepływ, kolejka opuszcza strefę bezpieczną".

„Rozsądny rozmiar i sygnały – OK" – większe rondo, wejścia łańcuchowe, spokojny przepływ. Podpis: „Kontrola wejścia + adekwatny rozmiar = przepływ".

W sensownym zestawaniu pokaż, że problem to nie sama wielkość, ale przepustowość zagrażająca sąsiednim torom.

Główna przyczyna 3: Brak linii czekania przed stacją

Rola stackers (linii czekania)

Gdy stacja się zatkuje, przyczyną rzadko jest rozładunek. To gdzie czekają pociągi, które nie mogą wejść. Tu wchodzą stackers – dedykowane linie czekania tuż przed stacją.

Rola: przesunąć czekanie z toru głównego do strefy bezpiecznej. Gdy pociąg czeka na linii głównej, zajmuje miejsce, rozgałęzienie się tyka, skrzyżowanie dalej też. Mały opóźnienie stacji staje się paraliżem całej sieci.

Pamiętam – stacja rud, linia czekająca za krótka, pociągi czekały na rozgałęzieniu. Wydłużyłem czekającą, znowu przepływ. To nie była stacja słaba – to była geometria czekania.

Stackers to bufor ochrony linii głównej. Im bardziej obciążona stacja, tym bardziej potrzebna dedykowana czekająca.

Długość pociągu i długość bloku czekającego

Najważniejsze: najdłuższy pociąg musi zmieścić się całkowicie w jednym bloku czekającym.

Community to powtarza, bo to kluczowe. Krótka czekająca = pociąg „czeka", ale jego ogon zajmuje rozgałęzienie = sieć wciąż zablokowana.

Biorę 1-4-0. Krótko licząc, community szacuje ok. 37 tili (znowu, to baza wspólnotowa, nie oficjalna). Ważniejsze: cały pociąg + margines musi być niezauważony dla reszty sieci.

(Uwaga) Stacja obsługująca liczbę pociągów także to część pojemności. Jeśli przyjmuje 2 jednocześnie, czekająca dla 3 zaraz się pojawia – trzeba zwiększyć stackery lub zmniejszyć napływ.

Czekająca to nie hobby – to obowiązkowa infrastruktura dla stabilności.

Błąd: czekająca zajmuje rozgałęzienie / linia główna

Najczęści błąd: czekająca wysyła się na rozgałęzienie.

Pociąg czeka, ale jego ogon zajmuje rozwidlenie – pociąg, który chce jechać w innym kierunku, nie może. Stacja wciąż go obsługuje, ale on blokuje inne drogi.

Drugie – czekająca wysyła się na tor główny. Czekanie tam oznacza zwolnienie dla pociągów przejazdu. To jak czekać na pasie przejazdu.

Zdarzyło mi się – dwukolumnowa czekająca, pociąg zaraz wysyłał się na rozgałęzienie. Wydłużyłem czekającą, przesunąłem sygnał – problem znikł. To było przesunięcie „czekam w strefie, która nie blokuje nikomu".

Te błędy są widoczne z lotu ptaka. Czekająca wysyłająca się to zaraz problem.

💡 Tip

Czekająca: patrzę, czy całość pociągu + margines się mieści bez dotykania rozgałęzienia. Krótka czekająca na więcej pociągów jest gorsza niż długa na mniej.

Obwody i train limit – zasady

przez obwody jest potężna – zamykaj stacje, które są pełne, otwieraj, które są puste. Ładny dla dużych sieci.

Ale – czekająca wciąż musi istnieć. Train

article.share

R

RinSeo

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