Eine ausführliche Anleitung zum Erstellen von Bot-basierten logistischen Zugnetzwerken in Vanilla Factorio.
Einleitung
Was sind Logistikzüge?
Logistikzüge verfügen über ein intelligentes Planungssystem, das jeden Zug anweist, Materialien zu Bahnhöfen zu bringen, die sie nur nach Bedarf anfordern. Dadurch wird eine Versorgungsstation verfügbar, um effizient und ohne die Notwendigkeit mehrerer Züge an eine beliebige von mehreren anfordernden Stationen zu liefern.
Dies ist anders als bei der einfachen Planung, bei der ein Zug auf eine feste Strecke gesetzt wird, um nur bestimmte Haltestellen zu beliefern. Reguläre Züge, die an einem Bahnhof auf leeren Inhalt eingestellt sind, bleiben ebenfalls am Bahnhof, bis sie vollständig leer sind. Dies verringert den Gesamtdurchsatz und macht manchmal das Hinzufügen von Warteschlangen vor einer Station erforderlich. Reguläre Züge neigen auch dazu, lange Ladezeiten an einem Versorgungsbahnhof zu erleiden, wenn der Bahnhof nicht mithalten kann. Natürlich kann eine zeitliche Begrenzungsbedingung gesetzt werden, aber dies führt wiederum dazu, dass der Zug ununterbrochen fährt, was zusätzliche Probleme verursacht.
Mit Logistikzügen werden sie automatisch zu einer anfordernden Station mit wenig Material geschickt, entleeren ihren Inhalt so schnell wie möglich und kehren sofort zu einer verfügbaren Versorgungsstation zurück.
Verwendung für Logistikzüge
Der Einsatz von Logistikzügen erleichtert die Erweiterung einer Basis und kann Ihnen langfristig Kopfschmerzen ersparen. Neue Mining-Außenposten werden automatisch mit dem Netzwerk verbunden und können von überall innerhalb des Netzwerks angefordert werden. Reparaturen können von einer entfernten Station wie Artillerie-Außenposten angefordert werden, und ein Zug mit Material kann automatisch gesendet werden.
Warum Bots?
Bots eliminieren die Notwendigkeit von Gürteln, was wiederum die Notwendigkeit einer Gürtelplanung überflüssig macht und kompaktere Bauweisen ermöglicht. Noch wichtiger ist, dass Bots im Gegensatz zu Gürteln einen im Wesentlichen unbegrenzten Durchsatz durch Geschwindigkeits-Upgrades und das Hinzufügen weiterer Bots zu einem Netzwerk haben.
Kann ich Gürtel benutzen?
Leider hängen einige grundlegende Konstruktionsmechaniken in diesem Leitfaden von der Funktion von Logistiktruhen ab, die nicht mit Gürteln funktionieren.
Haftungsausschluss und Voraussetzungen
Diese Anleitung enthält keine Blaupausen. Sein Zweck ist es, Grundlagen zu vermitteln, damit Sie dieses Wissen erweitern und Ihre eigenen Builds erstellen können, die Ihren Anforderungen entsprechen. Ein sehr grundlegendes Verständnis von Logikschaltungen und ihrer Funktionsweise in Factorio ist erforderlich. Es wird davon ausgegangen, dass alle Züge zweigleisig in eine Richtung fahren. Auch die Schienensignalisierung wird nicht erläutert; Denken Sie einfach an dieses Grundprinzip für jede Kreuzung: Kette davor, Signal danach. Die Designs in diesem Handbuch sind möglicherweise auch nicht die effizientesten oder es können Fehler enthalten sein. Wenn es etwas gibt, das besser gemacht werden kann, hinterlassen Sie bitte einen Kommentar unten!
Grundlegende Ausgangs-(Lade-)Station
- Dieses Beispiel verwendet eine Station, die nur Eisenplatten lädt, die aus einer Schmelzanlage stammen.
- Nennen wir die Station „Iron – Out“. Alle nachfolgenden Stationen, die Eisenplatten ausgeben, erhalten den gleichen Namen. Wir wollen eine Signalausgabe, sobald alle Requester-Truhen gefüllt sind, die dann den Zugstopp mit der Option Set Train Limit aktivieren. Dieser Signaltyp kann beliebig sein; Wir verwenden ein Zughaltesymbol, um das Zugbegrenzungssignal darzustellen.
- Diese Station verwendet eine 1:4 Lokomotive:Güterwagen-Konfiguration.
- Jeder Waggon hat eine Kapazität von 40 Plätzen und jeder Waggon ist mit 12 Requester Chests beladen.
- Da sich Eisenplatten zu 100 stapeln, sollte jede Kiste mindestens (40*100)/12 = 334 Eisenplatten haben, um einen Waggon zu füllen. Um es einfach zu machen, runden wir das auf 400 auf. Jede der 48 Truhen sollte 400 Eisenplatten anfordern.
- Alle 48 Truhen sind mit dem Eingang eines Entscheidungskombinators verbunden. Der Kombinator gibt a aus Signal vom 1 if Alles ist größer oder gleich 400*12*4 = 19200, oder mit anderen Worten, sobald alle Requester-Truhen gefüllt sind. Denken Sie daran, dass der Signaltyp derselbe sein muss wie der Typ, der von der Zughaltestelle erkannt wird.
- Bevor der Ausgang des Entscheidungskombinators mit der Zughaltestelle verbunden wird, können 2 optionale Merkmale hinzugefügt werden. Erstens kann das Signal mit einem arithmetischen Kombinator multipliziert werden, der wiederum die Gesamtzuggrenze multipliziert. Dies wird selten verwendet und fügt die Notwendigkeit hinzu, vor der Haltestelle eine Warteschlange zu erstellen, sodass die Standardeinstellung beibehalten wird Signal*1.
- Die zweite nützlichere Funktion ist eine Reihe von Ampeln, die grün werden, sobald der Bahnhof bereit ist, einen Zug anzunehmen. Beide Lichter sind so eingestellt, dass sie Farben verwenden und nur dann aktiviert werden, wenn die Zugbegrenzungssignal ist größer oder gleich 1. Dies ist natürlich zusammen mit einem konstanten Kombinator, der a ausgibt, mit der Hauptsignalleitung verbunden Grünes Signal von 1. Der Zweck der 4 Schwarzsignale vor dem Farbsignal besteht darin, zu verhindern, dass die Farbe auf den Alt-Modus-Informationen des Kombinators angezeigt wird, was zu Verwirrung führen kann.
- Schließlich wird der Zugfahrplan auf einen einfachen Vollladungszustand für die Ausgangsladestation und einen Leerladungszustand für die Eingangsentladestation eingestellt.
- Denken Sie daran, dass es wichtig ist, eine ausreichende Anzahl von Roboports neben der Station zu platzieren, da dies nach dem Beladen ein stark frequentierter Bereich sein wird.
- Nachfolgend finden Sie eine Referenztabelle zum Einstellen der Truhenanforderungen und des Entscheidungskombinators für 1:4-Züge.
Artikelstapelgröße | Anfragen pro Truhe | Entscheider Kombinator |
---|---|---|
50 | 200 | 9600 |
100 | 400 | 19200 |
200 | 700 | 33600 |
Basic Input (Entlade) Station
- Dieses Beispiel ergänzt das vorherige als eine Station, die die Eisenplatten am Eingang eines Fabrikblocks zur Verwendung entlädt
- Nennen wir die Station „Eisen – rein“. Denken Sie daran, dass alle anderen Stationen, die Eisenplatten anfordern, denselben Namen haben sollten. Die Bahnhaltestelle wird auch die haben Zuglimit festlegen Option aktiviert.
- Wir wollen, dass ankommende Züge ihre volle Ladung ausladen und abfahren. Dies bedeutet jedoch, dass ein Puffer vorhanden sein muss, bevor der Bahnhof beginnt, einen weiteren Zug anzufordern. Dies geschieht durch die Verwendung einer Mischung aus aktiven und passiven Anbietertruhen in einem 2a:2p:2a Verhältnis, bei dem die in aktive Truhen entladenen Gegenstände sofort verwendet werden. Dadurch verbleibt ein Teil der Eisenplatten in den passiven Truhen, bis die aktiven Truhen erschöpft sind. Erst wenn die aktiven Truhen leer laufen, werden Gegenstände aus den passiven Truhen entnommen, was nach Unterschreiten einer Schwelle eine weitere Zuganforderung auslöst.
-
- Warum ein 2a:2p:2a-Verhältnis von aktiven und passiven Truhen beim Entladen verwenden? Dies verhindert ein Ungleichgewicht von Gegenständen, die in Truhen zurückgelassen werden und Probleme beim Entladen verursachen. Dies wird ausführlich in erläutert Dieses Video von Nilaus.
- Ungefilterte Speicherkisten irgendwo im Netzwerk führen dazu, dass die Eisenplatten in den aktiven Kisten in sie hineingesogen werden. Wenn dies der Fall ist, werden mehrere Lagerkisten neben der Station, die nach Eisenplatten filtert, stattdessen zu diesen Kisten konsolidiert, wobei 4 Kisten mehr als genug sind. Diese Truhen werden aufgrund der Priorität der Lagertruhen zuerst verwendet.
- 4000 Eisenplatten werden relativ gleichmäßig in 12 Kisten pro Waggon entladen, so dass etwa 1333 Platten in den 4 passiven Kisten verbleiben. Mit 4 Waggons ergibt sich ein Gesamtpuffer von 5333 Artikeln.
- Alle 48 Truhen sind mit dem Eingang eines Entscheidungskombinators verbunden. Wir möchten, dass der Bahnhof einen anderen Zug ruft, wenn die passiven Truhen beginnen, die restlichen Gegenstände bereitzustellen. Die Bedingung besagt, dass a Signal vom 1 wird gesendet, wenn Alles ist kleiner oder gleich 5000. Beachten Sie, dass die Alles-Bedingung weiterhin ein Signal sendet, auch wenn alle Truhen leer sind.
- Wie bei der Ausgangsstation kann ein arithmetischer Kombinator enthalten sein, um das Zuglimit zu multiplizieren, sowie Lichter, die eingeschaltet werden, wenn die Station aktiv ist und einen Zug anfordert, in diesem Fall gelb.
- Vergessen Sie nicht, Treibstoff für den Zug anzufordern. Da das Entladen normalerweise in zentral gelegenen Fabrikblöcken erfolgt, stelle ich Betankungsanforderungen lieber nur an Eingangsstationen als an Ausgangsstationen.
- Die Entladestation ist ein sehr stark frequentierter Bereich, und bei größeren Fabriken kann es erforderlich sein, mehrere Reihen von Roboterports zu platzieren
- Nachfolgend finden Sie eine Referenztabelle zum Einstellen des Entscheidungskombinators für 1:4-Züge.
Artikelstapelgröße Entscheider Kombinator 50 2500 100 5000 200 10000 - Eine Übersicht über das gesamte System ist unten dargestellt. Abbau und Verhüttung erfolgen oberhalb der Ausgangsstation. Auf Anforderung werden die Eisenplatten zur Eingabestation gebracht, wo sie in der Zahnradproduktion verwendet werden
Ausgabe- und Eingabestationen für Flüssigkeiten
- Stationen zum Transport von Flüssigkeiten folgen den gleichen Prinzipien wie Feststoffe, sind aber relativ einfacher und beinhalten keine Bots.
- Bei einem 1:4-Zug kann jeder Flüssigkeitswagen 25000*4 = 100000 Einheiten transportieren. Die 8 Ladetanks können ebenfalls jeweils 25000 Einheiten lagern, was einer Gesamtkapazität von 200000 entspricht.
- Jeder Tank ist mit dem Entscheider-Combinator-Set verbunden 100000, genug für 1 Zug. Beachten Sie, dass sich die Vorratstanks auch dann weiter füllen, wenn die Bedingung erfüllt ist, und sich auf maximal 2 Züge mit Flüssigkeit füllen, was als schöner Puffer dient.
- An der Entladestation wird der Entscheider-Kombinator zu gesetzt 50000. Dies fordert einen Zug an, nachdem die Hälfte der entladenen Flüssigkeit verbraucht wurde.
Erweiterte Ausgabestation
- Dieses Beispiel verwendet eine Station, die verschiedene Gegenstände von der Hauptbasis lädt, die zu allen Außenposten gebracht werden, die eine Nachfüllung anfordern.
- Wir nennen die Station „Nachschub – Aus“. Der Bahnhof unterstützt einen 1:4-Zug: Der 1. Waggon befördert nur Kernbrennstoff; der 2. trägt nur Logistik-Bots; der 3. trägt eine Mischung aus Baubots, Reparatursets usw.; und das vierte ist leer, um zurückgegebene Artikel zu erhalten. Beachten Sie, dass es wichtig ist, Filter für gemischte Güterwagen wie den 4. einzustellen, indem Sie die mittlere Maustaste drücken.
- Da der 4. Waggon leer ist, kann der Zugfahrplan nicht auf Vollladung warten. Stattdessen hat jedes Element einen Bedingungssatz.
- Der Entscheidungskombinator wird auf gesetzt Alles = 2. Der konstante Kombinator gibt a aus Signal vom 1 für jeden Artikeltyp, der geladen werden kann, und wird in den Entscheidungskombinator eingegeben. Der Zweck ist zu testen, ob ALLE diese Signale eine Ausgabe von 2 haben.
- Wir können für jede Art von Gegenstand sehen, dass ein Entscheider-Kombinator testet, ob genug von diesem Gegenstand in den Truhen bereit ist. Jeder Artikel, der seine eingestellte Menge erreicht, gibt a aus Signal vom 1, die an den Everything = 2-Entscheidungskombinator gesendet wird. Dieses Signal von 1 zusammen mit dem Signal von 1 für dieses bestimmte Element, das vom konstanten Kombinator erzeugt wird, addiert sich zu 2.
- Beispielsweise kann der 1. Wagen 40 Kernbrennstoffe aufnehmen. Jeweils 6 Requester-Truhen Anfrage 7 Kernbrennstoff, die zusammen 42 ergeben, genug, um den Waggon zu füllen. Diese Truhen sind alle mit dem Eingang des Entscheidungskombinators des Gegenstands verbunden, um zu testen, ob sie bereit sind. Der Kombinator ist auf eingestellt ein Kernbrennstoffsignal von 1 ausgeben, wenn der Kernbrennstoff größer oder gleich 40 ist, andernfalls wird 0 ausgegeben.
Erweiterte Eingabestation
- Dieses Beispiel setzt das Versorgungsnetz aus dem vorherigen Abschnitt fort.
- Diese Station und alle anderen heißen „Nachschub – In“. Beachten Sie, dass die Zughaltestelle eine zusätzliche Bedingung von hat Circuit-Netzwerk senden die Info. Dadurch wird das Zugbegrenzungssignal an den Zug gesendet, das in diesem Fall entweder 0 oder 1 ist.
- Wenn wir uns die Zugplanung ansehen, möchten wir, dass der Zug abfährt, wenn Zugbegrenzungssignal = 0 (Station fordert nicht mehr an) UND 15 Sekunden Inaktivität. Dieser 15-Sekunden-Puffer soll Schwankungen bei den verfügbaren Logistik-Bots im Netzwerk ausgleichen, was später erklärt wird. Ein hinzugefügt ODER 30 Sek. Inaktivität Bedingung zwingt den Zug zum Abfahren, um ein Abwürgen zu verhindern.
- Der Entscheidungskombinator wird auf gesetzt Alles != 1. Der konstante Kombinator gibt a aus Signal vom 1 oder jede Art von Artikel, der nachgeliefert werden kann, und wird in den Entscheidungskombinator eingegeben. Der Zweck besteht darin, zu testen, ob IRGENDEINES dieser Signale eine Ausgabe von 2 hat.
- Wir können für jede Art von Item sehen, dass ein Entscheider-Kombinator den Schwellenwert dieses Items testet. Jedes Element, das unter den Schwellenwert fällt, gibt a aus Signal vom 1, die an den Anything != 1 Entscheidungskombinator gesendet wird. Dieses Signal von 1 zusammen mit dem Signal von 1 für dieses bestimmte Element, das vom konstanten Kombinator erzeugt wird, addiert sich zu 2.
- Der 1. Wagen enthält nur Kernbrennstoff. Der Zustand des Inserters wird auf gesetzt aktivieren wenn <6. Der entsprechende Entscheidungskombinator wird auf gesetzt wenn Kernbrennstoff < 1, Kernbrennstoffsignal von 1 ausgeben. Mit anderen Worten, bei jedem Nachschub werden etwa 6 Artikel entladen, und wenn 1 Artikel unterschritten wird, wird ein neuer Nachschub ausgelöst.
- Der 3. Waggon enthält eine Mischung aus verschiedenen Artikeln, die nachgeliefert werden sollen, daher werden Filtereinsetzer verwendet, um sie jeweils zu entladen. Jeder Einfüger und sein entsprechender Entscheider hat seine eigene Bedingung, wie oben erklärt. Beachten Sie, dass jede Aufbewahrungstruhe nach Exklusivität gefiltert wird. Die Größe des Kuvertierstapels kann auch für eine gleichmäßigere Beladung überschrieben werden. Der zusätzliche Inserter, der Reparatursätze in den Roboport bewegt, ist völlig optional.
- Beachten Sie in dieser isolierten Ansicht des Schaltkreises, der sich mit allen anderen Gegenständen außer Bots befasst, dass keiner der Inserter und Kombinatoren mit den entsprechenden Truhen verbunden ist. Wie wird die Anzahl der Artikel gelesen? Im Robotport-Menü wird die Lesen Sie den Inhalt des Logistiknetzwerks Option aktiviert ist (siehe Bild im nächsten Abschnitt). Dieser Roboport liest also die Artikel im gesamten Logistiknetzwerk. Unter Verwendung dieses Roboports senden wir seine Ausgabe an alle Inserter sowie die Entscheider-Kombinatoren für jedes Element. Bei dieser Methode sollten die Truhen nicht mit dem Stromkreis verbunden bleiben, da sonst die Anzahl der Gegenstände verdoppelt wird.
- Der 4. Waggon nimmt verschiedene Gegenstände auf, die bereit sind, zurückgebracht zu werden. In diesem Beispiel werden die 2 Truhen nach elektrischen Minern und Geschwindigkeitsmodulen gefiltert, die an einem Mining-Außenposten nicht mehr benötigt werden.
Erweiterte Eingabestation – Bots
- Eine Erklärung, wie Bots verwaltet werden, verdient einen eigenen Abschnitt. Die Komplexität liegt in der automatischen Bestimmung der Menge an Logistik-Bots, die in einem bestimmten Netzwerk benötigt werden, was durch Pufferung der schwankenden Menge an verbleibenden verfügbaren Logistik-Bots erfolgt.
- Im Roboport, Lesen Sie Roboterstatistiken aktiviert. Wir haben bestimmte Signale L und C für die TOTAL Logistik- und Bau-Bots im System. X und Y werden für die VERFÜGBAREN Logistik- bzw. Bau-Bots bestimmt.
- Die Verwaltung der Bau-Bots ist einfach. Oben ist eine Ansicht des isolierten Stromkreises. In diesem Netzwerk möchten wir insgesamt 50 gelieferte Bots haben, wobei der Schwellenwert für Nachfüllungen bei 25 liegt. Dies geschieht wie im vorherigen Abschnitt erläutert. Beachten Sie, dass die Platzierung des Roboports eine Kette von 2 Stapelfiltereinsetzern erfordert, da die Verwendung eines langen Einsetzers zu langsam ist. Die Stapelgröße wird für gleichmäßiges Laden außer Kraft gesetzt.
- Nehmen wir an, wir möchten für Logistik-Bots einen Bereich von 50–100 verfügbaren Bots im Netzwerk als Puffer aufrechterhalten. In einem typischen Netzwerk schwankt die Anzahl der verfügbaren Logistik-Bots und kann während der Spitzenaktivität auf 0 sinken. Da wir nicht jedes Mal einen neuen Zug anfordern wollen, wenn verfügbare Bots für den Bruchteil einer Sekunde unter den Schwellenwert fallen, müssen wir die Erkennungszeit puffern. 30 Sekunden sollten ausreichend sein, um festzustellen, ob weitere Bots erforderlich sind.
- Oben ist eine erweiterte Ansicht des isolierten Schaltkreises zur einfacheren Betrachtung. Da wir eine Obergrenze von 100 verfügbaren Bots wollen, werden die Inserter auf gesetzt aktivieren, wenn X<100. Beachten Sie, dass in diesem Fall die Einsetzer keine Filtereinsetzer sind, da der 2. Waggon des Zuges nur Logistik-Bots beförderte.
- Wenn die verfügbaren Bots unter 50 fallen, wollen wir ein Signal aussenden. Wir werden dies benennen Signal A, die mit der Bedingung an den Eingang eines arithmetischen Kombinators gesendet wird A*1, Ausgang A die als Uhr dienen wird. Wichtig zu beachten ist, dass der Ausgang dieses arithmetischen Kombinators wieder mit seinem Eingang verbunden ist.
- Hier ist eine Erklärung, wie die Taktschaltung funktioniert: Signal A ist anfänglich ein Wert von 1, also 1*1 = 1. Signal A ausgegeben und zusätzlich zum Original in den Kombinator zurückgeschleift Signal A von 1, was zu 2*1 = führt 2. Daher erhöht sich das Signal A für jeden Spiel-Tick um 1.
- Ein häufiger Fehler ist die Verwendung von A+1 anstelle von A*1. Die Verwendung von A + 1 führt zu 1 + 1 = 2. Und in der nächsten Schleife ist es 3 + 1 = 4. Wie wir sehen können, erhöht sich dieses Signal bei jedem Spiel-Tick um 2 statt um 1.
- Signal A beginnt hochzuzählen, sobald verfügbare Bots unter den Schwellenwert fallen. Wir vervollständigen die Schaltung, indem wir prüfen, ob Signal A ist größer als 1800, dann ausgegeben Logistisches Bot-Signal von 1. Da ein Spiel mit 60 UPS 60 Ticks pro IRL-Sekunde hat, entspricht 1800 30 Sekunden, was der von uns gewählte Puffer ist.
- Vergessen Sie schließlich nicht, das Logistik-Bot-Gegenstandssignal in den Train-Limit-Kombinator auszugeben.
Deadlock-Prävention
Logistikzüge verkehren auf diese Weise:
- Ein leerer Zug sucht und fährt zur nächsten verfügbaren Ausgabestation der Materialart, für die er bestimmt ist.
- Der Zug wird an der Ausgangsstation beladen und parkt entweder an der Station, weil keine Eingangsstation anfordert, oder er sucht und fährt zur nächsten verfügbaren Eingangsstation.
- Der Zug entlädt an der Eingangsstation und sucht entweder die nächste verfügbare Ausgangsstation und fährt erneut zu ihr, ODER er findet keine verfügbare Ausgangsstation und bleibt an der Eingangsstation stehen.
- Wir können hier sofort das Problem sehen, das zu einem Deadlock führen wird. Wenn nicht genügend Ausgangsstationen zur Verfügung stehen, die das vorgesehene Material bereitstellen, werden die Züge daran gehindert, zu ihnen zurückzukehren.
- Die Lösung für dieses Problem ist einfach: Haben Sie immer mehr Angebot als Nachfrage! Stellen Sie zum Beispiel sicher, dass Ihre Bergbaubetriebe mit dem Verbrauch Schritt halten. Das Hinzufügen eines zusätzlichen Rohöl-Außenpostens kann ausreichen, damit ein einzelner Zug zwischen ihnen wechseln kann, wenn einer von ihnen noch nicht verfügbar ist. Denken Sie auch daran, nie mehr Züge als Ausgabestationen für eine bestimmte Materialart zu haben.
Das ist alles, was wir heute dafür teilen Factorio führen. Dieses Handbuch wurde ursprünglich erstellt und geschrieben von Mozartichoke. Falls wir dieses Handbuch nicht aktualisieren, finden Sie das neueste Update, indem Sie diesen folgen Link.