Factorio Guide

Alles über Schaltungen for Factorio

Alles über Schaltungen

Overview

In diesem Guide behandle ich die verschiedenen Optionen für Schaltungen, die mögliche Verwendung von Kabel und anderen Optionen samt einiger Fallbeispiele.

Einleitung

In diesem Guide möchte ich Dir die verschiedenen Möglichkeiten von Schaltungen näher bringen. Man muss kein Elektriker oder Programmierer sein, um Schaltungsnetze nutzen zu können, ein wenig logisches Denken wäre aber dennoch vorteilhaft.

Der Guide ist in mehrere Rubriken unterteilt. Wir sehen uns zuerst an, welche Elemente für in diesem Bereich wichtig sind und wie man diese grundsätzlich einsetzt. Später werde ich einige Fallbeispiele bereitstellen.

Genug des Vorworts, fangen wir an!

Wann ist eine Schaltung nicht sinnvoll?

Factorio wird von den Entwicklern laufend weiterentwickelt. Das heißt, dass manche Inhalte nicht mehr zeitgemäß sind: Häufig benötigte Features/Funktionen wurden inzwischen auch auf “normale” Gegenstände übertragen.

Dieser Abschnitt stellt die Ausnahme dar, die nachfolgenden Bereiche sind natürlich wieder rein auf die Schaltungen ausgelegt!

Als Beispiel möchte ich hier die Bandteiler (Splitter) nennen: offenbar gab es früher (bis Version 0.16.17) keine Möglichkeit, verschiedene Elemente von einem Förderband rauszunehmen, ohne etwaige Schaltungen und Filtergreifarme zu benutzen.
(Danke für die Info von Dosskias auf Youtube!)

Es gibt, speziell in älteren Tutorial-Videos auf beispielsweise YouTube immer wieder Angaben, dass man beispielsweise für ein Band mit verschiedenen Gegenstandsarten Filtergreifer mit Schaltungen eingesetzt hat.

Daher:
Wenn das Spiel bereits eine Möglichkeit bietet ein Problem ohne Schaltungen zu umgehen, nutze das!
Hauptproblem sind hier die benötigte Mehrleistung Deines Rechners (Mehrbelastung Deines PC-Prozessors / CPU), aber auch im Spiel die Mehrkosten durch Strom und etwaige Verzögerungen. Die Verzögerungen befinden sich zwar im Millisekunden-Bereich pro Sekunde, aber wenn Du Deine Fabrik 50 Stunden laufen hast, kommt da einiges an Zeitverlust zusammen!

Nochmal zurück zu den Splittern:
Diese kann man direkt einstellen was passieren soll, wenn beispielsweise Kupfer und Kohle auf dem gleichen Band liegen: da baue ich mir keine eigene Schaltung.
Statt dessen nutze ich die Steuerungsoptionen des Splitters und wähle entsprechend beim Ausgang aus, dass ein gewähltes Material IMMER und grundsätzlich auf einer gewissen Spur ausgegeben werden muss:

Das soll nur ein kurzer Hinweis sein. Schau’ Dir also alle Bauteile einmal in Ruhe direkt an, ob Du ein Problem nicht direkt lösen kannst, ohne komplizierte Schaltungen. Das spart Dir in Summe dann möglicherweise Frust und Ärgernis, aber im Regelfall auch eine Menge Zeit.

Ich möchte Dir hier nicht den Spaß an Schaltungen verderben, aber man muss nicht alles zwangsläufig verkomplizieren, wenn es doch einfacher (mit “Bordmitteln”) auch geht!

Die wichtigsten Elemente für Schaltungen

Grafik
Bezeichnung
Zweck
Kupferkabel
Wird verwendet, um Strommasten zu verbinden oder die Verbindung zu lösen
Rotes Signalkabel
Dieses Kabel erzeugt rote Signale
Grünes Signalkabel
Dieses Kabel erzeugt grüne Signale
Kombinator für Berechnungen
(früher: Arithmetischer Kombinator)
Wird hauptsächlich für Berechnungen verwendet
Kombinator für Vergleiche
(früher: Vergleichender Kombinator)
Vergleicht mehrere Zustände zueinander
Kombinator für Konstanten
(früher: Konstanter Kombinator)
Wird für feste Ausgangszustände verwendet

Was bringen Schaltungen und wie kann ich sie nutzen?

Ach, mit Schaltungen kann man eine Menge Blödsinn machen. Angefangen vom Auslesen von Fließbändern und Kisten über das Steuern von einzelnen Greifarmen bis hin zu komplexen Schaltungen (beispielsweise: Anlage A abschalten, wenn eine gewisse Menge oder ein Fließband voll ist, dann erst Anlage B einschalten, …) ist alles möglich.

Schaltungen können verschiedene Sachen auslösen:

Steuerart
Mögliche Gegenstände
Ein- und Ausschalten nach Bedingung
Bei nahezu allen Elektro-Anlagen
Filter einstellen
Bei Filtergreifarmen, intelligenten Kisten mit Anfragen
Stoppen von Förderbändern
Per Bedingung möglich
Auslesen von Inhalten
Kisten, Fließbänder, Lagertanks, Zughaltestellen, Akkumulatoren/Batterien, Roboterhangar, Ölpumpen
Restmengenangaben
Ölpumpen, Elektrische Erzförderanlagen
Beleuchtungsfarbe
Lampen
Alarmsignale senden
Programmierbare Lautsprecher (Ausgabe ist als Ton oder Bild möglich)

Diese Liste ist nicht vollständig, sollte Dir aber bereits einen Überblick über die Möglichkeiten bieten.

An dieser Stelle möchte ich aber nicht zu weit ins Detail gehen, sehen wir uns zuerst die Basics an. Verschiedene Einsatzmöglichkeiten gibt’s in diesem Guide weiter unten.

Variablen

Doch recht einfach gehalten sind die Variablen in Factorio.

Wann immer ich im Guide von “Variablen” spreche, handelt es sich um einen definierten Buchstaben, eine definierte Farbe oder ein Symbol, welches einen bestimmten Wert annehmen wird.

Sobald Du in ein Feld klickst, in dem eine Bedingung oder ein Filter Verwendung findet, taucht folgender Dialog auf:


Die ersten fünf Register stellen die normalen Ressourcen dar, das sechste Register diese Variablen.
Dabei gibt es – je nach Wahl des Symbols einige Arten von Variablen:

  • Roter Stern: Alle Bedingungen müssen erfüllt sein, dann wird die Aktivierung aktiviert
  • Grüner Stern: Sobald eine Bedingung erfüllt ist, trifft es zu (wird aktiviert)
  • Gelber Stern: Gibt es nur bei Berechnungen und gilt spiegelt alle erhaltenen Gegenstände
  • Farben: Neben normaler Werteübertragung lassen sich beispielsweise Lampen damit einfärben.
  • Sonstige Symbole: Darunter fallen alle Buchstaben und Ziffern sowie das grüne Häkchen, das blaue “i” und der weiße Punkt. Diese Symbole können frei verwendet werden oder sind nur Werte-Träger.

Hinweis zu dem roten Stern:
Wenn Du beispielsweise zwei Kisten prüfst, ob “roter Stern” > 100 ist, dann ist Bedingung nur so lange erfüllt, wie beide Kisten mindestens 100 Stück Inhalt besitzen. Fällt eine Kiste unter diesen Wert, gilt die Bedingung nicht mehr als erfüllt. Dieses Symbol ist häufig zu finden und viele Geräte können auf den roten Stern zurückgreifen.

Hinweis zu dem grünen Stern:
Beim gleichen Beispiel wie zuvor ist der “grüne Stern” in der Lage die Bedingung als zutreffend einzustufen, wenn mindestens eine Kiste einen Wert von 100 oder mehr besitzt. Fallen beide Kisten unter 100, schlägt auch die Bedingung fehl. Diese Bedingung findest Du nur bei sehr speziellen Gerätschaften.

Kabelfarbe und Variablen

Grundsätzlich kannst Du aus zwei verschiedenen Quellen beispielsweise die Variable “A” einen Wert von 1 geben. Liegen beide Erzeuger auf dem roten Kabel und treffen sich, so würden sich in der gewählten Farbe das “A” doppelt erzeugen, da “A” ja zweimal im Netz vorhanden ist.
Verwendest Du hingegen grüne und rote Kabel, die jeweils ein “A” transportieren, würde ein grünes und ein rotes “A”-Signal ausgegeben.

Mir ist bewusst, dass dieser Abschnitt recht abstrakt ist, ich gehe aber an den entsprechenden Stellen näher darauf ein!

Auslesen von Inhalten

Der einfachste Weg, um Inhalte im aktuellen Netzwerk zu sehen wäre ein Verbindungskabel zwischen einem Puffer (in meinem Beispiel eine Kiste) und einem Strommasten zu setzen. Rechts, unterhalb der Minimap sind die Werte zu sehen.

In meinem Beispiel befinden sich in der oberen Kiste 24 Bänder, in der unteren 38 Bänder.

Als erstes Beispiel habe ich nun zwei Kisten aufgestellt mit gleichen Gegenständen. Beide Kisten sind mit einem roten Kabel an den Strommast angebunden. Das rote Kabel addiert automatisch den Inhalt aller Kisten:

Genau genommen wird jeder Gegenstand, der sich in diesem Schaltungsnetz befindet angezeigt, beziehungsweise aufsummiert. Das Schaltungsnetz könnte auch Deine halbe Fabrik abdecken und wäre dann entsprechend umfangreich.

Wenn wir jetzt das rote Kabel demontieren (von der Kiste zum Mast nochmal das rote Kabel “ziehen”, um es zu entfernen) und stattdessen ein grünes Kabel montieren, erhalten wir rechts unter der Minimap eine getrennte Anzeige:

Die zu übertragenden Signale lassen sich also steuern. Die Kabelfarbe gibt an, ob Du ein rotes oder grünes Signal bekommst. Ein Signal kann (muss aber nicht) verschiedene Gegenstände inklusive Menge wie in diesem Beispiel anzeigen.

Auslesen von Inhalten und stoppen von Förderbändern

Mit Förderbändern lassen sich die roten oder grünen Kabel ebenfalls verwenden.

Ich verbinde einen Förderbandabschnitt mit dem roten Kabel und hänge es wieder an einen Masten an:

Wie wir sehen, sehen wir nichts: Es wird kein Signal ausgegeben, da wir das angeschlossene Element – in diesem Fall das Stück Förderband – nicht eingestellt, das heißt konfiguriert haben.
Klicken wir auf das Förderband, so finden wir einige neue Einstellungen, die zuvor nicht vorhanden waren:

An dieser Stelle hake ich “Aktivieren/Deaktivieren” ab, dafür “Gegenstände auf Fließband auslesen” an und stelle bei der Option “Puls” auf “Halten”. Dadurch wird das Band nun nicht mehr gestoppt, aber der aktuelle Inhalt auf dem Förderband an das rote Leitungsnetz (weil ich ein rotes Kabel verwendet habe) angezeigt. Die Option “Puls” würde nur einmal kurz ein Signal senden, sobald ein Gegenstand auf diesen Bandabschnitt kommt, mit “Halten” wird das Signal so lange gesendet, wie der Gegenstand auf dem Fließband liegt:

In Summe liegen also im Moment 8 grüne Signalkabel auf dem Förderband-Abschnitt, der verkabelt ist:

Ich verbinde nun das Bandsegment mit zwei weiteren Feldern und übertrage die Einstellung auf die neu verbundenen Bandsegmente (Hochstelltaste halten Rechtsklick auf den bereits konfigurierten Abschnitt, Hochstelltaste halten und Linksklick auf die neu verbundenen Segmente):

Mit dieser Methode kannst Du also ein Band auslesen. Aber welchen Sinn hat das Abschalten eines Fließbands?

Ich baue ein zweites Förderband dazu und ändere zur Veranschaulichung das Material von grünen Kabeln zu Kohle und Festbrennstoff. Ich verbinde mit der selben Kabelfarbe jeweils einen Bandabschnitt einer jeden Zuführung und konfiguriere diese wie auf dem Bild zu sehen:

Das untere Bandsegment ist auf Auslesen gestellt mit der Option “Halten”. Das grüne Signal wird dann zum Stommast verbunden, vom Strommast weiter zum oberen Bandsegment. Du könntest aber auch beide Abschnitte direkt verbinden, zur Veranschaulichung hab ich weiterhin den Strommast in Verwendung.
Das obere Bandsegment habe ich auf “Aktivieren/Deaktivieren” gestellt und eine Bedingung hinterlegt: Wenn Festbrennstoff ist kleiner (also <) als 5, dann aktiviere das Band.

Das hätte den Effekt, dass das Kohleband-Segment nur dann etwas durchlässt, solange das Festbrennstoff-Band nicht mehr vollständig befüllt ist.

Natürlich macht das Beispiel nur halb sinn, da ja jedes Zuführband auf eine Hälfte des neuen Bands laufen würde. Als Beispiel sollte es aber reichen.

Vergleichende Kombinatoren

Sehen wir uns als nächstes Kombinatoren für Vergleiche an.

Wie der Name schon sagt, dient ein solcher Kombinator zum vergleichen verschiedener Werte. Ein Kombinator hat einen Pol für den Eingang und einen für den Ausgang. Mit der ALT-Taste kannst Du einschalten, wohin der Pfeil zeigt. Der Eingang befindet sich immer am “dicken” Ende des Dreiecks.

Trifft ein Vergleich zu, kannst Du einstellen, ob ein einzelnes Signal mit beliebigem Inhalt (beispielsweise ein Gegenstand oder eine Variable) oder die aktuellen Werte direkt ausgegeben werden.

Nehmen wir als Beispiel an, du möchtest vergleichen, ob in einer Kiste mindestens ein Festbrennstoff liegt. Falls das zutrifft, soll eine Variable (das grüne Häkchen) auf 1 gesetzt werden. Dieses Ausgangssignal, also das grüne Hakchen mit dem Wert 1 bleibt so lange erhalten, bis tatsächlich kein Festbrennstoff mehr in der Kiste lagert:

Wie auch zuvor könnte ich den Strommast auch weglassen, zur Demonstration welche Signale wir im Netz haben, macht dies aber Sinn:
Aktuell wird mit dem roten Signal eine Menge von 100 Stück Festbrennstoff (aus der Kiste) angezeigt, da die Kiste auch direkt mit dem Strommast verbunden ist.

Von der Kiste geht ein rotes Kabel an den Eingang des Vergleichskombinators.

Der Vergleicher prüft, ob mehr als 1 Stück Festbrennstoff im Informationsnetz des Eingangs vorliegt. Falls das zutrifft, soll die Variable “grünes Häkchen” mit einem Wert von 1 erzeugt werden.

Ein grünes Kabel vom Ausgang des vergleichenden Kombinators übergibt dieses Häkchen (nicht aber die Eingangsdaten, also die 100 Stück Festbrennstoff!) mit dem grünen Kabel an das Transportband.

Man kann also festhalten: Alle Signale was in den Vergleichskombinator reingehen werden geschluckt und es wird nur beim Zutreffen der Bedingung ein neues Signal erzeugt.

Speziell wenn Du Gegenstandswerte ausgibst, musst Du verschiedene Kabelfarben nutzen, damit das Endsignal sich nicht mit dem Eingangssignal addiert!

Und um dieses Beispiel abzuschließen: Das Förderband wird nur aktiviert, wenn das Häkchen fehlt, also Häkchen gleich Null.

Konstante Kombinatoren

Konstante Kombinatoren werden verwendet, um ein festes Signal zu erzeugen. Das mag auf den ersten Blick nicht sonderlich sinnvoll sein, aber ich stelle gleich ein anschauliches Beispiel.

Im Gegensatz zum vergleichenden Kombinator besitzt der konstante Kombinator lediglich einen Signalausgang. Das gewählte Signal kann also an dieser Stelle nicht manipuliert oder von wo anders eingelesen werden.

Dieser Kombinator kann bis zu 20 verschiedene Signale abgeben, vorausgesetzt er hat Strom. Dieses Signal wird also so lange in das Netz gesendet, bis entweder das Kabel gekappt oder die Ausgangseinstellung “Aus” gewählt wird, beziehungsweise der Strom ausfällt.


Recht viel näher möchte noch nicht dazu eingehen, ich werde ab jetzt an verschiedenen Stellen diesen Kombinatortyp häufig als Signalgeber verwenden.

Berechnender (arithmetischer) Kombinator

Der berechnende Kombinator berechnet aus den vorhandenen Eingangssignalen ein neues Signal, beziehungsweise einen neuen Wert.

Daraus schließen wir: Der Kombinator muss also wieder einen Ein- und einen Ausgang haben, korrekt!

Auf den ersten Blick sieht der Kombinator in den Einstellungen sehr ähnlich zum vergleichenden Kombinator aus, allerdings können wir hier statt Vergleiche, also “gleich”, “kleiner”, “größer” und so weiter auf mathematische Funktionen wie Addition (Plus), Subtraktion (Minus), Multiplikation (Stern) und Division (Schrägstrich) zurückgreifen.

Zur Veranschaulichung habe ich ein Beispiel vorbereitet:

Ich habe einen konstanten Kombinator mit einer Gesamtmenge von 500 Rohöl gesetzt. Normalerweise würde ich hier natürlich die Lagertanks mit dem Rohöl anschließen, aber zum Demonstrieren reicht der Kombinator aus 😉

Die Datenverbindung geht vom konstanten Kombinator zum Strommast, um den Wert auf der Seite darzustellen. Das wäre aber nicht nötig.

Vom Strommast führt das rote Kabel zum Eingang des berechnenden Kombinators. Ohne Strommast hätte ich hier auch direkt vom Signalgeber zum Eingang ziehen können.

Der berechnende Kombinator enthält die Formel “Rohöl-Signal was auf dem Eingang liegt” dividiert durch 100.

Als Ausgangssignal habe ich wieder “Rohöl” verwendet, ich hätte aber jede beliebige freie Variable auch wählen können!

Das Ausgangssignal würde ich nun zur entsprechenden nächsten Stelle weiterleiten, da ich aber auf den Strommast zurückführe, habe ich ein grünes Kabel genommen. Denn sonst würden die 500 Eingangsöl mit den 5 berechneten Ausgangsöl zusammenaddiert werden. Hier würde dann noch schlimmer sein, dass sich die Werte laufend höher rechnen, da ich ja ein immer größeres Signal einspeise. Das ist vom Entwickler so gewollt, um beispielsweise einen Sekundenberechner erstellen zu können (dazu gibts VIEL weiter unten ein Beispiel 🙂 ).

Ein umfangreicheres Beispiel

Gehen wir einen Schritt weiter, ich habe zu Testzwecken ein neues Schaltungsnetz eingerichtet:

Ich verwende in diesem Beispiel einen konstanten Kombinator mit den Variablen:

  • E = 25.000 (Einzel-Lagermenge)
  • A = 9 (Anzahl) und
  • “Rohöl” = 13.000.

Wie Du Dir vielleicht denken kannst, möchte ich hier einen Tank simulieren. Ein Öltank hat ein Fassungsvermögen von 25.000 Einheiten, ich möchte simulieren, dass ich 9 Tanks verbunden aufgestellt hab. In diesen 9 Tanks befinden sich 13.000 Rohöl.

Nun möchte ich wissen, zu wieviel Prozent die Tanks gefüllt sind:
Gesamtmenge = 100%
Lagermenge = x%

Die Formel muss nach Dreisatz daher Lagermenge mal 100 durch Gesamtmenge sein. Bauen wir das nach:

Der konstante Kombinator (oben links) setzt die Basiswerte mit denen ich rechnen möchte, also E (Lagermenge ein Tank) = 25.000, A (Anzahl der Tanks) = 9, Rohöl Ausgangsmenge = 13.000 Einheiten.

Die konstanten Werte habe ich mit einem roten Kabel an den berechnenden Kombinator am Eingang eingeschlossen. Wie auch der vergleichende Kombinator werden Eingangswerte geschluckt und nur das Endergebnis weitergeleitet.
Dieser Kombinator berechnet nun E (Einzelmenge pro Tank) mal A (Anzahl der Tanks). Damit bekomme ich G für Gesamtmenge. Also die maximal erreichbare Inhaltsmenge.

Ein weiterer berechnende Kombinator erhält das Ausgangssignal vom linken Kombinator mit einem roten Kabel und zusätzlich wieder die Konstanten vom Anfang.
Dieser Kombinator berechnet nun den ersten Schritt des Dreisatzes, nämlich lagerndes Öl mal 100. Das Ausgangssignal wird ebenfalls Rohöl sein.

Im dritten berechnenden Kombinator fasse ich nun die beiden Ausgangssignale der beiden berechnenenden Kombinatoren im Eingang mit einem grünen Kabel zusammen, wo ich Rohöl dividiert durch Gesamtmenge G berechne. Das Ergebnis ist wieder Öl und ich binde das Ausgangssignal mit einem grünen Kabel an den Strommast zur Verdeutlichung.

Am Strommast treffen nun alle relevanten Werte zusammen:
Ich sehe in rot hinterlegt (rote Kabelverbindung) die Werte E, A und Rohöl, die aus dem konstanten Kombinator stammen. Zusätzlich auch die errechnete Gesamtmenge G (225.000 Einheiten).
In grün hinterlegt (grünes Verbindungskabel) sehen wir 5 Einheiten Öl.

Und da unser Dreisatz oben auf Prozent aufgebaut war, wären die 13.000 Einheiten Öl auf Lager 5% Füllung zur Gesamtmenge 🙂

Nochmal kontrollieren:

  • E mal A = 25.000 Tankfüllung mal 9 Tanks = 225.000 Gesamtlagereinheiten (G)
  • Lageröl mal 100 = 13.000 Lageröl mal 100 = 1.300.000 (Rohöl)
  • Rohöl durch G = 1.300.000 durch 225.000 Gesamtmenge (G) = 5,7778% Lagerstand

    Der komplette Bauplan hier zum Importieren:

    0eNrFls2O4jAMx9/Fx1WZJSkV0NseVvMQo1HVjzBjqU2q1EGDUN99k6CBCNrSarXaCyKx87fjX5z0DEVtRKtREqRnwFLJDtK3M3T4IfPazdGpFZACkmggApk3bpRrpM9GEJarUjUFypyUhj4ClJX4gpT10VONzhQd5YRKBgt5/x6BkISE4pKJH5wyaZpCaKt8Xe9ypVxSmEEErerQa9qwVm/F2UsSwcn9i18SG6hCLcqLxyZyIqRVnRXiMz+iVbDLDliT0CN1OKImY2du2/Aeq99uE6UyrpA8Wa/XT2oxpvMr0NkHZRnSONQGq5tCqU0lVgrrQILFYSpx/+5NUl5K0Dkx5n60qMJqW9mUW0/UpUHyQ7+NwLyZNic2VB/MffPjT87QAEF+Jchm8bsJZ9Zc4XWnB9QdZcuQdsJpZMv4qVboy8lO4Yd1UYZasyDyK7jazQXFPFU+Yn3gZBvsQwsh7x3jB8dBgPFfAGS7fwJwqg+W8nu95/dzgt944DF8g5W/6zQ+3Wn8hntQbazzNsvBra/g9v8L3Pctbw+ku8jmdtZyMoONFU1zmgYxs6GSoRfxEQbbBT00/2aY1+zc52ad/ROdBl8FERztW+jz4Du22e75Nt5v2ZbFff8H4QnKSQ==

    Hinweis:

    Berechnende Kombinatoren runden grundsätzlich ab. selbst wenn 9,99 rauskommt, wäre es eine 9,0.

    Ich hoffe, dass dieser Exkurs nicht zu weit ausgeholt war 🙂

Spezielle Variablen

Es gibt noch einige andere, sehr wichtige Variablen:

  • Roter Stern: Alle Bedingungen müssen erfüllt sein (UND)
  • Grüner Stern: Eine der Bedingungen muss wenigstens erfüllt sein (ODER)
  • Gelber Stern: Berechnet etwas mit jedem Gegenstand welcher im Eingangsnetzwerk vorhanden ist

Beispielaufbau

Ich möchte an dieser Stelle ein Beispiel zeigen, um welches Problem es sich handelt:
Wir möchten eine Bedingung schalten die prüfen soll, ob genug Material in einer Kiste ist. In der Kiste befinden sich 50 Kohle, 200 Festbrennstoff und 10 Brennstoffzellen.

Ich baue an dieser Stelle ein Bandsegment und verbinde es mit der Kiste. Das Band konfiguriere ich so, dass es nur laufen soll, wenn die Gegenstände in der Kiste unter oder gleich 20 sind.

Roter Stern – UND

Das Bandsegment konfigurere ich nun so, dass ich “Roter Stern” kleiner oder gleich 20 verwende. Damit läuft das Band nur dann, wenn die enthaltenen Gegenstände unter 20 Stück sind:

Diese UND-Variable kannst Du Dir am besten so vorstellen, als dass jeder Gegenstand von dieser Variable überprüft wird. In unserem Beispiel:

  • Sind 20 oder weniger Festbrennstoff vorhanden? Und wenn ja, dann
    • Sind 20 oder weniger Brennstoffzellen vorhanden? Und wenn ja, dann
      • Sind 20 oder weniger Kohle vorhanden? Und wenn ja, dann
        • Führe die Bedingung aus

Das Band bleibt in diesem Fall stehen, da wir von wenigstens einem anderen Material nicht die Bedingung erfüllen. Es sind zwar Brennstoffzellen unter 20, aber die restlichen Materialien, sprich Kohle und Festbrennstoff nicht. Daher schlägt die Bedingung auch nicht an.

Also: Bei der roten Stern-Variable (UND) müssen ALLE Bedingungen erfüllt sein.

Grüner Stern – ODER

Sehr ähnlich arbeitet die grüne Stern-Variable. Diese ist aber keine bedingte UND-Abfrage, sondern eine ODER-Abfrage.

In unserem Beispiel liegen weiterhin 200 Festbrennstoff, 10 Brennstoffzellen und 50 Kohle in der Kiste. Ich ändere nun die Bedingung von “Roter Stern” kleiner oder gleich 20 auf “Grüner Stern” kleiner oder gleich 20. Nun läuft das Band:

Die Arbeitsweise der ODER-Variable funktioniert anders als die der UND-Variable:

  • Sind 20 oder weniger Festbrennstoff vorhanden? Wenn ja, führe die Bedingung aus. Oder falls nicht..
  • Sind 20 oder weniger Brennstoffzellen vorhanden? Wenn ja, führe die Bedingung aus. Oder falls nicht..
  • Sind 20 oder weniger Kohle vorhanden? Wenn ja, führe die Bedingung aus. Oder falls nicht..
  • Die Bedingung trifft nicht zu.

Anders ausgedrückt: Sobald eine Bedingung zutrifft, gilt die Prüfung als erfolgreich. Wenn kein einziger Vergleich zu einem positiven Ergebnis führt, schlägt die Prüfung fehl.

Gelber Stern – Berechnend

Neben den grünen und roten Stern-Variablen gibt es noch die gelbe Berechnungs-Variable. Diese arbeitet ähnlich wie die anderen beiden Variablen.
Der gelbe Stern nimmt alle Gegenstände an und führt eine Berechnung an ALLEN vorliegenden Gegenstandssignalen durch.

Verwendest Du den gelben Stern im Ausgang, werden alle Gegenstände auf das Ausgangsnetz übergeben und zwar mit der zuvor definierten Berechnung.

Diesen Variablentyp kannst Du daher nur dort finden, wo Du Berechnungen machen kannst, wie beispielsweise berechnende Kombinatoren.

Ich rechne an dieser Stelle den uns bereits bekannten Kisteninhalt über einen berechnenden Kombinator mit “Gelber Stern” mal 2. Ich habe entsprechend das Ausgangssignal mit dem grünen, das Kistensignal mit dem roten Kabel an einen Strommast angeschlossen.
Wie Du sehen kannst, werden alle vorhandenen Materialien verdoppelt und dem grünen Netzwerk bereitgestellt:

Besonderheiten

Alle drei möglichen Variablen, also roter, grüner und gelber Stern können, wenn diese am Eingang gesetzt werden, alle Gegenstände einzeln behandeln. Es ist aber auch möglich diese Variablen in den Ausgang zu setzen: Dann werden die erhaltenen Materialien, Stückzahlen und so weiter über den Ausgang weitergereicht.

Das ist wichtig zu wissen, wenn Du später mit komplexen Netzwerken arbeitest und plötzlich komplett falsche Zahlen oder Materialien im Netzwerk findest!

Aktivierung von Greifarmen

Auch Greifarme können beispielsweise automatisch aktiviert werden. Dazu habe ich ein neues Layout angelegt:


Unser gewohnter Strommast steht wieder in der Mitte, dieser dient wieder dazu die aktuellen Werte anzuzeigen.

Ganz oben steht ein konstanter Kombinator, welcher die grünen Signale STOP ins Netz bringt.

Die Greifer der beiden Zuführungskisten oben sind ebenfalls mit dem grünen Netzwerk verbunden. Bei den Einstellungen habe ich die Option “Aktivieren/Deaktivieren” eingestellt und als Bedingung, dass S gleich Null sein muss, damit die Greifer arbeiten.

Damit die Greifer aktiv werden, muss ich also den Schieber “Ausgang” beim konstanten Kombinator von “An” auf “Aus” schieben. Dadurch würden die Signale S, T, O und P nicht mehr geliefert und die Greifarme würde aktiviert werden.

Mit dem roten Netz verbunden ist der gelbe Greifer unten, der direkt mit der Kiste verbunden ist. Die Einstellung des Greifers lautet: Aktiviere dich nur dann, wenn sich in der Kiste Festbrennstoff in Höhe von weniger oder gleich 100 Stück befinden.

Das rote Kabel habe ich ebenfalls mit dem Strommast verbunden.

Ich deaktiviere das Stop-Signal und wir schauen was einige Zeit später passiert:

Durch das deaktivieren des Stop-Signals werden die oberen Zuführungs-Greifer aktiviert und beladen das Band. Der untere gelbe Greifer ist und bleibt aktiviert, da die Menge in der Lagerkiste unten ebenfalls noch nicht die 100 Stück erreicht hat.

Sind genügend Items, also mindestens 100 Stück in der Kiste, wird der Greifer noch einmal nachladen. Die Bedingung war ja kleiner oder gleich 100, um weiter einzulagern. Da der gelbe Greifer auf 3 Stück pro Heben eingestellt ist (Vanilla höchste Standardforschung) liegen entsprechend 1-3 Gegenstände mehr als vorgesehen in der Kiste.

Das kannst Du allerdings umgehen, in dem Du in der Greifarmeinstellung anhakst, dass nur ein Gegenstand genommen werden soll. Außerdem sollte dann auch der Greifarm so eingestellt werden, dass er nur dann arbeitet, wenn der Zielwert unter statt gleich oder unter 100 ist.

In der Übersicht rechts unter der Minimap sehen wir auch, dass sich nun aktuell im grünen Netz noch drei Festbrennstoff befinden, sprich in den Zuführkisten. Das rote Netzwerk zeigt uns 102 Festbrennstoff an, das ist der Wert der unteren Lagerkiste.

Beleuchtung

Auch mit den Lampen lässt sich allerhand anstellen 🙂

In diesem Beispiel habe ich jeweils einen konstanten Kombinator mit einer Farbe zugeteilt, diesen mit einem Kabel an eine Lampe angeschlossen und die Lampe so eingestellt, dass Farben laut den vorhandenen Farbvariablen eingefärbt werden sollen.

Farbvariablen sind die Farbflächen in der Variablenübersicht:

Du musst dabei allerdings beachten, dass – solltest Du mehrere Farben im Netz haben – es eine Rangliste gibt. Je niedriger die Farbe, desto schneller wird diese überschrieben:

  • Rot: Überschreibt immer alles
  • Grün: Überschreibt ab Blau
  • Blau: Überschreibt ab Gelb
  • Gelb: Überschreibt ab Violett
  • Violett: Überschreibt ab Türkis
  • Türkis: Überschreibt ab Weiß
  • Weiß: Überschreibt ab Grau
  • Grau: Überschreibt Farblos (Schwarz)

Diese Aufstellung entspricht auch exakt der Anzeige im Variablenfenster 😉

Sinnvolles Beispiel für Lampenfarben

Es ist natürlich ganz lustig, Lampen einzufärben, aber so richtig sinnvoll ist das (noch) nicht. Kommen wir also nun zu einem sinnvollen Beispiel.

Nehmen wir an, wir haben eine Kiste (oder einen Tank, oder eine Anzahl an Gegenständen auf einem Förderband). Wann immer der Inhalt unter einem gewissen Wert fällt, soll sich eine Lampe entsprechend von Grün (über 66%), Gelb (zwischen 33 und 66%) zu Rot (unter 33%) umfärben.

Ich möchte grüne Schaltkreise in eine Stahlkiste packen, das Licht soll dann den Füllstatus anzeigen. Ich plane etwas im Voraus und sehe die obige Aufstellung. Das heißt, das Basissignal für das Licht kann Gelb sein, da es durch Grün und Rot überschrieben wird.

Zuerst möchte ich die Anzahl der Lagerplätze und die maximale Anzahl pro Lager-Slot ermitteln. Diese nenne ich L für Lagerplätze mit einem Festwert von 48 und M für Menge mit 200.
Dazu baue ich einen konstanten Kombinator mit eben diesem Aufbau:

Damit ich, bzw. das logische Netzwerk weiß, was die maximale Lagermenge ist, platziere ich einen berechnenden Kombinator und errechne L (Lagerplätze) mal Stackgröße (M), das soll G für Gesamt ergeben. Außerdem verbinde ich den konstanten Kombinator mit dem Eingang des berechnenden Kombinators:

Jetzt weiß das Netzwerk, wieviele maximale Gegenstände in der Kiste sein können. Damit ich nun einen Vergleich erzeugen kann, muss ich zuerst wissen, wieviele Prozent Füllung vorliegt.

Unser guter alter Dreisatz kommt wieder zum Einsatz:
Gesamtmenge G = 100%
Aktuelle Füllmenge = x%

Daher müssen die Berechnungsschritte Aktuelle Füllmenge mal 100 und danach dieses Ergebnis (Z für Zwischenwert) dividiert durch G sein. Wir brauchen also zwei weitere berechnende Kombinatoren.

Nun stelle ich meine Kiste auf, darin platziere ich ein paar grüne Schaltkreise:

Dieser Kombinator erhält die Anweisung alle grüne Schaltkreise mal 100 zu rechnen. Damit diese Geschichte aber auch mit anderen Materialien funktioniert, verwende ich den gelben Stern. Diese spezielle Variable kann zur Berechnung aller Gegenstände verwendet werden.
Das Ergebnis soll als Z (Zwischenergebnis) ausgegeben werden.
Damit dieser Kombinator funktioniert, muss ich ihn mit einem Kabel an der Kiste (Tank oder was auch immer) natürlich anschließen:

Der nächste Kombinator (links unten) erhält vom vorherigen Kombinator das Signal Z mit einem Wert von 119.000 und vom oberen Kombinator die Variable G mit 9.600. Das Ergebnis ist P für Prozent, nämlich 12. Wir haben aktuell 12% Lagerstand in der Kiste:

Dieses Ergebnis, also P, möchte ich nun vergleichen. Nämlich ob der Wert unter 33% oder über 66% liegt.

Mein erster vergleichender Kombinator prüft nun, ob P kleiner als 33 ist. Falls dies der Fall sein sollte, soll mir die Farbe Rot mit einem konstanten Wert von 1 geliefert werden:

Dies trifft aktuell zu, denn wir sehen rechts unten, dass ein rotes Ausgangssignal vorliegt.

Ich erstelle einen weiteren vergleichenden Kombinator und verbinde das grüne Kabel mit dem Eingang des ersten vergleichenden Kombinators. Ich passe nun einfach nur die Farbe und den Wert an:

Wie wir von der Einleitung wissen wird das gelbe von roten und grünen Signalen überschrieben. Rot hätte dabei Vorrang. Da wir auch das gelbe Signal brauchen, setze ich einen konstanten Kombinator mit eben diesem. Diesen Kombinator verbinde ich mit den Ausgängen der beiden vergleichenden Kombinatoren. Das gelbe Signal liegt nun also immer auf dem Netz:

Die Signale habe ich mit dem roten Kabel verbunden. Auf dem roten Netz liegt jetzt also permanent das gelbe Signal und fallweise das grüne oder rote Signal, falls die jeweilige Bedingung zutreffen sollte. Gelb wird dabei von den höheren Farben immer überschrieben.

Ich verbinde nun mit dem roten Kabel eine Lampe und stelle diese entsprechend ein. Da Lampen grundsätzlich eine Aktivierungsbedingung benötigt stelle ich Y gleich Null ein, da diese Variable nicht verwendet wird:

Zum testen, ob alles funktioniert, lege ich weitere Gegenstände in die Kiste. Welche das sind ist wegen dem gelben Stern im berechnenden Kombinator aber egal, solange ein Stack 200 Stück haben kann:

Beispiel gelb:

Beispiel grün:

Und hier der Code für diese Schaltung:

0eNrNV02PmzAU/C8+VtCGj4QEdfe6l1baa7eqEIGXjSVjI2PSRhH/vc/QJYQAAbJqe4lijMfDzJtnOJEtyyGVlCvinwiNBM+I//1EMvrKQ6avqWMKxCdUQUIMwsNEj0JJ1T4BRSMzEsmW8lAJSQqDUB7DL+JbhXETI4aIxiC7Aezih0GAK6ooVIzKwTHgebIFiTvUOJqzCrlqAhkkFRmuFVxvj3jmevVxaZAj/rPwH26Ey5QULNjCPjxQXIM37ihTIHsUOFCpcrxSb1zdYX4hJVquJXTXNyToA/naALEXi6YOFVcOkX6cTGNZ+kdC3NSF4ggfMKIyyqkqhxauLTSLlnT2kAUdyrm1ch5yiamsqODTdqv4BzXAuZjWpHdUZioYLchzJUhlLfEdR4+SNJQlS598xhUiV2k+AVNLVqKmx6DUOthJkQSUIwrxdyHLoOhR+1UC8Lbebltv42J6czldWWn3eOde39zlnTO17O1W2d+2b1YIjsCY+NkoYqsRhAklfCXDpaRea7zukcmdWOLOf1Diq1WrxB9nlHhVp+9Z5PZ1U+mvYnvYPqfHruWNg2WwnbujHDsD32da2e0z0BjBtO4uUkBnS47kwwxrn0hRjA/SsE+bcSfF6sxBATAz2kOmho8I9+1wHUVyMY6Hd+aRhIyZLEzS4Wbn9p7xb/vVVTCjCL5dJnfRCu6Dns4zwD2Y0J1UyRzGq9KXknVNI4GY5okJDNEkRiUVDLr0sObZ0kdgc09Mrb8a05c5MX1qx/TTjJg+T4rpcrhhtgPSeIcY26y7jNSwU510/5GTEEb7hpnn1Fn6Nfnepvoyya3V9KaKnzHlZ4/f+NIyyAFfsErS9tpyvY3tORvP8iynKH4DTNmeag==

Filter von Greifern automatisch einstellen

Dieses Thema ist vergleichsweise schnell abgehakt 🙂

Der einfachste Weg einen Filter-Greifarm mit einem Filter automatisch auszustatten, ist die Nutzung eines konstanten Kombinators. Dazu habe ich die jeweiligen Gegenstände im Kombinator hinterlegt und mit einem Kabel an den Greifarm angeschlossen. Der Filter des Greifers wird damit automatisch angepasst:

In meinem gezeigten Beispiel laufen Montagemaschinen durch, während die Stahlträger und Lautsprecher abgefangen werden. Die letzten Beiden habe ich im konstanten Kombinator mit der Menge 1 hinterlegt.

Natürlich kannst Du auch einen anderen Kombinator wie einen entscheidenden Kombinator nutzen, um aus einer Bedingung den Filter zu steuern. Wichtig ist dabei lediglich, dass der entsprechende Gegenstand (keine Variable) an das Schaltungsnetz übergeben wird!

Hier der Import-Code:

0eNqdlm2PoyAQx78Lr3FTrA/V7De5NAZ12pJTIDA21zR+9wXd6/Zu3V3CG8PA+BuQ/8x4J+0wgTZCIqnvRHRKWlL/uhMrzpIPfg5vGkhNBMJIKJF89BYaLq1WBpMWBiQzJUL28IfUbD5SAhIFClhJi3Fr5DS2YJzDVwxKtLLuNSV9VIdK8t1LTsnNjcr8JXcxemGgWz2ymX5Cp1HoLAS9j0KnIegsCr0PQecPtL9X5BKTTo2tkByV2eBnh2+2Tj0EjRqaFi78KhzBvXYSA4IJ0oxFgCHRA0fwgunU5EXHnqRDf2Roo86GjyNvB0isBv7bnXMLls7HZVrK9QDWI5l/GOifdSmcxZxq53njAxZRd7MLuZsyCs1C0IcYdFGFoKso9CEEzXb/KaW7gMVvVbqAt1AfRWbVZyKkBeMGW7jq630W26LvhOkmgY1b6x+skzAWm0/6vQqDk5v5ONzikXB5w4uQ51W9a3aSeueNUXOzZGhNXpfl93Cj6qFRp0ZpcOtLWBYu8txrnP6TsH8T76f0enim28l83LqDqGpcFEFSiSrHRRnEjqrHRVAXYXkUO6j5sahaVWz0EdfAl6JbP/0bUHJ1olkc0gPLyiot91XJSraf5zelubiM

Alarmsignale nutzen (Teil 1)

Neben den bisher erwähnten Möglichkeiten für Schaltungen ist es auch möglich, Alarm-Mitteilungen und -Tonhinweise zu setzen. Dazu nutze ich das Layout meines Beispiels für die Farblampen:

Nehmen wir an, wir möchten nicht nur die Lampe einfärben, sondern auch einen Hinweis mit dem aktuellen Status bekommen. Das ist mit Lautsprechern möglich.

Statusanzeige Füllstand niedrig oder hoch ohne Alarmton

Es ist möglich einen frei wählbaren Alarm anzuzeigen, ohne einen Alarmton zu hören. Vorteil dabei: Du musst nicht lange nach der Lampe auf der Karte suchen, also in diesem Beispiel.

Da ich hier nur die Statuswerte niedrig und hoch verwenden möchte, bediene ich mich dem grünen und roten Signal. Ich stelle also zwei Lautsprecher neben den vergelichenden Kombinatoren auf und verbinde alle Lautsprecher mit dem gleichen Netz:

Die Lautsprecher sind im Moment noch nicht konfiguriert, das heißt, sie sind inaktiv. Ich öffne also den ersten Lautsprecher. Dieser soll mir eine Alarmmitteilung anzeigen, wenn der Kisteninhalt unter 33% (rotes Farbsignal vorhanden) erscheint.

Dazu muss ich einige Sachen einstellen:

  • Die Lautstärke drehe ich ganz nach links, um keinen Ton zu hören
  • Globale Wiedergabe hake ich an, obwohl es ohne Ton keinen Unterschied macht: Dies würde den Ton überall hörbar machen
  • Alarmmitteilung hake ich an, da ich einen Hinweistext bekommen möchte
  • Polyfonie lasse abgehakt, damit könnte man mehrere Töne parallel abspielen lassen
  • Als Vergleich verwende ich “Rotes Signal” größer Null (ich hätte aber auch “Rotes Signal” gleich 1 schreiben können)
  • Als Anzeige für die Alarmeinstellung wähle ich das Bild der Kiste und einen Hinweistext, der erscheinen soll: “Kisteninhalt unter 33%!”
  • Außerdem hake ich an, dass das Symbol auf der Karte angezeigt werden soll.

Ein Blick in die Netzwerkübersicht (am Strommast) zeigt, dass wir aktuell nur ein gelbes und ein grünes Signal vorliegen haben. Daher springt der Alarm nicht an.

Stellen wir also den zweiten Lautsprecher ein. Ich kopiere mir die Einstellung vom ersten Lautsprecher und übertrage diesen auf den zweiten Lautsprecher. Ich ändere hier nur die zu prüfende Farbe und den Hinweistext:

Alarmsignale nutzen (Teil 2)

Hinweistext mit Prozentangabe

Damit ich eine genauere Auskunft über den Prozentstatus bekomme, muss ich ein wenig tricksen. Ich brauche hier nämlich für jeden Prozentwert mehrere vergleichende Kombinatoren.

Der erste Kombinator muss prüfen, ob der aktuelle Prozentwert (P) unter 10 liegt. Falls das zutrifft, soll die Variable Null (“0”) auf 1 gestellt werden:

Die folgenden Kombinatoren enthalten Bereiche. Ich brauche also zwei vergleichende Kombinatoren um das umzusetzen. Davon muss ein Kombinator prüfen, ob der Wert größer oder gleich dem jeweiligen Prozentwert liegt:

Der zweite Kombinator muss prüfen, ob der aktuelle P-Wert unter der nächsten Schwelle liegt:

Diese Einstellungen übernehme ich jeweils für die Reichweiten 10 bis 19,9%, 20 bis 29,9%, 30 bis 29,9% und so weiter bis 90 bis 98%.

Den letzten Kombinator stelle ich so, dass der Prozentwert überprüft wird, ob dieser über 98% liegt. Hintergrund ist, dass Nachkommastellen in der Berechnung grundsätzlich abgerundet werden und ansonsten dieser Wert nur mit viel Glück angezeigt werden würde:

Gehen wir das Ganze nochmal durch: Jeder Prozentwert wird durch die jeweilige Variable Null bis 9 dargestellt. Da uns hier die Zahlen ausgehen, verwende ich als Ausgangssignal einfach das grüne Häkchen.

Als nächstes platzieren wir Lautsprecher zu den jeweiligen Prozentwerten und verbinden diese mit den Ausgängen der Kombinatoren. Die Signale können sich ruhig komplett addieren, da wir verschiedene Variablen verwendet haben. Zur besseren Übersicht was passiert, habe ich auch ein Verbindungskabel zu einen Strommasten gezogen:

Wir sehen nun rechts über den Strommast, dass es keine Null gibt, denn diese würde nur bei einem Füllwert unter 10% anschlagen. Das gleiche gilt für das grüne Häkchen, da es nur ab 98% Füllmenge aktiviert werden würde.

Alle anderen Kombinatoren bestehen aus zwei Signalen, welche sich durch diese Verkabelung addieren. Mit anderen Worten: Ist ein Zwischenwert (also gleich/größer 10 oder kleiner 98) auf dem Wert 2, so trifft diese Bedingung zu.

Ich stelle nun die Alarmmitteilungen wie oben gezeigt wieder ein. Jeder Lautsprecher bekommt dabei eine eigene Prüfung, beziehungsweise einen eigenen Text:

  • 0%: Wenn Signal Null gleich 1, dann zeige Text an: “Wenig Inhalt!”
  • 10%: Wenn Signal Eins gleich 2, dann zeige Text an: “10-19%”
  • 20%: Wenn Signal Zwei gleich 2, dann zeige Text an: “20-29%”
  • (…)
  • 90%: Wenn Signal Neun gleich 2, dann zeige Text an: “90-97%”
  • 98%: Wenn Signal “grünes Häkchen” gleich 1, dann zeige Text an: “Kiste voll!”

Ich stelle also den ersten Lautsprecher ein und kopiere diese Einstellung auf den zweiten Lautsprecher. Den zweiten Lautsprecher passe ich ein wenig an und kopiere diese Einstellung zum dritten Lautsprecher und so fort. Sind alle Lautsprecher eingestellt, erscheint ein Hinweis mit der Prozentangabe:

Hier noch der Code für die Schaltung:

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

Projekt-Beispiele

Im Anhang findest Du einige Beispiele inklusive Import-Codes, wie Du das eine oder andere Problem lösen kannst.

Ich halte mich ab hier recht kompakt, da Du bereits die Grundlagen eines Aufbaus nach meinem Guide beherrschen solltest.

Falls etwas unklar (oder gar falsch ausgeführt) ist, bitte einfach ein Kommentar hinterlassen!

Beispiel: Bahnübergänge sicher machen

Einmal nicht auf die Karte geschaut und schon vom Zug überrollt. Wer hat diesen Erfolg nicht nicht abgeräumt? Dabei wäre es doch recht einfach, unnötige Todesfälle auf Gleisen recht zuverlässig zu verhindern. Du hast es erraten: Mit einer Schaltung!

Dafür gibt es mehrere Optionen. Fangen wir bei den einfachen Optionen an.
Manchmal könnte es schon reichen, einfach eine Lampe angehen zu lassen, wenn sich denn ein Zug in Anfahrt befindet. Dazu könntest Du neben den Schienen eine Lampe montieren:

Dazu brauchen wir neben Lampen auch wenigstens ein Zugsignal, von dem wir den aktuellen Status abrufen können. Das Zugsignal verbinde ich mit einer beliebigen Kabelfarbe (in meinem Beispiel ist es das rote Kabel) über die Strommasten und gebe den aktuellen Status an die Lampen weiter:

Die Lampen stelle ich so ein, dass diese Farben nutzen sollen. Da ich eine Aktivierung zwingend setzen muss verwende ich eine immer gleiche Lösung wie beispielsweise A = A.

Das verwendete Zugsignal in der Nähe habe ich so eingestellt, das die Signalfarbe ausgegeben werden soll. Von Hause aus wird hier Rot/Gelb/Grün vorgeschlagen.
Das war’s auch schon mit dieser Lösung 😊

Die zweite Option wäre, das Signal des Zugs auf rot zu stellen, sobald sich der Spieler über einen gewissen Bereich nähert. Solche „Druckplatten“ gibt es zwar an sich nicht, aber automatische Tore erfüllen diesen Zweck ebenfalls.

Ich baue vor dem Schienenübergang also ein paar Tore. Diese verbinde ich nun mit dem roten Kabel mit dem bereits bestehenden Schaltungsnetz. Du musst hier allerdings darauf achten, dass Du ein Mauersegment an das Tor stellst: Kabel lassen sich nicht direkt mit Toren verbinden sondern nur mit den direkt daneben liegenden Wandstücken. Muss man zwar nicht nachvollziehen können, aber ansonsten kommen vermutlich Fragen auf:

Das Tor könnte man jetzt so konfigurieren, dass die Tür nur öffnen darf, wenn das grüne Signal vorhanden (also größer Null) ist. Das Tor bleibt nun so lange geöffnet, solange kein Zug in der Nähe ist.

Das hat aktuell allerdings einen Haken: Wenn Du zur ungünstigsten Zeit durch das Tor läufst könnte es passieren, dass Du Dich auf den Gleisen quasi einsperrst. Auch nicht so toll:

Die nächste Möglichkeit wäre den Zug automatisch ein Stopp-Zeichen geben zu lassen, wenn Du ein Tor öffnest. In diesem Fall stelle ich bei den Toren ein, dass diese sich nicht automatisch schließen sollen, dafür aber ein Signal in das rote Kabelnetz senden sollen. In meinem Fall verwende ich dafür das Signal S (für Stopp).

Das Signal rechts meiner Spielerposition stelle ich nun aber so ein, dass es neben der Ausgabe-Signale auch eine Bedingung bekommen soll (Signal schließen). Sobald S mehr als 0 ist, soll sofort dieser Streckenabschnitt gesperrt werden.

Beachte bitte, dass ich hier nur einen Aufbau zur Demonstration hingestellt habe. Das Zugsignal müsste natürlich bedeutend weiter vom Übergang weg, je nach Geschwindigkeit und erforschter Bremskraft Deiner Züge!

Wird ein Tor manuell geöffnet und ein (oder mehr) Signal(e) dadurch auf rot gestellt, sendet das Zugsignal aber keine Farbe mehr. Ich helfe mir hier, in dem ich einen konstanten Kombinator an das Schaltungsnetz anschließe und das gelbe Signal vergebe.
Wie wir seit dem Einleitungsabschnitt über Lampen wissen ist, dass Gelb von allen anderen Farben überschrieben wird:

Bei dieser Variante kann es allerdings vorkommen, dass der Zug bereits das Signal überfahren hat, man einen Augenblick zu spät über die Tore öffnet und damit der Zug das Signal mehr oder weniger ignoriert.

Das hat nun zwar mit Schaltungen nicht viel zu tun, aber hier kann man sich mit Kettensignalen helfen. In diesem Fall baue ich ein wenig um und baue das eigentliche Signal direkt zum Tor. Ein Stück weiter hin, also gegen die Zugfahrrichtung, kann ich ein Kettenzugsignal hinsetzen.

Diese Kettensignale prüfen, welches Signal das nächste kommende normale Signal hat und schalten automatisch auf die entsprechende Farbe. Damit kannst Du entsprechend viele Abschnitte im Vorfeld bereits sichern:

In diesem Beispielbild ist das Kettensignal rot, weil das in Fahrtrichtung nächste Signal (direkt vor dem Tor) auf rot steht. Und dieses ist rot gestellt, weil ich mit meinem Charakter eines der Tore ausgelöst hatte.

Natürlich kann man mit mehreren Vor-Toren (wie in meinem Layout) frühzeitig bevor man die Gleise erreicht das Signal umstellen lassen, damit die Pufferzeit für den erzwungenen Zugstopp größer wird.

Durch ein Video von SeeNo bin ich noch auf eine interessante Option gestoßen, was zwar Holzhacker-Mentalität hat, aber funktionieren sollte:
Man kann Tore auch auf Gleisen montieren. Das heißt, wenn Du ein Tor öffnest wird ein Signal geschickt. Wenn dieses Signal bei den Stopp-Toren auf den Gleisen ankommt, sollen diese schließen.

Das baue ich nun einfach mal nach und stelle auf die Gleise Tore hin. Im nördlichen Bereich (oben) setze ich jeweils noch ein Wandstück an, über das ich das rote Kabel verbinde. Die beiden Tore stelle ich so ein, dass sie sich öffnen sollen, wenn S kleiner als 1 ist.

Unsere Stopp-Tore, durch die wir laufen senden dann an das Netzwerk ein S, wenn ein Tor geöffnet wird. Das heißt, sobald ein Tor geöffnet wurde, schließen sich die Tore am Bahnübergang auf den Schienen. Wie gut, zuverlässig oder zerstörerisch dies wirkt kann ich momentan leider selber nicht überprüfen 😊

Blaupause

Da wir in diesem Beispiel so viele verschiedene Schaltungen gemacht haben verzichte ich ausnahmsweise auf eine Blaupause. Die Schaltungseinstellungen sind allesamt recht einfach und selbsterklärend wie ich finde.

Beispiel: Lampen zur Füllanzeige

Manchmal kann es sinnvoll sein, eine größere, beziehungsweise besser sichtbare Skala zu verwenden. Speziell im Radarmodus kann man damit schnell einen Wert sehen.

Das mag anfangs zwar ein wenig Aufwand sein, es lässt sich aber recht einfach auf andere Läger ummünzen:


Ich habe hier zu Testzwecken mehrere verbundene Lagertanks aufgebaut. Da der rechte Tankblock nur passiv über ein Untergrundrohr aber nicht mit einer Pumpte versorgt wird, füllt sich der rechte Bereich langsamer.

Zwischen den beiden Tanks habe ich 12 Lampen-Reihen hingestellt: Eine für Null und danach jeweils eine für 10-90%. Die zweite Reihe von oben verwendet eine Füllmenge von 98%, ganz oben 100%.
Da es häufig wegen Rundungsfehlern nicht zu 100% kommt, habe ich mich für die 98% entschieden, 99% sollten aber ebenfalls funktionieren. Sollte es dennoch einmal auf 100% gehen, leuchtet die oberste Reihe weiß 🙂

Wie habe ich das Ganze aufgebaut:

  • 1. Alle Tanks mit einem Kabel, beispielsweise Grün, verbinden
  • 2. Einen Dreisatz aufziehen und den Prozentsatz der Lagermenge errechnen (siehe Lampen-Einführung weiter oben):
    • Konstanter Kombinator: A entspricht der Anzahl der Tanks (in meinem Fall 25), E der Lagermenge pro Tank (25.000).
    • Berechnender Kombinator 1: Rechne A (Anzahl) mal E (Einzellagermenge), das Ergebnis ist G (Gesamtmenge)
    • Berechnender Kombinator 2: Rechne den Tankinhalt (gelber Stern) mal 100, Ergebnis ist Z (Zwischenergebnis)
    • Berechnender Kombinator 3: Rechne das Z (Zwischenergebnis) dividiert durch G (Gesamtmenge). Das Ergebnis ist P (Prozent)

Nun habe ich mit dem grünen Kabel alle Lampen verbunden. Ausnahme ist hier nur die unterste Reihe, die immer rot leuchten soll.

Die Einstellung pro Zeile entspricht von oben nach unten:

  • Wenn Z = 100
  • Wenn Z >= 98
  • Wenn Z >= 90
  • Wenn Z >= 80
  • Wenn Z >= 70
  • Wenn Z >= 60
  • Wenn Z >= 50
  • Wenn Z >= 40
  • Wenn Z >= 30
  • Wenn Z >= 20
  • Wenn Z >= 10

Die unterste Reihe leuchtet immer und sagt Null Prozent aus.

Um die Lampen einzufärben habe ich mich rechts der Lampen für einige konstante Kombinatoren entschieden. Diese senden die entsprechende Farbe an die mit der anderen Kabelfarbe verbundenen Lampen. In meinem Fall hatte ich die Prozentmenge mit dem grünen Kabel verbunden, daher habe ich für die Farben das rote Kabel verwendet, da Rot jede andere Farbe überschreiben würde, wenn diese im gleichen Schaltungsnetz liegen würde.

Hier noch der Import-Code zu diesem Beispiel:

0eNrlXN1uo1YQfhcuK7zl/B8s9aIX1d7udapVRBw2QbXBwpA2WvkB+iB9sT5JATexc5jZnAGMSvcmku1hGL4zP9/MOeRrcLet032Z5VWw/hpkmyI/BOtfvwaH7CFPtu131fM+DdZBVqW7IAzyZNd+OlRFmTykqyrJfwuOYZDl9+kfwZodP4dBmldZlaUnPd2H59u83t2lZSPwqmGf7ZvLi9VDWdT5faN5Xxyay4q8vWerSnxQYfAcrFeMf1DHY9jTxf11xe/pEt66uHxPlzyjVN8dqqS7uG8TP2mxDXp5mj083hV12WKmQ24/A2rVq9p2kRrgq9Wm2N1ledKsBaDfvNhpGzPD4D4r083p98bARkVVFtvbu/Qxecqa65uLvmTbKi2R5X/Kyqpuvjk/Wyex+rld/U0DVdUt7tkPuq/z/HTPQ6uJtX/K9P7SL7LmE2ulISC1F5A8PgMJ3fGhTNPcvae5uF1ng2ltcFZChiZUEloL42WZVAMs045lHLJMh8ZAdtkB4aV77gEojgfEmpdiFg2IPD/NF7mm3u2/BYFffGyyclNn1W3z2/2rni9ZeahuqeFyit9gHbUfdvuk7GJ4HfwUHP3jRrk+zJE4Yvw9JOJlI9FkEAcKgUEh3oHi7GQLhQJ1AgkX774zvCLAuzDzzlxMYbdWvrc2b299AT+nGCJdd9CYZdrTMh4NBwWqNJAtxtcWMQ1KbqVxPwvUlfzLDFcvtgrXVg1pPteZwy7ZblfbBApSwXqrcZXAvHkbmCzyD00Qcs5diLE8xf3L4hmMHsQc0sz8IBaLhRhBlPs9N1/mc7PY5Y0Yq+b+vc4ZDK/o5b4lRg7NpryXo2LsKZX/U1paAPnWDDlNnuYS7Aggy3wriNQD8XfbJo4VVm4pTXDU77zgvovHVBITjYFeRM7zSszdRESlOBHR8934Flh8C0blNNNihNIGwakEh4gRM94YCSLPYFctBp/eFoPYOrXg7z//aiXqQ9rcZlu0IVKVderfFQjbDub8CkcrC4MmiaBFs4IWTQ6aS92lQFEEZWEUFZGHLB1Ft3wJjaMIycIoaiKL/b/5ojD+vigwwiAMEcWlp0EN5DoMRe2dFy0xopeOogG6WAxF4e2LMbV5iCZl1TJCDJMRle8TaYtwK7DEaItkVII/CiPpUjstMcM4jRrMGgFm8mwsFerw0k2+CithkshBZ61g9vo8QEp/HiBRx5O03LtwEKWbTiVOA0BZGEQiJV169LpTWIkzUlAWBpHISJefAp3aEPnnRNwTiYR06eHcy3M4H+3Lop5oaSdFhMLIwpQHRU4PNfqwCO465NGgGDmBUxhjVORhoBhF03qGYfxRkUeDRIyUyxgVNgxU5GHgKIyUe0JAY92cErTo4S9Um891zKrd2ngNnZCg5Jc3SqJ2y+lfPZwSgrqJtJf02k0QMSQl5fyWgM7BIceclKJRZzFnmVCTlwnljiKUdb4wHK0boCy8XpqGKp8TVT09qr1OzfjTQIWVIWVoXHrpIGp/GgjKwiASJ2pLj++eJ8Y4iJAsDGJM49JLB9HNc5r550TUE3VEA3Hp4Wz8W+OeLOqJmg1sSMQ1KdVzut0Wv4/vSPDH5tSJNpFta2yPUQvqyHoUudbcd06sJXWATYRE9ng+ipGi9ot6FEZYt641tVnURC/pTWow7qINtT0cC4lnT6YttVkkYqR4HyOHNVu/pkefq25SZtXjLq2yjV8D6ZfrzlrPpeQw9ND5IW113NI6yGKflqdebh380IgUdbWvCXf+GBwpbzmILhlz5OdusumxLiYir8vLsUA967rcDFmXj+66/DhgXT6R1sWdAvB3AoaflxE+WoiVUcNobamak4KJySmYwbfFjDsCthhtNcT9WDknZvL6DZQR/g2UwRiCEbQudOEgml4E49wflIVBJG7QLj16Xf5p8KMCoCwMoqJ1octPgU6eI+RE3BOJG7RLD2c8BRrh7XikF521O8JHX5+2g0mynZWMpcnm8YKPOe/rjCXCNzjhghsmOw0VJr5kZ+YMBDZ5IFh3T9LimyUuhBy4FMTURjRM9ZyY8umTi7vlbJl/mbOYY1pG4woLB7HvmHiZA2VhEInvOS48uvue+I26B8nCIAoaV1h6iuzlOZy19mVRT5Q0EJcezgTq35PFPVEN3Dsx19w7aR9/9MYJ/szEgwj2qo7Dhgzk2Amet+9zj/IubDZuiUcmvxOwnPDChouWeNLgu0DP3fuwWEtt44HJyf73k9Npk6xJ4N0/vltf/J+8MHhqbDptd1kmTcyNiA0zTByP/wDYo/WC

Beispiel: Kisten gleichmäßig befüllen

Schauen wir uns ein praktisches Beispiel an, wie wir Kisten gleichmäßig befüllen können. Unsere Ausgangssituation sieht so aus:

Das heißt, wenn hier etwas auf dem Band liegt, würde der oberste Greifer alles nehmen und nur ein Bruchteil würde in den unteren Kisten ankommen; also so lange, bis die erste Kiste voll ist.

Das Beispiel soll zeigen, dass man mit einer einfachen Schaltung auch diese Greifer entsprechend ein- und ausschalten kann, je nach Zielmenge in der Kiste.

Um die Kisten gleichmäßig zu befüllen, müssten wir zuerst wissen, …

  • 1. Wieviele Gegenstände sich in allen Kisten befinden und
  • 2. Was der Durchschnitt, also das Befüllungsziel ist (Menge der Gegenstände dividiert durch Anzahl der Kisten)

Dafür können wir einen berechnenden Kombinator verwenden. Ich setze diesen über die Kisten.
Da sich aber die Anzahl der Kisten ändern könnte, möchte ich eine weitere Variable nutzen, nämlich A für Anzahl der Kisten. Daher stelle ich zusätzlich einen konstanten Kombinator auf:

Im konstanten Kombinator stelle ich die Variable A mit einem Wert von 5 ein, da ich in diesem Beispiel fünf Kisten verwende.

Im vergleichenden Kombinator stelle ich also den gelben Stern ein, da ich nicht weiß, was in den Kisten liegen wird. Dieses Ergebnis möchte ich durch die Anzahl der Kisten, also A, dividieren.
Als Ergebnis möchte ich Z für Ziel bekommen:

Jetzt geht’s an verkabeln. Wichtig ist hier, dass wir uns erstmal auf eine Kabelfarbe fixieren. Ich verwende für den ersten Teil die roten Kabel, da diese besser zu sehen sind.

Ich verbinde nun alle Kisten miteinander und hänge diese an den Eingang des berechnenden Kombinators. Dann verbinde ich ebenfalls den konstanten Kombinator mit dem Berechner-Eingang, da ich ja die gesamte Anzahl der Kisten (A) benötige.

Da der berechnende Kombinator nur das berechnete Signal weiterreicht, können wir vom Ausgang des berechnenden Kombinators mit dem roten Kabel auch die Greifer verbinden. Denn Z muss den Greifern zur Verfügung stehen, sprich: Welche Menge darf aktuell in der eigenen Kiste liegen?

Die Schaltung wird so aber noch nicht funktionieren, da die Greifer nicht wissen, wieviel Inhalt in der jeweiligen Kiste ist. Also müssen wir nun die Greifer einzeln mit dem grünen Kabel an die jeweilige Kiste anschließen. Mit der Q-Taste kannst Du das Weiterverbinden beim Kabelziehen abbrechen.

Ich verbinde nun also mit dem grünen Kabel alle einzelnen Greifer mit deren Kisten:

Da die Greifer aktuell noch nicht eingestellt sind, machen die erstmal nichts. Ich stelle einen der Greifer ein und kopiere, bzw. übertrage die Einstellung auf alle weiteren Greifer.

Wenn in der Kiste weniger beliebige Gegenstände (roter Stern) liegen, als der aktuelle Durchschnittswert (Z / Zielwert), dann darf der Greifer arbeiten:

Ich schalte meinem STOP-Kombinator ab, damit die oberen Greifarme beginnen, Gegenstände – in meinem Fall grüne Schaltkreise – auf das Förderband zu legen. Beachte, dass ich hier zwar Stapelgreifer verwende, aber nur ein gelbes Förderband. Dass ohne Schaltung überhaupt ein Gegenstand bis zur zweiten Kiste kommen würde, wäre mehr als unwahrscheinlich:

Und hier noch der Import-Code:

0eNrlmM+OmzAQxt/FZ9JiO/xVe+gTtFJ72moVAfEmVhODjFk1WvHuNRBtWOLZ2FZ7qHKJYoJ/nnzzzdjwgspDxxrJhUL5C+JVLVqU/3xBLd+J4jBcU6eGoRxxxY4oQKI4DiMlC9E2tVSrkh0U6gPExZb9Rjnug5uT265sVaF4LWYTSf8YICYUV5xNIYyD00Z0x5JJTb7MV4wdVtWetUpDm7rlI0svpzmrdP0hCtBJf8v0t36IZ0Eir6Th76pCqFVVH0suClVLE5G8EiNNDNCWS1ZNd2iWhihZHzYl2xfPXBP0tCd+UEwCUj5zqTp95fKHxjtW3wc5qrobcoFvKAoxfhgZxInx1cigToxvRsa6fxwvCzHp1w4kPHzsJGNinna+PS85G0d6uimhdGaNovq14qJlUutvyiV94443uYzNuay4rDquNvq37SvrictWbVxTO7kN5eEwODaFHB2Xo8+od9GFADqsofp819NXOqwN6MhBYgyjyf8ucWzbhcJbXSjxShaxSVbqhaY26MzUxa+xWXiGhhopGN/ty7ob+yGmjwYsDr1CDm1CxtiLja3YzntJCC8Q/8W95Mus/0azvQTqv5JtlyWAh3jOhTmOgZLA1M4TCYE8kRkt4dXN0tQqbZEXO7NiX1pEIbnaH5ni1Q1TYGgBwBIX8KVlth49kxXVfjBKywbMxs1ddcPklOscfdS31J1qOofFH1DfO7iRLA4DOBvNTID7CWhXr8abxla59+q8aWLFzpy3njPYu97fCk7C4Yhu3i0hsUnoHnTsFHS2jDKCo4Q2dYJ9TjfXafuHB0j2zORJ7bnY+dTrw7QbzI5Dn1Dv74xlKRICaj5WqVFz4qV5fC+ak6vyS2Bjh5DI1KsfWT0REL/9ObJiR+5tI3JpG1qxhboxrG4Cqev+MHCW1jbKaBElfacFp1CUiVehRXdTaFfdLIVFht5AkNRL5PXdiJwsnYxhkWNI5Myr41g911KPgwp1qmW4wVDo9ET9ziX0blwFVyqdtkT98/juOZ+95w6QjrmdXkeleJ1kJKFZghNM+/4PWKe1rQ==

Beispiel: Ölverarbeitung: Vorbereitung

In diesem Beispiel habe ich eine recht kompakte Ölverarbeitung aufgestellt, lediglich um die Arbeitsschritte zu demonstrieren.

Gehen wir die Ölverarbeitung durch:

  • Rohöl-Pumpen befüllen einen Rohöl-Tank
  • Der Rohöl-Tank beliefert die Raffinerien
  • Die Raffinerien erzeugen drei Produkte:
    • Flüssiggas,
    • Leichtöl und
    • Schweröl.

Alle Endprodukte bis hier hin fließen in jeweils vier Tanks.

Das Problem an der Ölverarbeitung ist, dass – wenn auch nur ein Tank der bisherigen Endprodukte voll wird – die komplette Produktion der Raffinerien zum Stillstand kommt.

Wir müssen also versuchen, den Tank-Bestand möglichst im idealen Bereich zu halten.
Was verarbeiten wir also effektiv weiter?

Aus Flüssiggas erzeugen wir Schwefel, den wir in einer weiteren Anlage zu Schwefelsäure umwandeln können. Für die Schwefelsäure plane ich ebenfalls vier Tanks (Batterie-Erzeugung). Wenn aber die Schwefelsäure-Tanks voll sind, muss nichts weiter passieren. Sind die Tanks voll, schaltet sich eben diese Anlage ab. Kein Problem soweit. Das betrifft unser Ausgangsproblem mit den Zwischenprodukt-Tanks nur indirekt.

Außerdem können wir mit Flüssiggas auch Kunststoff herstellen.

Aus Schweröl können wir Schmiermittel erzeugen. Auch hier wieder vier Tanks für das Schmiermittel. Sind die Tanks voll, schaltet sich auch diese Anlage automatisch ab. Betrifft uns soweit auch nicht.

Das Leichtöl könnte zum Problem werden, da wir bis zum Ende des Spiels keine direkte Verwendung dafür haben. Es wird für die Herstellung von Raketentreibstoff verwendet.

Problem-Analyse

Wir könnten bei einem Tank-Inhalt von beispielsweise 80% beginnen, Festbrennstoff aus den jeweiligen Grundressourcen zu erzeugen. Dabei wird mäßig viel Material verbraucht.

Außerdem können wir aus Schweröl Leichtöl und aus Leichtöl wieder Flüssiggas herstellen.

Meist besteht das Problem darin, dass wir zuviel Leichtöl bekommen, was wir anfangs nicht wegbekommen.

Beispiel-Ölindustrie (stark minimalisiert 🙂


Der Ablauf ist denke ich ganz ordentlich nachvollziehbar hinterlegt. Aktuell gibt es aber das Problem, dass auch der Festbrennstoff (FBS) permanent erzeugt wird und damit anderen Anlagen, die viel mehr Gewichtung hätten, das Flüssiggas (FG) weg nimmt.

Genau diesen Zusand werden wir jetzt ändern 🙂

Hinweis: Das ist übrigens nur ein einfacher Test-Aufbau, da ich möglichst viel auf eine Bildschirmseite bekommen wollte. Normalerweise würde ich SEHR viel umfangreichere Komplexe bauen!

Prioritätsliste

Im Idealfall sollten die Produktionsschienen für Schwefel, Schwefelsäure, Kunststoff und Schmiermittel immer laufen.

Was wir allerdings einstellen können sind die Umwandlungsbereiche 7a, also Schweröl zu Leichtöl, der Bereich 7b Leichtöl zu Flüssiggas und die drei Festbrennstofferzeuger, welche das jeweilige Basismaterial verwenden.

Ich würde daher folgende Werte vorschlagen:

  • Wenn der Schweröl-Tank mehr als zu 40% Inhalt besitzt und gleichzeitig das Leichtöl niedriger als 40% befüllt sind, so soll die Anlage 7a in Betrieb gehen (Schweröl zu Leichtöl umwandeln).
  • Wenn der Schweröl-Tank mehr als zu 60% Inhalt besitzt, soll die Anlage 8a starten (Festbrennstoff durch Schweröl erzeugen).
  • Wenn der Leichtöl-Tank mehr als zu 40% Inhalt besitzt und gleichzeitig das Flüssiggas niedriger als 40% sind, dann soll die Anlage 7b anspringen (Leichtöl zu Flüssiggas umwandeln).
  • Wenn der Leichtöl-Tank mehr als zu 60% befüllt ist, soll die Anlage 8b starten (Festbrennstoff aus Leichtöl erzeugen).
  • Wenn der Flüssiggas-Tank mehr als 60% befüllt ist, soll die Anlage 8c starten (Festbrennstoff aus Flüssiggas erzeugen).

Beispiel: Ölverarbeitung: Erste Arbeiten

Um diese Schritte zu erreichen, müssen wir wissen, wieviele Prozent in den jeweiligen Tanks enthalten sind. Dazu verbinden wir einen Tankblock (das heißt alle Tanks die zusammenstehen) mit einer Kabelfarbe und verwenden unseren Dreisatz:

Gesamte Lagerkapazität = 100%
Aktuelle Lagerkapazität = x%

Daher müssen wir pro Tankeinheit zwei berechnende Kombinatoren verwenden: Einmal Aktueller Lagerstand * 100 und der zweite Kombinator mit vorheriges Ergebnis durch Lagerkapazität.

Dabei führt das rote Kabel in den linken Kombinator mit der Formel “Aktueller Inhalt” (gelber Stern) mal 100 und gibt L für Lagerstand aus. Das grüne Kabel führt vom linken Ausgang zum rechten Eingang.
Der rechte Kombinator berechnet das gelieferte Ergebnis aus L (Lagermenge) dividiert durch 100.000 (vier Tanks je 25.000 maximale Lagermenge). Und zu guter Letzt habe ich noch am rechten Kombinator ein rotes Kabel zu einen Strommast gezogen, damit ich später auf dieses Signal zurückgreifen kann. Das Ausgabesignal soll Schweröl sein, damit ich es später besser erkennen kann:

Alternativ könntest Du natürlich hier auch wieder mit konstanten Kombinatoren (Anzahl/Kapazität) und einem berechnenden Kombinator arbeiten. In diesem Beispiel bleibe ich bei einem fixierten, sprich manuellen Wert.

Diesen Aufbau übertrage ich nun für alle Tanks, die ich in Verwendung habe und führe (in meinem Beispielfall) alle Endergebnisse mit dem roten Kabel an die Strommasten und hänge damit alle Ergebnisse in ein logisches Netzwerk.
Wichtig ist hier, dass der rechte Kombinator immer das jeweilige Lagermaterial ausgibt, also beispielsweise Rohöl, Wasser oder ein anderes Material:

Wie Du hier gut erkennen kannst, sind die Läger für Schwefelsäure und Wasser gut befüllt, Rohöl ist auf einem guten Weg. Bei den angezeigten Werten handelt es sich immer um Prozentangaben, das heißt 100 wäre randvoll, 1 wäre nahezu leer. Taucht ein Material gar nicht mehr auf, ist der Tank komplett leer.

Um die verschiedenen Anlagenteile zu steuern bediene ich mich einer recht einfachen Methode: ich schalte einfach die Zuführpumpen ab die sich vor den jeweiligen Verarbeitungsbereichen befinden, sollte das eine oder andere Ergebnis zutreffen.

Festbrennstoff-Anlagen

Beginnen wir mit Festbrennstoff-Bereichen. Diese haben nur eine Bedingung: Wenn das entsprechende Ausgangsmaterial über 60% befüllt ist, soll die Anlage starten – sonst nicht.

Ich ziehe das rote Kabel vom Strommast, wo bereits alle Prozentwerte zusammenlaufen und verkable mit der gleichen Farbe die drei Zuführpumpen nahe den Festbrennstoff-Straßen.

Als Aktivierungsrichtlinie stelle ich das jeweilige Material größer als 60 ein:

Damit laufen die Pumpen für die jeweiligen Verarbeitungsstraßen nur noch an, wenn mehr als 60% im jeweiligen Lagertank sind. Das war ja nicht so dramatisch!

Schauen wir uns jetzt die Umwandler an.

Ressource-Umwandler einstellen

Die beiden Straßen zur Umwandlung von Rohöl zu Leichtöl und Leichtöl zu Flüssiggas benötigen zwei Abfragen:

  • 1. Ist der Lagerstand des Ausgangsmaterials über 40% und
  • 2. Ist der Lagerstand des Zielmaterials unter 40%?

Diese Abfrage schaffen wir mit zwei Vergleichs-Kombinatoren, welche jeweils ein Signal abgeben. Wenn beide Abfragen korrekt sind, erhält die Zielvariable zwei Stück. Diese zwei Stück können wir mit der Pumpe abgleichen – arbeite nur dann, wenn zwei Variablen vorhanden sind:

Den gleichen Aufbau mit sehr ähnlicher Einstellung (nur die Materialien ändern) setzen wir bei der zweiten Anlage, also dem Schweröl zu Leichtöl:

Hier trifft auch wieder nur eine Bedingung zu, daher wurde die Pumpe gestoppt.

Beispiel: Ölverarbeitung: Alarme

So sollte das eigentlich schon funktionieren. Ich hätte dennoch gerne ein paar Alarm-Einstellungen vorgenommen, damit ich informiert werde, wenn:

  • Rohöl-Tanks haben weniger als 20% Füllmenge,
  • Schweröl-Tanks haben mehr als 80% Füllmenge,
  • Leichtöl-Tanks haben mehr als 80% Füllmenge,
  • Flüssiggas-Tanks haben mehr als 80% Füllmenge,
  • Schmiermittel-Tanks haben weniger als 20% Füllmenge,
  • Schwefelsäure-Tanks haben weniger als 20% Füllmenge und
  • Beim Festbrennstoff staut es sich.

Diese Hinweise können wir mit Hilfe von Lautsprechern (siehe Abschnitt weiter oben) realisieren.
Die Lautsprecher werde ich neben die Festbrennstoff-Straßen setzen, da ich ja auch eine Bandkontrolle machen muss.

Einstellung für Niedrigstand-Alarme

Zuerst beginne ich mit den Niedrigstand-Alarmen. Dazu baue ich drei Lautsprecher auf und verbinde diese mit dem roten Netzwerk. Außerdem konfiguriere ich nun den ersten Lautsprecher so, dass er anschlagen soll, falls das Rohöl unter 20% fällt. Ich stelle die Lautstärke auf Null, denn ich möchte nicht permanent die Alarm-Sirene hören 🙂
Außerdem wähle ich das Symbol mit dem leeren Tank aus und schreibe meinen Hinweistext, also “Rohöl-Tanks unter 20%” rein.
Das Tank-Symbol nutze ich deshalb, da alle selbst erstellten Alarme auf ein Symbol zusammengeschoben werden. Hier immer ein eigenes Symbol zu nutzen kann man machen, es wird aber in den meisten Fällen falsch angezeigt, falls mehrere Alarme zutreffen:

Auf diese Weise stelle ich auch die anderen beiden Sirenen ein, nur mit Schwefelsäure und Schmiermittel.

Einstellungen für Höchststand-Alarme

Recht ähnlich stelle ich die Höchststands-Alarme ein. Ich prüfe lediglich, ob ein Wert über den 80% liegt:

Speziallösung: Stau Festbrennstoff

Nachdem ich die Blaupause unten erstellt habe bemerkte ich, dass ich diesen Menüpunkt zwar versprochen, aber nicht ausgeführt habe. Ich hole das jetzt nach:

Mit dem grünen Kabel verbinde ich die drei Bandsegmente nach der Zusammenführung bei den Festbrennstoff-Straßen. Ich möchte den gehaltenen Wert zurückgeliefert bekommen, ziehe dann das grüne Kabel über den Mast an einen weiteren Lautsprecher.
Der Lautsprecher soll anspringen, wenn exakt 24 Festbrennstoff auf drei Feldern in Folge liegt (8 Gegenstände pro Bandabschnitt, drei Bänder sind verbunden = 24 Gegenstände).
Ansonsten ist die Lautsprecher-Einstellung die selbe wie zuvor, nur dass wir eben die 24 Stück prüfen und dann einen Alarm bringen:

Mit dieser Methode solltest Du nun problemlos in der Lage sein, verschiedene Bereiche Deiner Anlage automatisiert zu steuern und personalisierte Alarme einzustellen.

Beispiel: Ölverarbeitung: Blaupause

Hier noch die Blaupause zu diesem Beispiel:

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

Beispiel: Robo-Anlage: Einleitung

In diesem Abschnitt möchte ich eine praktische und relativ einfache Schaltung vorstellen. Und zwar sieht mein Herstellkomplex für die automatisierten Roboter so aus:

Mein Aufbau besteht aus 12 Fertigungsanlagen für Flugrobotergestelle, die über zwei Lagerkisten gepuffert werden. Aus diesen Kisten ziehen jeweils eine Fertigungsanlage für Bau- (links) und Logistik-Roboter (rechts) die Gestelle und greifen von den seitlichen Bändern die grünen, bzw. roten Schaltkreise ab. Die fertigen Roboter werden über zwei Greifer direkt in zwei Roboterhangare weitergereicht. Der zweite Hangar ist als Puffer gedacht, falls zuviele Roboter im ersten Hangar liegen, würde die Herstellung zum erliegen kommen.

Problemstellung, Zielsetzung

Diese Anlage funktioniert einwandfrei, sie hat aber einen Haken: Es werden immer mehr Roboter produziert und irgendwann hat man so viele davon, dass es Leistungseinbußen geben wird. Außerdem benötigt diese Anlage einigermaßen viele Ressourcen.

Daher möchte ich hier mehrere Sachen abdecken:

  • 1. Sobald 10 Flugrobotergestelle in den Kisten liegen, sollen keine weiteren mehr produziert werden
  • 2. Der aktuelle Lagerstatus der Flugrobotergestelle soll auf den Lampen neben den entsprechenden Fertigungsanlagen optisch mit grün (läuft), gelb (fast durch) und rot (Fertigungsstopp) angezeigt werden
  • 3. Wenn das Signal rot kommt, sollen die Zuführbänder für Stahl, Elektromotoren und Batterien stoppen
  • 4. Sobald eine definierbare Zahl an Robotern in meinem Netzwerk vorhanden sind, sollen sich die Fertigungsanlagen für die Roboter abschalten
  • 5. Wenn die definierte Zahl an Robotern erreicht ist, sollen die entsprechenden Zuführungsbänder für grüne und / oder rote Schaltkreise stoppen
  • 6. Die aktuelle Zielanzahl an den jeweiligen Robotern soll links, bzw. rechts des Roboterhangars angezeigt werden und zwar als kleine Leiste

Ergo:
Die Fertigung soll so lange laufen bis eine gewisse Anzahl an Robotern erreicht ist. Sinkt die Zahl (beispielsweise weil Beisser sich diese wegsnacken), wird nachproduziert.

Beispiel: Robo-Anlage: Erste Schritte

Schritt 1: Gestell-Fabrikation

Diese Aufgabe ist relativ einfach gelöst: Dazu verbinde ich die beiden Pufferkisten mit beispielsweise dem roten Signalkabel und führe diese an alle Zuführgreifer der Gestell-Fertigungen (blaue Greifer) sowie auch den Lampen neben diesen Anlagen:

Ich stelle einen blauen Zuführgreifer so ein, dass nur arbeiten soll, wenn wir 10 oder weniger Flugrobotergestelle in den Kisten haben. Die Einstellung lautet also „Flugrobotergestell“ kleiner 10:

Diese Einstellung übertrage ich mittels Hochstelltaste und Rechtsklick auf den konfigurierten Arm auf alle anderen blauen Greifarme bei der Gestell-Fertigung.
Das heißt, dass die Zuführgreifer nicht weiter Material an die Anlagen zuführen, wenn denn 10 Stück der Gestelle auf Lager, das heißt in den Kisten liegt.
In meinem Beispiel leuchten die Anzeige-LEDs bei den Greifarmen grün, da ich noch keine Gestelle in den Kisten liegen habe.

Schritt 2: Lampen entsprechend einfärben

Nun möchte ich, dass die Lampen eingefärbt werden, je nach Stand in der Kiste:

  • Grün leuchten, wenn weniger als 3 Stück in den Kisten liegen (alle Gestelle werden aktuell verbraucht)
  • Gelb leuchten, wenn gleich oder mehr als 3 Stück in den Kisten liegen (Puffer wird aufgebaut, denn es könnten zufällig kurzfristig, das heißt gleichzeitig zwei Gestelle eingelagert werden)
  • Rot leuchten, wenn gleich oder mehr als 10 Stück in den Kisten liegen (Puffer voll)

Da die Lichtfarbe Gelb von Rot und Grün überschrieben wird werde ich damit beginnen, einen konstanten Kombinator mit der gelben Farbe an das rote Netzwerk anzuschließen:

Jetzt brauche ich zwei berechnende Kombinatoren, welche die Unter- und Obergrenze entsprechend einfärben. Ich stelle hier jeweils ein, dass die ausgelesenen Flugrobotergestelle entweder kleiner als 3 oder aber gleich oder größer 10 sind. Als Ausgabe verwende ich die entsprechende Farben grün wenn unter 3 und rot wenn voll:

Damit die Schaltung funktioniert, verbinde ich den Ein- und Ausgang beider Kombinatoren mit dem roten Signalkabel. Da wir jeweils nur die Farbe ausgeben, überschneiden sich die Signale nicht.

Wie rechts zu sehen bekommen wir nun ein permanentes gelbes Signal und aktuell auch ein grünes Signal, da die Kisten leer sind. Nun müssen wir die Lampen neben den Fertigungsanlagen einstellen. Dazu verwende ich eine immer korrekte Gleichung wie beispielsweise A = A und gebe der Lampe die Einstellung, dass die entsprechende Farbe im Netzwerk verwendet werden soll. Diese Einstellung kopiere ich auf alle entsprechenden Lampen:

Beispiel: Robo-Anlage: Weitere Schritte

Schritt 3: Zuführbänder bei Signal Rot stoppen

Dieser Punkt ist schnell erledigt: Ich verbinde die entsprechenden Bandsegmente vor dem Zuführsplitter (die grünen und roten Schaltkreise benötige ich weiterhin für die Roboter-Fabrikation) und stelle diese ein, dass diese nur laufen dürfen, wenn kein rotes Signal im roten Netzwerk vorhanden ist:

Schritt 4: Stoppe die Zuführgreifarme, wenn mehr als „X“ Roboter vorhanden sind

Jetzt kommen wir zu einem Thema, was ich bislang noch nicht im Guide angesprochen habe: Man kann auch die Anzahl an Gegenständen im logistischen Netzwerk und / oder die Anzahl der Roboter gesamt oder aktuell im jeweiligen Roboterhangar liegen ausgeben lassen.

Zuerst stelle ich aber einen konstanten Kombinator neben dem Hangar auf, in dem ich die Variablen für die Ziel-Anzahl meiner Roboter einstellen kann. Dazu definiere ich die Variable „B“ für Bauroboter mit 300 und „L“ für Logistikroboter mit 600. Diesen Kombinator verbinde ich mit dem grünen Kabel an den Hangar:

Wie Du hier sehen kannst, lassen sich auch kürzere Texte in Kombinatoren für die bessere Lesbarkeit einsetzen. Wichtig ist bei diesen „Texten“ nur, dass nur die gewünschten Variablen eine Zahl zugewiesen bekommen. Die anderen Variablen müssen immer auf Null eingestellt sein. Da ich in diesem Beispiel mit den Variablen B(au) und L(ogistik) arbeite, bekommen nur L und B den entsprechenden Zielwert eingetragen.

Sehen wir uns als nächstes die Einstellung des Roboter-Hangars an. Ich möchte nicht alle Gegenstände aus sämtlichen verfügbaren Logistikkisten bekommen, also hake ich den Punkt „Inhalt des Logistiknetzwerks auslesen“ ab. Dafür aktiviere ich die Roboterstatistiken.
Ich klicke mit der rechten Maustaste auf die Variablenfelder X (verfügbare Logistikroboter) und Z (verfügbare Bauroboter), da für mich nicht von Interesse ist, wieviele Roboter gerade in diesem einen Hangar stationiert sind.

Interessant sind für uns die Angaben Anzahl aller Bau- und Logistik-Roboter. Ich ändere die Variable per Klick auf die vorgeschlagene Variable auf Bau- beziehungsweise Logistikroboter (als Gegenstandssignal). Das vereinfacht später die Vergleiche, da diese bedeutend lesbarer werden.
Damit ist unser Hangar auch schon korrekt eingestellt:

Jetzt müssen wir natürlich die Zuführgreifer noch für die Roboter-Fertigung einstellen. Dafür verbinde ich mit dem grünen Kabel die beiden Zuführarme beider Fertigungsanlagen (je eine links, eine rechts) und konfiguriere diese so, dass die Arme nur arbeiten sollen, wenn die aktuelle Anzahl an vorhandenen Baurobotern kleiner B, beziehungsweise Logistikroboter kleiner L sind:

Schritt 5: Stoppe die Zuführbänder, wenn Roboter-Ziel-Anzahl erreicht

Ich ziehe nun das grüne Kabel seitlich an die Zuführbänder der grünen und roten Schaltkreise. Die Bandsegmente stelle ich so ein wie die Zuführgreifarme der Roboter-Fertigungen, also wenn Bauroboter kleiner als B, beziehungsweise wenn Logistikroboter kleiner als L dann laufen:

Ich entferne das vorübergehende grüne Kabel zum Strommast wieder, es soll ja alles ordentlich ausschauen 😊

Schritt 6: Lampen-Anzeige über aktuelle Anzahl Roboter

Hier müssen wir ein wenig mathematisch ausholen, ich verspreche aber: es wird nicht allzu schlimm werden.

Um zu wissen, wie viele Prozent wir anzeigen müssen, arbeite ich mit der aktuellen Anzahl des entsprechenden Roboters, beziehungsweise mit der Ziel-Anzahl, also Variable B oder L.

Gehen wir erstmal von den Baurobotern aus: Wir möchten maximal 300 Bauroboter haben. Das heißt unser Ziel, beziehungsweise 100% sind die 300. Unsere aktuelle Zahl entspricht dem Wert, den wir anzeigen möchten.

Daher ergibt sich folgender Schluss:
Variable B (Ziel-Anzahl der Bauroboter) = 100
Variable Bauroboter (aktuelle Anzahl) = x

Damit ergibt sich der Schluss vorhandene Bauroboter mal 100. Dieses Ergebnis muss dann durch die Variable B(auroboter) dividiert werden. Wir bauen also zwei berechnende Kombinatoren.

Den unteren Kombinator habe ich auf aktuelle Anzahl der Bauroboter * 100 eingestellt, das Ergebnis soll C sein. Der oberen Kombinator berechnet C dividiert durch B. Das Ergebnis soll entsprechend D sein.

Die Verkabelung habe ich so gesetzt, dass das grüne Netzwerk an beide Eingänge angeschlossen wird. Ein rotes Kabel habe ich vom Ausgang des unteren Kombinator an den Eingang des oberen Kombinators angeschlossen. Da mein Ergebnis aber eine noch nicht im Netzwerk vorhandene Variable ist, hätte ich auch das grüne Kabel bedenkenlos verwenden können:

Ich zeige im Bild auf den oberen Berechner und sehe alle ein- und ausgehenden Signale: Aktuell habe ich in meinem Netzwerk 167 Bauroboter aktiv. Mein Ziel für Bauroboter (Variable B) entspricht 300.

Die vorhandenen Roboter werden mal 100 gerechnet und ergeben Variable C, also 16k (eigentlich 16.700).

Der obere Kombinator berechnet nun diese 16.700 durch den Ziel-Wert (Variable B), also 300. Das Ergebnis wird als D ausgeworfen und entspricht einem Prozentsatz, nämlich 55%. Jetzt können wir uns mit diesem Signal die erste Reihe ansehen.

Dazu baue ich neben den Lampen drei konstante Kombinatoren und gebe diesen je eine Farbe, nämlich rot (Lampe 1), gelb (Lampen 2 bis 4) und grün (Lampe 5). Die Lampen stelle ich so ein, dass diese Farben verwenden und entsprechend die Abfragen bekommen, ob die Variable D über Null, 20%, 40%, 60% und 80% sind.

Damit die Lampen die Variable „D“ bekommen, lege ich vom oberen Berechner ein rotes Kabel auf alle Lampen:

Das gleiche Spiel mit leichten Änderungen baue ich nun für die Logistikroboter-Anzeige auf. Ich verändere hier nur ein paar Kleinigkeiten. Ich ändere folgende verwendete Variablen:

  • Ich ändere in den Kombinatoren rechts die Variablen:
    • „Signal Bauroboter“ zu „Signal Logistikroboter“
    • Signal B zu L
    • Signal C zu M
    • Signal D zu N

Bei den Lampen ändere ich entsprechend von D zu N.

Nun haben wir eine ziemlich gut automatisierte Roboter-Straße hingestellt, die nicht unnötig viele Ressourcen verbraucht und entsprechend (weil die Anlagen irgendwann automatisch aufhören zu arbeiten) auch eine Menge Strom sparen können!

Beispiel: Robo-Anlage: Blaupause

Auch hier stelle ich Dir wieder die Blaupause zur Verfügung:

Die Blaupause hab ich wieder auf ein externes Dokument gesetzt, einfach zu viel Text für einen Abschnitt 🙂
Hier geht’s zum Blueprint: [link]

Beispiel: Auto-Abschaltung: Einleitung

In diesem Beispiel habe ich zwei stromerzeugende Bereiche, vier Atomreaktoren, die meine Basis betreiben sollen und ein etwas abgelegenes Schmelzgebiet für Eisenplatten, welches mit Solar betrieben und durch einige Akkumulatoren gesichert wird.

Ich würde gern die Eisenplattenproduktion so weit es geht vom internen Stromnetz trennen und tagsüber die Produktion rein über die Solar-Erzeugung speisen.

Auch hier kann man eine Schaltung einsetzen. Im Fachchargon Flipflop oder SR (RS) Schaltung genannt, lässt sich eine Anlage in Factorio vom Hauptstromgebiet trennen und bei kritischen Akkustand wieder zusammenschalten.

Mein aktueller Aufbau sieht so aus:

Ich habe hier wieder stilistisch klein gehalten die für ins wichtigen Elemente gesetzt.

Aktuell ist der Strommast bei den Reaktoren mit dem Strommast bei den Akkumulatoren verbunden. Ich löse die Verbindung, in dem ich ein Kupferkabel zwischen diesen beiden Strommasten erneut ziehe. Damit existiert keine weitere Verbindung zwischen diesen beiden Elementen mehr:

Wie auf dem unteren Abschnitt zu sehen laufen jetzt die Akkus leer. Da das jetzt nur semi-optimal ist, möchte ich den Strom der Reaktoren dazuschalten, wenn 10% Kapazität der Akkus erreicht sind, er soll sich der Bereich aber wieder trennen, wenn 80% Kapazität der Akkus erreicht wurde.

Ich verbinde zuerst die neun Akkus mit dem roten Kabel. Akkumulatoren geben einen Wert von 0 bis 100 aus, dies entspricht bereits dem Prozentwert der vorhandenen Ladung. Damit ich den Durchschnitt aller Akkus bekomme setze ich einen berechnenden Kombinator und wähle den gelben Stern aus, dividiert durch 9 (weil ich neun Akkus verwende). Das Ausgangssignal soll einfach die Info-Variable sein. Ich verbinde nun das rote Netz der Akkus mit dem Eingang des Kombinators und erhalte den Durchschnittswert aller Akkus als i:

An dieser Stelle möchte ich noch erwähnen, dass Akkus, die Du mit einem Kabel verbindest automatisch die Variable A verwenden, um den Akku-Stand zu übergeben. Daher brauchen wir die Akkumulatoren nicht weiter einzustellen.

Wir wissen nun, was unser aktueller Füllstand ist. Diese Information ziehe ich mit dem roten Kabel über die Strommasten, damit ich diese Information andernorts abgreifen kann.

Zusätzlich brauchen wir jetzt zwei Vergleichskombinatoren, nämlich:

  • Ist der Akkustand unter 10%? und
  • Ist der Akkustand über 80%?

Den ersten Vergleicher stelle ich so ein, dass er prüft, ob der Akku-Stand unter 10% liegt. Das heißt: Wenn i kleiner/gleich 10, dann möchte ich das Signal Rot bekommen. Aber nicht die Summe aller Signale, sondern immer nur 1 Signal. Den Eingang beider Kombinatoren verbinde ich mit dem Ausgangssignal des Berechnungs-Kombinators, damit das i-Signal für die beiden Vergleicher vorhanden sind (alternativ kannst Du natürlich das Signal auch direkt über die Strommasten ziehen):

Nun brauchen wir einen weiteren Entscheider der überprüft, ob das grüne Signal höher als das rote Signal ist. Dazu verbinde ich beide Ausgänge der Kombinatoren mit dem neuen Entscheidungskombinator am Eingang und wähle hier entsprechend Grün größer Rot aus. Als Ausgang möchte ich ebenfalls ein rotes Feld bekommen, falls das zutrifft.

Außerdem ziehe ich ein grünes Kabel vom Eingang zum Ausgang des neuen Vergleichers, damit das Signal geschliffen wird. Das heißt, das rote Signal bleibt so lange auf dem Ausgang, bis ein grünes Signal reinkommt – denn dann wäre die Bedingung erfüllt:

Als nächstes baue ich einen Stromunterbrecher. Diese Komponenten hatte ich bislang noch nicht behandelt: Ist eine Bedingung wahr, dann schließt sich der Stromunterbrecher und es wird zwischen zwei verschiedenen Stromnetzen eine Verbindung hergestellt. Diese Komponente hat zwei verschiedene Pole die zwei getrennte Stromnetze weiterhin voneinander trennt (solange die Bedingung nicht erfüllt ist).

Ich verbinde mit dem grünen Kabel den vorherigen Kombinator mit dem Stromunterbrecher. Als Bedingung führe ich nun an, dass der Stromunterbrecher sich dann einschalten soll, wenn das rote Signal vorhanden ist, sprich größer als Null ist.

Die beiden Pole des Stromunterbrechers verbinde ich nun mit Kupferkabel (diese führen Strom, nicht die farbigen Kabel!) mit den jeweiligen Strommasten an den Stromunterbrecher:

Zusammenfassung

Diese Schaltung ermöglicht es, innerhalb eines Bereichs, den Strom zu gewissen Fabriksabschnitten zu kappen, um Strom zu sparen.

Beispiel: Auto-Abschaltung: Blaupause A

Diese Blaupause enthält den gesamten Testkomplex. Bei den Schmelzen muss ein Material im mittleren Band zugeführt werden, die äußeren Bänder transportieren das erzeugte Material ab. Die Wärmetauscher benötigen eine Wasserquelle:

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

Beispiel: Auto-Abschaltung: Blaupause B)

Hier sind nur die wichtigsten Elemente der Schaltung inklusive dem Solarbereich enthalten:

0eNrNmFuOmzAYhffiZzIFm7uqStUsoxohQpyJJTDImJlGIxbQfbQb60pqQ66AB5upSl8imdhffHz+i8kb2OYNrhihHMRvgGQlrUH87Q3U5JmmuXzGjxUGMSAcF8ACNC3kqC7zlG2qlOIctBYgdIe/g9hpnyyAKSec4B7TDY4JbYotZmLCJMACVVmLNSWVvyc4GxeFD54FjmKF7z14bWuNUFAb5c2hkDYKzqFcXRSM5lCeNsqfQ/naKDSHChY4GE6jwgUOKlDRAgcVKMdeYKGK5SzwUMWCC0xUsZC5i4GjYLnmNipZnrmPSpZv7qOSFZj7qGSF5j4qWTdx32xrnnbrJ1BedAJNl1JbE+M6F4wFRKugOJPf13KCIz8Y3t2WfSJGSMRaRljWEN6NYfsk9gAoJs+Hbdkw2Seg+zS1rWv2pFnWFE2e8pJNRkN0vy/OyjzZ4kP6QsQCMatseNXwZNTUXgjjTZrf9LVuxuYraPUVwk7SlACoLSBYVYBzs/nuAVIpQtqKvJUtGSgKVIpczdiX0i+C7qPXnoxezzh6g1WOyh8eVaQ6Kt84nNdR5GmbHxiH8zqK0FCRr1J07S5V+YrZpn4lPDtMFvNz2EUKSeeqLb7bXZbuCasNZEoxPV6klnzHsOWgqFLWnXQMvijP4ZlhTEfdxB13Ews8NvZwomyNr4ThbmDL95LHxhmdq30/SaD680pkIRAy9mle46ljjoyTO/ovUgHZwweD9uwoAgvZxsm/juJoKFCpyDFO/lUUIVsl4Hq92OGM7ES2i9TaEqrS4Z5aWCivkxbYicjP+gn+tK4T9loB6gUlgNB9eV8DwmER+P3jl1hmeop9gejI1VHssaE82bOySAgVnHPyGhy0N04FC0DVbFczcW6uTIzwQ4E5yWaMQpc3khDeG+VOG3Ulf8wrnIpeIasglpjkapmoYmWFWX87isGnBXb1cWCWyu8ZAEelzNN0xDXNG/9sxr/Mm0t4n8ww77k3GfZ5gWEXzt/JLjjs3O+7B2XPNrgDQO07w+htJ1QFire0wKJ1C6wzLrA/1w8ANBMA8OPlV4RM9z91fPO3tgVeMKs7F2DouEEEAxQFTuCgtv0DngmyxA==

Beispiel: Forschung: Vorwort

Im folgenden möchte ich zwei Varianten vorstellen, wie Du Deine Forschung mit veschiedenen Schaltungen beschicken, also beliefern kannst.

In der ersten Variante zeige ich Dir, wie Du mit Hilfe von den Tick-Informationen verschiedener Elemente die Zuführung steuern kannst. Dieses Layout ist skalierbar, das heißt Du kannst weitere Forschungsanlagen hinzufügen, ohne großartig etwas ändern zu müssen. Der Nachteil der ersten Variante liegt darin, dass manche Forschungsanlagen auf Grund der Bauweise ab und an ausfallen werden (da die Greifarme zwischen den Forschungsanlagen teilweise das letzte Forschungspaket weitertransportieren) und auch, dass händische Entnahmen vom Zuführließband das System nicht berücksichtigt und damit massiv stören kann.

Ich bevorzuge die zweite Variante. Diese ist zwar nicht direkt skalierbar, die Anlage müsste daher mehrfach aufgestellt werden und die Forschungsfläschchen entsprechend gesplittet werden bei der Zuführung. Vorteil dieser Variante ist allerdings eine konstante Forschung, ohne dass eine Anlage ausfällt wegen der Weiterführung zu anderen Anlagen. Natürlich nur, solange Du keine Probleme bei der Bereitstellung der Forschungspakete hast. Eine manuelle Entnahme vom Band wird sofort berücksichtigt und die Stückzahlen automatisch korrigiert, die auf dem Band vorhanden sind.

Beispiel: Forschung 1: Beschreibung

Wie ich in der Einleitung bereits erwähnt habe, ist diese Anlage gut skalierbar. Du kannst jederzeit neue Forschungsanlagen in der Höhe hinzufügen, es ist mit geringem Mehraufwand aber auch möglich, eine breitere Fläche anzubinden.

Das Ganze hat leider einen Haken, dass in diesem Layout die Greifarme zwischen den Forschungsanlagen immer den unteren Anlagen die Pakete wegziehen.

Dafür ist die Schaltung einfacher zu verstehen:

Allgemeine Erklärung der Arbeitsweise:

Diese Anlage wird von der linken Seite mit den entsprechenden Forschungspaketen beschickt. Dabei nimmt ein Stapelgreifarm alle ankommenden Pakete und packt diese in eine blaue Anforderungskiste. Statt der Anforderungskiste kannst Du aber auch eine normale Kiste nutzen. Diese Kiste ist ein Puffer und hält Forschungspakete auf Reserve.

Die entsprechende Kiste wird von einem weiteren Stapelgreifarm geleert und auf ein Zuführband gelegt. Das Zuführband übergibt dem grünen Schaltungsnetz per Tick, welche Gegenstände gerade dieses Segment passieren.

Ein weiterer Stapelgreifarm legt die Gegenstände auf das Band.

Bei der Zuführung habe ich etwas spezielles gemacht: Eine Farbe wird immer links, eine immer rechts zugeführt. Da wir mit den weißen Forschungspaketen sieben verschiedene Farben haben können, teile ich bei den weißen Paketen per Splitter die zugeführten Pakete auf zwei Bänder, von denen eins links und eins rechts in das Zuführband liefert.

Das Zuführband zieht nach unten, dann rechts und eine Schleife zurück zu einem Splitter, um die Pakete im Kreislauf zu halten.

Die Stapelgreifer bei den Forschungsanlagen entnehmen die fehlenden Forschungspakete und geben dabei einen Tick an das rote Netzwerk ab.

Das rote Netzwerk spielt sich zuerst in einen berechnenden Kombinator ein, der das Ergebnis mit -1 multipliziert. Damit wird aus dem positiven Entnahmewert ein negativer Wert.

Diesen Wert speise ich weiter in einen vergleichenden Kombinator, der diesen Wert speichern soll.

Den aktuell gespeicherten Wert aller entnommen Fläschen binde ich nun mit dem roten Netzwerk an die Bandsegmente bei der Zuführung an. Da die Gegenstände dabei addiert werden (Plus-Wert der Zuführung und abgezogen der Minus-Wert der Entnahme) bleibt die Zuführung konstant, bzw. das Band stoppt und liefert bei Überlauf keine weiteren Forschungspakete mehr an das Zuführungsband.

Beispiel: Forschung 1: Detailbeschreibung

Mit einem konstanten Kombinator setze ich die Variable A für Anzahl auf 60. Dieser Wert sagt aus, wieviele Flaschen von jeder Farbe auf dem Band liegen sollen. Mein Beispielaufbau besitzt etwa 66 Bandsegmente. Auf ein Segment passen 8 Gegenstände, 4 pro Seite. Da ich alle Farben gezielt innen oder außen anlege, rechne ich also nur 4 Gegenstände pro Farbe, bzw. Bandseite. 66 mal 4 ergibt 264 Gegenstände die gesamt auf dem Band liegen könnten. Außerdem können vier Farben pro Seite eingelegt sein:

  • Linke Seite: Rot, Schwarz, Violett, Weiß
  • Rechte Seite: Grün, Blau, Orange, Weiß

Die weißen Pakete führe ich beidseitig zu, da wir hier eine ungerade Anzahl an Farben verwenden und ich das Workload, also die Belastung der Fließbandseiten gleich halten möchte.

Sollten alle Farben parallel auf dem Band in voller Stärke liegen, dürften also nur 66 Pakete pro Farbe auf dem Band liegen (gesamte Items pro Bandseite dividiert durch die Anzahl der möglichen Farben = 264 durch 4 = 66). An dieser Stelle korrigiere ich den Anzahl-Wert auf 60, damit ein wenig Luft bleibt:

Diesen Anzahl-Wert verbinde ich mit dem grünen Kabel und verbinde damit alle Bandsegmente vor den Greifern mit vor dem Zuführgreifarm. Die Bänder stelle ich wie folgt ein:

  • Band nur aktivieren, wenn: [Entsprechende Farbe] Forschungspaket kleiner als A (Anzahl) ist
  • Gegenstände auf Fließband auslesen: Als Puls

Das Puls-Signal schickt für einen Tick ein Signal an das grüne Netzwerk, beispielsweise “Ich hab grad ein rotes Forschungspaket reinbekommen”:

Diese Einstellung kopiere ich mir und übertrage diese auf alle Bandabschnitte, die mit dem grünen Kabel verbunden sind. Die Bänder muss ich jetzt noch anpassen, dass die jeweilige Forschungspaket-Farbe eingestellt ist. Das Bandsegment für blaue Forschungspakete muss also [blaues Forschungspaket] kleiner Anzahl sein, als Beispiel.

Die Zuführgreifer einstellen

Als nächstes verbinde ich die Zuführgreifer zu den Forschungsanlagen mit dem roten Kabel und stelle die Greifer so ein, dass die Gegenstände, die ein Greifer entnimmt, an das rote Netzwerk gesendet werden. Aber nicht als gehaltenes Singal, sondern auch nur als Puls-Signal. Also es erscheint nur einmal kurz bei der Entnahme eines Pakets vom Band ein Stück des jeweiligen Forschungspakets. Auch diese Einstellung kann ich auf alle Greifer, die vom Zuführband abgreifen, übertragen:

Die entnommenen Gegenstände an die Bänder liefern

Die an die Forschungsanlagen zuführenden Greifer verwenden das rote Signal. Dieses Signal führe ich zu einem berechnenden Kombinator, die alle gelieferten Signale mit einem Negativvorzeichen belegt. Dazu muss eine Variable mit -1 multipliziert werden. Aus 20 wird damit -20 als Beispiel. Damit der Kombinator mit den entnommenen Werten arbeiten kann, führe ich das rote Kabel zum Eingang des berechnenden Kombinators.

Als Variable wähle ich hier den gelben Stern. Das ist ein Platzhalter und heißt: Wenn beispielsweise ein rotes Forschungspaket im Netz auftaucht, soll es als rotes Paket im Ausgang weitergeleitet werden – natürlich mit der entsprechenden Berechnung. Damit das Signal auch durchgeht, muss der Ausgang ebenfalls ein gelber Stern sein:

Den Ausgang des berechnenden Kombinators führe ich mit dem roten Kabel an den Eingang eines vergleichenden Kombinators. Wir müssen die entnommen Gegenstände speichern, das wird dieser Kombinator übernehmen.

Dazu wähle ich die Bedingung 1 = 1, also eine Bedingung die immer zutrifft und der Ausgang soll die rote Stern-Variable sein. Damit werden alle erhaltenen Gegenstands-Signale an den Ausgang des Kombinators weitergereicht.

Außerdem verbinde ich mit einem roten Verbindungskabel den Eingang mit dem Ausgang des vergleichenden Kombinators. Damit wird das Signal wenn es durchläuft immer wieder in den Eingang zurückgeschliffen und damit gespeichert:

Zusätzlich ziehe ich nun das rote Verbindungskabel zu den bereits mit den grünen Kabeln verbundenen Bandsegmenten.

Die Negativwerte der Entnahmen wird nun mit den zugelieferten Elementen gegengerechnet. Werden also 50 Stück roter Pakete über das Band transportiert, erhalten wir 50 rote Paket-Signale. Wird ein rotes Paket entnommen, sendet der entnehmende Greifarm ein Signal was mit -1 multipliziert wird und damit 50 Ausgangsstück abzüglich eine Entnahme 49 aktuelle Stück auf dem Band entsprechen:

Schwachpunkte dieser Anlage

Hier gibt es einen Schwachpunkt, den ich nennen möchte: Solltest Du aus irgendwelchen Gründen Forschungspakete entnehmen, so erkennt diese Anlage dies NICHT! In diesem Fall müsstest Du den Speicher des vergleichenden Kombinators leeren. Dazu kannst Du beispielsweise kurzzeitig den Strom zur Anlage trennen oder beim Kombinator kurz beim Ausgang von “Eingangszähler” auf “1” umstellen und sofort wieder zurückstellen. Beachte aber, dass dies Auswirkung auf die am Band liegenden Gegenstände hat.

Beispiel: Forschung 1: Blaupause

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

Beispiel: Forschung 2: Beschreibung

Ich persönlich finde die vorherige Variante nicht so gelungen, da diese den Schwachpunkt mit der (möglicherweise nicht beabsichtigten) Entnahme von Paketen komplett zerlegt werden kann.

Normalerweise setze ich auf ein anderes Layout, wenn auch um einiges komplexer. Aber ich finde komplex ist cool! 🙂

Diese Anlage kann 20 Forschungsanlagen betreuen und eine Skalierung ist nur indirekt möglich. Dazu müsste die Anlage mehrfach aufgezogen werden und die Beschickung mit Forschungspaketen durch Splitter ermöglicht werden.

Ich verwende hier auch wieder die blauen Anforderungskisten, diese können aber auch beispielsweise gegen normale Stahlkisten ausgetauscht werden.

In diesem Layout verbinde ich alle Bänder, welche die Forschungsanlagen umschließen und lasse mir den aktuellen Bestand pro Farbe auf einem Netzwerk ausgeben.

Sobald der Wert einer Farbe unter den gewünschten Zielwert fällt, schiebt ein Zuführgreifer pro Farbe nach. Sind zuviele Pakete einer Farbe auf dem Band, entnimmt ein weiterer Greifer (Entnahmegreifer) die überschüssigen Pakete und liefert diese zurück an die Zulieferung.

Außerdem überwache ich den Lagerbestand der Zuführkisten um die Anzahl der aktuell vorhandenen Farben zu verwenden. Das heißt, wenn eine Kiste leer läuft, wird automatisch der Zufluss der anderen Farben erhöht. Steigt der Lagerbestand der fehlenden Farbe, werden durch die Entnahmegreifarme automatisch wieder genug Platz für die neuen Forschungspakete geschaffen.

Dieses Layout ist … idiotensicher (wenn man so sagen darf) und man kann auch problemlos Forschungspakete vom Band nehmen, ohne die Schaltung zu verwirren, im Gegensatz zur ersten Variante.

Ein weiterer Nachteil dieses Aufbaus ist die recht komplexe Verbindungsstruktur der verschiedenen Netze. Wenn Du dieses Layout mit Baurobotern aufbaust ist es einfach zu bedienen, mit der Hand aufgezogen kann das ein wenig “♥♥♥♥♥♥♥”, falls Du ein Kabel falsch ziehst.

Beispiel: Forschung 2: Detailbeschreibung

Der Kern der Anlage besteht aus 20 Forschugnsanlagen, die mit Greifarmen direkt die vorhandenen, beziehungsweise benötigten Forschungspakete direkt den Forschungsanlagen zuführen. Das hat gegenüber der ersten Variante den Vorteil, dass es zu keinen Leerlaufzeiten kommt.

Um diese Anlage läuft ein Fließband, welches die Pakete enthält. Alle Segmente dieses Fließbands habe ich mit einem grünen Kabel verbunden und so eingestellt, dass diese zwar immer laufen, aber die aktuell auf dem jeweiligen Segment liegenden Gegenstände permanent an das grüne Netzwerk weiterreicht:

Das grüne Netzwerk verbinde ich mit dem linken Strommast.

Ich beginne meine Berechnung mit einem konstanten Kombinator, der die Variablen A für Anzahl der Bandsegmente, I für Items pro Segment-Bandseite und P für den Pufferwert enthält. Dabei wähle ich für mein Design A = 88, I = 4 (weil ich jeweils einseitig bestücke) und P = 3 als Pufferzone:

Diesen konstanten Kombinator verbinde ich mit einem grünen Signalkabel mit den Eingängen von zwei berechnenden Kombinatoren.

Den linken Kombinator verwende ich für die Berechnung A (Anzahl der Bandsegmente, 88) mal I (Items pro Bandseite, 4). Das Ergebnis soll N für Nettowert sein:

Den rechten Kombinator stelle ich so ein, dass P (die Pufferzone, 3) mal I (Items pro Bandseite, 4) berechnet wird. Hier möchte ich als Ausgangssignal P für Puffer ausgeben:

Als nächstes stelle ich nochmal zwei berechnende Kombinatoren hin. Der erste Kombinator soll N (Nettowert) abzüglich P (Puffer) berechnen und als Ergebnis Z für Ziel liefern. Daher verbinde ich mit einem roten Kabel den Ausgang der A*I und P*I Kombinatoren mit dem Eingang des neuen Kombinators:

Der rechte Kombinator soll nun Z (Zielwert) dividiert durch F (die vorhandenen Farben) rechnen. Das Ergebnis soll ebenfalls Z (Zielwert) sein. Um den aktuellen Z-Wert zu erhalten, verbinde ich den Ausgang des linken Kombinators mit einem grünen Kabel mit dem Eingang des rechten Kombinators. Außerdem ziehe ich ein grünes Kabel vom Ausgang des rechten Kombinators zum Förderband, da ich diesen Wert auf dem Band haben möchte. Außerdem ziehe ich noch ein rotes Kabel vom Eingang des rechten Kombinators auf den linken Hauptstrommast:

Auf dem Band möchte ich aber noch ein Signal S hinzufügen. Das S soll die Stapelhöhe für die einlegenden Greifarme steuern. Daher baue ich noch einen konstanten Kombinator, stelle die Variable S auf 3 ein. Die Stapelgreifarme werden damit später automatisch auf drei Gegenstände reduziert. Falls ich Probleme mit der Zulieferung bekommen sollte, sprich es werden mehr Pakete verbraucht als zugeliefert werden können, kann ich mit diesem Kombinator recht einfach die Greifzahl erhöhen. Mehr als 12 macht allerdings wenig Sinn. Den Kombinator binde ich mit einem grünen Kabel an das Förderband an:

Damit ist der erste Teil geschafft, das System funktioniert bereits fast! 🙂

Beispiel: Forschung 2: Zuführungen

Bei den Zuführungen möchte ich die Farben entweder direkt innen oder aber außen einspeisen. Dabei möchte ich:

  • Links angelegt: Rot, Schwarz, Violett, Weiß und
  • Rechts angelegt: Grün, Blau, Orange und Weiß

anlegen.

Dazu verwende ich entweder eine direkte Beschickung mit einem Greifarm, um das Paket rechts anzulegen oder aber ein Förderband, welches direkt auf die Außenseite der Anlage einspeist und damit links den Gegenstand einbringt.

Vor jedem Einspeise-Greifarm setze ich eine blaue Anforderungskiste für die entsprechende Farbe, Du kannst aber auch problemlos eine andere Kiste dafür verwenden.

Layout-Beispiele:

Einstellung der Zuführgreifarme

Ich möchte hier näher auf die Einstellung des Greifarms für die roten Pakete eingehen. Den Zuführgreifarm verbinde ich mit dem grünen Kabel an das Fließband. Die Einstellung für diesen Greifer lauten: Arbeite dann, wenn die roten Forschungspakete kleiner als Z (Zielwert) sind. Außerdem aktiviere ich die Stapelgröße und wähle hier die Variable S (für Stapelmenge):

Daher verbinde ich nun alle Zuführgreifarme mit dem grünen Kabel an die Umlaufbänder und übertrage die Einstellung auf alle anderen Greifer. Bei den Zuführgreifern muss nun nur noch die Paketfarbe korrekt eingestellt werden.

Kistenwerte auslesen

Damit ich weiß, welche Farben vorhanden sind, brauche ich nun für jede Forschungsfarbe noch einen vergleichenden Kombinator. Diese setze ich bei jeder Farbe neben die Pufferkiste und verbinde den Eingang des Kombinators mit der Kiste. Der Ausgang der Kombinatoren möchte ich über die Strommasten an den Zentral-Strommast links weiterleiten.
Hier muss ich nun einstellen, dass der jeweilige Kombinator den Inhalt der Kiste auf das jeweilige Material überprüft (beispielsweise rote Forschungspakete). Falls mehr als Null Einheiten in der Kiste sind, soll mir ein F für Farbe mit dem Wert 1 ausgegeben werden.

Da sich gleiche Variablen in einem Netz addieren, erhalten wir so die aktuelle Anzahl an verschiedenen Forschungspaketfarben als F im roten Netzwerk. Falls noch nicht geschehen muss vom Zentral-Strommast noch ein rotes Verbindungskabel zum Eingang des rechten berechnenden Kombinators mit Z durch F gezogen werden:

Bereinigungs-Greifer

Nun sollte die Anlage soweit schon korrekt laufen. Da wir aber mit dynamischen Farbwerten und damit teils massiven Unterschieden bei der Bandfüllung arbeiten, brauchen wir noch Entnahmegreifarme, die den Inhalt der Förderbänder dynamisch bereinigen.

Dazu verwende ich einen Filtergreifer und stelle diesen auf ein Stück Entnahme sowie der entsprechenden Paketfarbe ein. Dazu verbinde ich den Greifer mit einem grünen Kabel am Förderband, da dort die aktuellen Stückzahlen angeführt sind. Wenn also die gewünschte Paketfarbe größer als Z (unser Zielwert) ist, soll der Greifer aktiviert werden:

Die Rückführung mache ich jeweils mit normalen Bändern und führe diese vor der Pufferkiste wieder auf das Zuführband. Beim Bandsplitter setze ich die Ein- und Ausgangsbedingung, dass – wenn etwas auf dem Auswurfband reinkommen sollte, diese Seite bevorzugt verwendet werden soll. Damit wird gewährleistet, dass bei vollem Band zuerst die Entnahmezuführung geleert wird. Außerdem stelle ich auch ein, dass die Ausgabeseite nur Gegenstände auswerfen soll, die ich nicht in meiner Anlage verwende. In meinem Beispiel ist das Holz. Das hört sich kompliziert an, ist aber sehr praktisch, damit keine Tränke in der zweiten Spur hängenbleiben:

Damit ist unser Rainbow-Belt an und für sich fertig: Nun kannst Du Deine Forschungspakete entweder per Logistikroboter in die blauen Kisten liefern lassen oder aber über die Bandzuführung direkt einspeisen. Oder beides!

Video zu einer Vorgängerversion

Beispiel: Forschung 2: Blaupause

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

Beispiel: Musik in Factorio

Wenn Du ein wenig Musik im Hintergrund haben möchtest, gibt es auch dazu eine Möglichkeit. Die einfachste Methode ist die Website von MidiTorio von mgabor.

Im Internet kannst Du nach MIDI-Dateien suchen. Dabei handelt es sich um digitale Notenblätter, die der findige mgabor in eine automatisch generierte Schaltung umwandelt.

Ich suche mit einer Suchmaschine nach Wahl nach “MIDI” und meinem gewünschten Musikstück, beispielsweise “Benny Hill Theme”. Diese MIDI-Datei lade ich herunter und öffne die MidiTorio-Website unter

www.miditorio.com

Die heruntergeladene MIDI-Datei ziehe ich jetzt auf der Website in die blaue Kiste. Kurz darauf werden die verwendeten Instrumente auf der Website angezeigt. Da Factorio nur einen gewissen Frequenzrahmen darstellen kann, müssen ab und an die Tonhöhen, also Oktaven, angepasst werden.

Im Fall meiner verwendeten MIDI-Datei liegen im Piano-Track 114 Noten unter und die E-Gitarre liegt mit 340 Noten über der darstellbaren Frequenz. Ich muss nun also mit das Piano anklicken und den Wert soweit ändern, dass die rot dargestellte Zahl möglichst gering ist. Das gleiche mache ich mit der E-Gitarre:

Nun klicke ich auf “Get Blueprint”-Button und erhalte den Import-Code für Factorio. Dieser ist unter der roten Kiste zu finden. Mit einem Klick auf den Kopieren-Button übernehme ich den Code:

Zurück in Factorio binde ich den gerade kopierten Bauplan über das Blaupausenbuch mit der Import-Funktion ein:

Ich setze die Blaupause und lasse sie durch die Bauroboter aufbauen:

Die Steuerung dieser Anlage funktioniert über zwei konstante Kombinatoren mit der Beschriftung “RESET” und “PLAY”:

Wird “PLAY” aktiviert, spielt das Lied ab. Wird “RESET” aktiviert und wieder abgeschaltet, spult das Lied zurück zum Anfang 🙂

Die Blaupause musste ich wegen der Länge auf ein Google-Dokument auslagern:
[link]

Und so hört sich das Ganze in meinem Fall an:

Beispiel: Timer erzeugen: Ticks

Hier steigen wir nun etwas tiefer in die Materie ein und sehen uns an, in welchen Intervallen Factorio Berechnungen durchführt. Dieser Bereich wird ziemlich theoretisch, aber sobald Du die Arbeitsweise verstanden hast, wird das Ganze sehr viel transparenter.

  • Factorio berechnet eine Berechnung pro Bild, welches dargestellt wird. Dieses eine Bild, bzw. Berechnungsschritt nenne ich ab hier “Tick”
  • Factorio arbeitet mit 60 Bilder pro Sekunde, das heißt 60 Ticks pro Sekunde.

Wenn Du allerdings unter 60 Bilder pro Sekunde fällst, weil Du beispielsweise eine extrem große Basis verwendest, fallen entsprechend auch die Berechnungen pro Sekunde. Dies ermöglicht, dass die Taktung immer korrekt zur angezeigten Geschwindigkeit läuft.

Das heißt, dass ein Konstanter Kombinator also 60 Mal pro Sekunde ein Signal sendet. Ich stelle im Kombinator ein Signal T (für Ticks) mit dem Wert 1 ein:

Um diese Ticks abgreifen zu können, müssen wir uns mehrerer vergleichender Kombinatoren bedienen.
Ich setze also einen solchen Kombinator und verbinde den konstanten Kombinator mit dem Eingang des vergleichenden Kombinators. Als Vergleich verwende ich größer oder gleich 60 und wenn das zutrifft, soll ein rotes Sginal gesendet werden:

Ich erweitere das Netz um einen zusätzlichen vergleichenden Kombinator und stelle diesen so ein, dass wann immer ein rotes Signal fehlt, der Eingangszähler von allen vorhandenen Elementen gezählt werden soll:

Etwas komplizierter wird die Verkabelung hier: ich setze den Ausgang mit einem roten Kabel an den Eingang des neuen Kombinators. Nun verbinde ich das grüne Kabel vom Eingang des ersten mit dem Eingang des zweiten Kombinators und zu guter letzt ziehe ich ein grünes Kabel vom Eingang des rechten Kombinators auf den Ausgang:

Durch diese Schleife wird das Signal nach dem Vergleich wieder zurück in den Eingang geschoben, wo wieder ein rotes Signal (per Tick vom linken Kombinator) hochgezählt wird.

Der linke Kombinator bricht bei 60 Ticks, also einer Sekunde ab, sendet kein Signal und damit setzt sich das Signal zurück.

Wir sehen jetzt im Ausgang des rechten Kombinators, dass hier nun die Tick-Variable T bis 60 läuft und dann kurz ein rotes Signal zu sehen ist. Dieses rote Signal sagt dem Netz: Hey, ich hab eine Sekunde erreicht!

Da ich diesen Aufbau aber skalieren möchte (ich brauche den gleichen Aufbau für Ticks, Sekunden, Minuten und Stunden), baue ich einen weiteren vergleichenden Kombinator auf.
Diesen stelle ich so ein, dass wenn die Ticks, also T gleich 60 entspricht, mir ein S für Sekunde übergeben werden soll:

Das Signal T, also die Ticks möchte ich nun vergleichen. Dazu verbinde ich den Ausgang des mittleren Vergleichers mit dem Eingang des rechten Vergleichers. Da der mittlere Vergleicher den roten Stern als Ausgabe verwendet, werden die aktuell verwendeten, bzw. vorhandenen Signale eins zu eins übergeben:

Hinweis: Der mittlere Kombinator dient als Speicher für die aktuell vorhandenen Sekunden. Das heißt der Zähler S läuft von eins bis 59 und bricht bei 60 ab. Wenn Du also die Ticks abgreifen möchtest, müsstest Du in meinem Beispiel den Ausgang des Kombinators mit beispielsweise einem grünen Kabel abgreifen.

Als nächstes möchte ich einen Entstörer bauen. Ab und an passt die Zählung nicht hundertprozentig, das möchte ich mit zwei vergleichenden Kombinatoren in den Griff kriegen.

Dabei verbinde ich den Ausgang des dritten Kombinators mit den beiden Eingängen der beiden rechten Kombinatoren. Der vierte Kombinator setzt sein Ausgangssignal auf den Eigang des fünften Kombinators:

Nun stelle ich die Kombinatoren ein. Der erste neue Kombinator erhält die Prüfung, ob S, also die Sekundenvariable, größer als 1 ist. Wenn das zutrifft, möchte ich ein S-Signal mit dem Wert 1 an den letzten Kombinator weiterführen:

Den letzten Kombinator stelle ich so ein, dass ich ein Signal S ausgeben möchte, wenn denn S größer als eins ist. Da bereits ein S grundsätzlich auf der Leitung liegt, aber nur zur vollen Sekunde ein zweites S vom vorletzten Kombinator eingespeist wird, erhalte ich jetzt zuverlässig ein Signal pro Sekunde:

Gehen wir also nochmal alles durch:

Der konstante Kombinator senden ein Signal T, was über die ersten beiden Vergleicher geschliffen wird. Dadurch erhöht sich der Zähler T jeweils so lange, bis der erste Kombinator einen Tick von gleich oder höher 60 erhlält. Dann sendet dieser Kombinator ein rotes Signal, auf das der zweite Vergleicher reagiert.

Alle Signale die bislang reinkommen, also das T, wird an den dritten Kombinator weitergereicht.
Hier wird geprüft, ob das geschliffene Signal T 60 entspricht, wenn das zutrifft, erhalten wir ein einzelnes S, welches an den rechten Stabilisatorblock weitergereicht wird.

Die letzten beiden Vergleicher haben als Eingang das Signal S mit eins, wenn T 60 entspricht.
Solange S im vierten Kombinator nicht vorhanden ist (kleiner 1), soll ein S gesendet werden.
Der letzte Kombinator stabilisiert das Signal und fragt an, ob S größer 1, also zwei, ist. Falls das zutrifft, soll ein S-Signal weitergeleitet werden.

Beispiel: Timer erzeugen: Sek, Min, Std, Tage

Ich meinte zu Beginn im letzten Abschnitt, dass ich diesen Aufbau gerne skalieren würde. Das habe ich mit meinem Aufbau soweit hinbekommen.

Reihe für Sekunden einrichten

Ich halte die STRG-Taste, drücke die Taste C dazu und kann mir nun die komplette Reihe auswählen:

Danach kann ich unterhalb die Reihe erneut aufbauen:

Jetzt ändere ich nur noch in der neuen Reihe alle T-Variablen (Tick) in S (Sekunden) und alle vorhandenen S-Variablen in M für Minuten. Wir erhöhen also einfach den Wert. Denn 60 Ticks sind eine Sekunde, die zweite Reihe übernimmt dann 60 Sekunden gleich eine Minute:

Damit diese Reihe arbeitet, muss ich diese natürlich verbinden: Dazu ziehe ich ein Kabel vom Ausgang des letzten Vergleichers der ersten Reihe zum Eingang des ersten Vergleichers der zweiten Reihe. Statt des Signals des konstanten Kombinators erhalten wir jetzt das stabilisierte Signal aus der ersten Reihe, das Prinzip bleibt aber das selbe: Der zweite Vergleicher zählt nun die aktuellen Sekunden bis 59, bevor dieser zurückgesetzt wird:

Reihe für Minuten einrichten

Den exakt gleichen Ablauf wiederholen wir nun für die Minutenreihe. Ich kopiere mir die Sekundenreihe, setze die Kopie darunter, lege ein grünes Kabel vom ersten neuen Vergleicher zum letzten Vergleicher der vorherigen Reihe und ändere die vorhandenen Variablen von S (Sekunden) zu M (Minuten) und M zu H (Stunden) um:

Reihe für Stunden einrichten

Wir wiederholen das Spiel, kopieren die Minuten-Reihe und setzen diese darunter. Auch die verwendeten Variablen ändern wir von M zu H und von H zu D (für Tage). Auch das Kabel ziehen wir gleich:

Jetzt kommt eine Besonderheit:
Es sind zwar 60 Ticks eine Sekunde, 60 Sekunden eine Minute und 60 Minuten eine Stunde, aber 60 Stunden sind nicht ein Tag. Sondern 24. Also müssen wir die Vergleichsformel ändern.

Dazu verändere ich die Formel des ersten Vergleichers auf H größer oder gleich 24 und den dritten Kombinator auf H gleich 24:

Reihe für Tage einrichten

Du könntest natürlich 365 für eine weitere Jahresreihe nutzen, ich nehme aber an, dass dies wenig zielführend sein wird. Daher reduziere ich diesen Kombinator auf ein Minimum und stelle nur einen Zähler-Vergleichs-Kombinator auf und verbinde den Eingang mit der vorherigen Reihe, wie gewohnt:

Nun setze ich eine Kabelschleife beim neuen Kombinator. Dieser wird daher immer die Tage ohne Begrenzung weiterzählen. Außerdem setze ich die Bedingung Tage gleich Tage, sprich die Bedingung ist immer erfüllt und schleife den Tageszähler D zurück. Damit werden die Tage gezählt ohne Limit:

Beispiel: Timer erzeugen: Werte auslesen

Das ist zwar bisher recht praktisch, wir haben aber noch keine direkte Übersicht über die Zeitangaben. Das werden wir jetzt ändern:

In jeder Reihe stellt der zweite Kombinator im Ausgang den aktuellen Wert bereit, das heißt für Ticks, Sekunden, Minuten, Stunden und Tage.
Für uns sind nur die Sekunden, Minuten, Stunden und Tage interessant, die Ticks vernachlässige ich hier einfach einmal. Du könntest aber problemlos auch die Ticks über die vorgestellte Methode abgreifen.

Ich muss dazu ein neues Schaltungsnetz aufbauen, damit die Zeitberechnung nicht gestört wird. Wir können ja nur zwei Kabelfarben nutzen und würden beim direkten Verbinden verschiedene Werte miteinander mischen.

Daher setze ich für jede Reihe ab Sekunden einen weiteren vergleichenden Kombinator und stelle die Kombinatoren wie folgt ein:

  • Kombinator Sekunden: S = S, Rückgabewert: alles was an S da ist
  • Kombinator Minuten: M = M, Rückgabewert: alles was an M da ist
  • Kombinator Stunden: H = H, Rückgabewert: alles was an H da ist
  • Kombinator Tage: D = D, Rückgabewert: alles was an D da ist

Die einzelnen Kombinatoren verbinde ich einzeln mit den jeweiligen zweiten Kombinatoren in der entsprechenden Reihe. Wichtig ist, die Signale nicht einfach zusammenzuschalten:

Da in dieser Konfiguration keine Signale vom vorherigen Netz übernommen werden, kann ich mit einer beliebigen Kabelfarbe die Ausgänge der Trenner-Kombinatoren zusammenführen. In meinem Beispiel setze ich diese auf den linken Strommast:

Schwachpunkte dieser Schaltung

Es ist wichtig zu erwähnen, dass der Puffer, also der Zwischenspeicher der Anlage, geleert wird, sobald Du einen Stromausfall bekommst. Daher solltest Du diese Anlage elektrisch entsprechend gut absichern!

Import-Code für die gesamte Zeitschaltung

0eNrtm82OmzAQx9/FZ1LFNt9q95RDLjm1t6qKkuDdtZRAZMyq0SoP0Afpi/VJash2NwUCY8sLVOplFbJ4DPObGf+ZmGe03RfsKHgqUfyM+C5LcxR/fUY5f0g3+/I7eToyFCMu2QE5KN0cyqOE7XjCxGyXHbY83chMoLODeJqw7yjG528OYqnkkrOLtergtE6Lw5YJdcKrnbzY5nIjeZYq28cs59VHNasyM8Ou66CT+uC5ynjK+MPjNitEaZI62HNI9O3sNIyTV+PlzchNKq+vsm2W+QfvZR7ywVMzqXFSZPv1lj1unrgapM6853vJxA3fPHEhC/XN221VZ8y+oMpaUToXX7vnMknKduWF5KUlXP55EIyl1w7jCYqVD3Zc7Aouq8Ny9LnltinQp8S/5VPsUNzmULeLerc/52qOhIvLfV5upcW3L2bX6n8Jf/XIPRe5XOv6+kIcxf68PDocN6K6zBj9+vFTjckKeSw0rAqWXOweT+sK5PpeZIc1T5UVFN9v9jk768AkV/4tj70mXAeRcng5c22wB4sET5MXDcfg9erZP8TqwD4Z4GJPTJzkI08fOqhJUdyE1uL1Wv6RsrjBErUTNelE7TdQ35gUGBO+bkz4U8xhk5D4bJq//Ql4hbCVTQBjE+iyccdg8/lvNriG5uOQaFq97dfh/J1+oU6lDWHkQl1ydILk7kZOqgBaX4ObBFtPj2AMI2N14wajMZyougm7UxDPdXKw7ew2gOV5hnpnSIL/jN6JoPlYB1THHWnRxlDF04yLWpQBH5gwNtZEU8p8k7BZWSzfzSjoLsuYAPEQY1k0JJ6VfVm0slqT64nVKMpUK00pkB41lkYTonc3dm4RcC0meuII+0CO2s0f8kLRq1ppVxz99y6SOSttaFfWd3y+7Fp5gUtqZzJ6tVwmuDm8lepbi+jAEl4cZmyvrk/w3eyY7Vkr17f89P40SUEh7LZcUr3x2NZ1xL65MHdHqyATFeb1st1YBAKtRQDY2MCBuTJ3/yvzpK9odywHfo9GDrTqTAjW5kH3vAQDIyc01+YTSn6TwFna1A+BpjYH9kxwZK7NB8SztK/Nl3bLck/DhGg1TAiwYULm5tp8OvTuxs4teJ8k0tPmBPiETLCpNidDavOViTZfWdHmK6vaXG/NdHtSO4BJdULMZTAeLVmJO81f33s6lkSrF0KAvRBCzWUw/i+Dk776eLvyNitpN+/ulCYuVAY3I6M7+W9GjmsugyeU/CaBs7C4VHdgbscH3FRBPHMZPCCehX0ZvLBblvvWSl+rLANbm8Q3l8HToXc3dm554GLsacpg4CYMEhjKYBoNKYOXJjJ4aUUGL23KYM01s+fXJzoHyuDQWEPRcOBk1YW8sAJ5YRVyz2YqEmquqGG3IKLQ1kWkuXOc+tBdznRuWkb8IcuIxQizFiyhVkUAPvhSrLmhvYmaVm8IqPWoenchvnrVwUHquSSvrJAQu0FEAhoFOMD0fP4NX03JKQ==

Beispiel: Digital-Anzeigen: Teil 1

Beispiel: Digital-Anzeige für durchgelaufene Band-Items
In diesem recht umfangreichen Beispiel möchte ich Dir ein Display vorstellen, welches mit sieben Segmenten arbeiten wird:

Jede Zahl lässt sich hier in sieben verschiedene Segmente unterteilen. Ich nenne diese A bis G:

An dieser Stelle möchte ich kurz ein wenig ausholen: Wir können mit Schaltungen die Einstellung jedes Segments speichern. Daher hab ich im vorherigen Beispiel bereits die Segmente mit Buchstaben versehen. Im nächsten Beispiel zeige ich Dir einen sehr ähnlichen Aufbau, aber mit weit mehr Segmentteilen, dafür als kompaktere Anzeigemöglichkeit. Dieses Display braucht relativ viel Platz, wie Du bereits aus den verwendeten Kacheln sehen kannst.

Da von den oben gezeigten Segmenten diese Blöcke jeweils ein- oder ausgeschaltet werden müssen, brauchen wir etwas mit dem wir den Zustand berechnen, beziehungsweise speichern können.

Wir können uns die Bitverschiebung nach links oder rechts hier zu nutze machen. Die Bitverschiebung verschiebt – wie Du Dir vermutlich bereits gedacht hast – einen Wert entsprechend nach links, beziehungsweise rechts.

Dieses Thema basiert auf der Elektrotechnik und Du musst die Arbeitsweise hier nicht zwangsläufig verstehen. Ich hoffe aber, dass ich den Text und die Beispiele die nun folgen so gut darstellen konnte, dass Du den Ablauf einigermaßen nachvollziehen kannst.

Als Gedankenbeispiel setze ich den Wert A auf zwei und verwende den Kombinator mit A << 0. Das Ergebnis ist zwei, da wir den Wert belassen, wie er ist. Wir verschieben die Zahl um Null stellen, das heißt: unsere Basiszahl bleibt gleich.


Ändere ich im berechnenden Kombinator nun die Verschiebungsanzahl auf eins, so ändert sich das Ergebnis A zu vier. Ändere ich A auf drei, erhalten wir als Ergebnis acht. Wäre A auf vier gestellt, würden wir 16 erhalten. Mit den beiden spitzen Klammern nach links wird unser Ausgangswert also potenziert, sprich immer verdoppelt.

Sehr ähnlich funktioniert der Bitverschieber nach rechts, das heißt hätte ich hier A auf 16 eingestellt und würde eine Bitverschiebung nach rechts um eins machen, würde 8 herauskommen und so weiter. Der Operator „>>“ dividiert das Ergebnis um die jeweils gewählten Stellen durch zwei.

Ich möchte hier nicht zu weit ins Detail gehen, aber mit Hilfe einer Kombinator-Kombination können wir uns eine Art Wörterbuch anlegen. Das hört sich erstmal sehr theoretisch an, aber ich baue einfach mal ein Beispielsegment wie anfangs gezeigt auf:

Ich habe alle Lampen mit einem roten Kabel verbunden, die erste Spalte ganz links soll nur ein Abstandhalter sein, damit später die Lampen nicht aneinander kleben. Daher ist diese Spalte nicht mit dem Kabel verbunden. In diesem Beispiel verwende ich also Lampen mit 5 Felder Breite und 9 Felder Höhe, um die Anzeige zu definieren.

Außerdem stelle ich einen konstanten Kombinator auf und wähle hier die Variablen A bis G und setze alle Werte auf 1. Diesen Kombinator verbinde ich vorübergehend mit der Anzeige:

Die Lampen, bei denen das A-Segment leuchten soll, stelle ich nun entsprechend mit der Formel ein. Sobald A größer Null ist, soll das entsprechende Segment leuchten:

Diese Einstellung wiederhole ich nun für die Segmente B bis G. Um das Display besser zu zeigen habe ich noch ein grünes Signal in den konstanten Kombinator gesetzt und die Lampen nochmal überarbeitet, dass die Lampen sich auch einfärben sollen. Nun sind die Segmente gut zu sehen:

Im gerade gezeigten Bild habe ich rechts oben auch das Planungslayout vom Beginn des Projekts mit eingefügt, um die Einstellung besser darstellen zu können.

Beispiel: Digital-Anzeigen: Teil 2

Wenn ich nun beispielsweise das Signal C entferne, wird uns entsprechend eine „6“ angezeigt, das das Segment oben rechts nicht mehr leuchtet. Die Lampen verwenden – wir erinnern uns – die Aktivierungs-Formel war: C muss größer Null sein.

Ich stelle an dieser Stelle im konstanten Kombinator aber wieder C mit dem Wert von 1 ein.
Nun baue ich mir eine Hilfsschaltung, um das Wörterbuch zu generieren. Da baue ich einen konstanten Kombinator, welcher später die Werte der oben gezeigten Schaltung erhalten soll, beziehungsweise dessen Werte in das Wörterbuch übernommen werden sollen.

Diesen Kombinator schalte ich am Anfang ab, damit keine Signale in die Hilfsschaltung gelangen.
Der konstante Kombinator soll das Signal über ein rotes Kabel an einen berechnenden Kombinator senden.

Der berechnende Kombinator soll nun eine Bitverschiebung nach links durchführen. Dabei soll jeder Wert, also der gelbe Stern, um eine entsprechenden Zahl verschoben werden. Der Ausgang soll ebenfalls der gelbe Stern sein.

In diesem Kombinator können wir dann die entsprechende Zahl eintragen, die dargestellt werden soll. Ist die Zahl bei der Bitverschiebung Null, möchten wir also auf unserem Display eine Null anzeigen lassen. Stellen wir eine Sieben ein, möchten wir eine 7 vom Displaywert übergeben und so weiter:

Als nächstes baue ich einen weiteren berechnenden und einen vergleichenden Kombinator.
Zur Verkabelung: Ich ziehe das rote Kabel vom Ausgang des zweiten Kombinators an den Eingang der beiden neuen Kombinatoren und zusätzlich ein grünes Kabel vom Ausgang des dritten Kombinators an den Eingang des vierten Kombinators:

Ich setze bei den beiden neuen Kombinatoren folgende Einstellungen:
Der linke Kombinator soll alle Eingangssignale die ankommen (gelber Stern) mal -1 multiplizieren. Damit wird der Eingangswert ins Negativ übertragen. Dieses Ergebnis soll für jedes eingehende Signal weitergegeben werden (gelber Stern).

Beim zweiten Kombinator vergleiche ich nun, ob irgend ein Signal (gelber Stern) größer Null ist. Falls das zutrifft, sollen alle eingehenden Signale übertragen werden.
Mit dieser Schaltung bekommen wir jetzt genau einen Tick mit den neuen Signalen:

Nun baue ich noch zwei Kombinatoren, nämlich noch einen konstanten und einen vergleichenden Kombinator.

Vom Ausgang des vierten Kombinators ziehe ich ein rotes Kabel zum Eingang des vergleichenden Kombinators ganz rechts. Zusätzlich erhält dieser Vergleichskombinator über das rote Kabel auch das Signal des daneben stehenden konstanten Kombinators.

Ich verbinde nun zusätzlich mit dem grünen Kabel den Ein- und Ausgang des letzten Kombinators:

Was macht dieses Segment nun? Wir speichern damit unsere erhaltenen Werte, die vom linken Bereich kommen. Es soll außerdem ein Rücksetzsignal „Y“ konstant senden.

Das heißt, der konstante Kombinator soll permanent ein „Y“ mit 1 senden, der vergleichende Kombinator prüft, ob Y kleiner 1 ist. Falls das zutrifft, sollen alle Werte (roter Stern) als Ausgang bereitgestellt werden:

Unsere Hilfsschaltung steht soweit und wir können anfangen, die Werte entsprechend in das Wörterbuch zu übertragen.

Zuvor muss allerdings noch der vorletzte (konstante) Kombinator ausgeschaltet werden. Dieser Kombinator würde ansonsten ein permanentes Rücksetz-Signal senden.

Ich beginne also damit, dass ich eine Null auf unserem Display nachbaue. Dazu muss ich beim konstanten Kombinator entsprechend das Segment „D“ abschalten.

Damit ich nicht immer wieder alle Signale neu eintragen muss, kopiere ich mir den konstanten Kombinator mit allen aktivierten Segmenten, um die Einstellung nachher immer wieder zurücksetzen zu können:

Ich entferne im konstanten Kombinator also die D-Variable und erhalte eine Null als Anzeige:

Das Ergebnis sieht gut aus. Ich kopiere mir nun den gerade eingestellten konstanten Kombinator mittels Hochstelltaste und Rechtsklick und übertrage diese Einstellung per Hochstelltaste und Linksklick auf den ersten konstanten Kombinator in der Hilfsschaltung:

Als nächstes prüfe ich im zweiten Kombinator, ob die Bitverschiebung auf Null steht. Wir möchten ja eine Null darstellen.

Nun schalte ich den konstanten Kombinator kurz ein und die Einstellung wird über die Schaltung ganz nach rechts transportiert. Die beiden mittleren Kombinatoren lassen das Signal nur für einen Tick durchlaufen und schalten entsprechend das Signal sofort wieder ab:

Beispiel: Digital-Anzeigen: Teil 3

Nun schalte ich den konstanten Kombinator wieder ab und stelle im zweiten Kombinator ein, dass ich nun eine Bitverschiebung um 1 machen möchte:

Bei unserem Display übertrage ich nun aus dem Backup-Kombinator alle Segment-Einstellungen wieder in den Display-Kombinator:

Um eine 1 darzustellen, brauchen wir nur die Segmente C und F. Die restlichen Signale nehme ich aus dem Kombinator und wir erhalten nun auf dem Display eine 1:

Wie zuvor kopieren wir nun den Inhalt dieses Kombinators und übertragen ihn in den ersten Kombinator der Hilfsschaltung. Danach schalten wir den konstanten Kombinator der Hilfsschaltung kurz ein, dann wieder aus.

Danach erhöhen wir die Bitverschiebung von 1 auf 2 und ergänzen auf diese Weise alle Ziffern bis zu 9. Hier die Einstellungen:

  • 0: Segmente A, B, C, E, F und G (logischer Wert = 1)
  • 1: Segmente C und F (logischer Wert = 2)
  • 2: Segmente A, C, D, E und G (logischer Wert = 4)
  • 3: Segmente A, C, D, F und G (logischer Wert = 8)
  • 4: Segmente B, C, D und F (logischer Wert = 16)
  • 5: Segmente A, B, D, F und G (logischer Wert = 32)
  • 6: Segmente A, B, D, E, F und G (logischer Wert = 64)
  • 7: Segmente A, C und F (logischer Wert = 128)
  • 8: Segmente A, B, C, D, E, F und G (logischer Wert = 256)
  • 9: Segmente A, B, C, D und F (logischer Wert = 512)

Falls Du Dich beim kopieren der Einstellungen irgendwo vertan hast, kannst Du im vorletzten Kombinator das Y-Signal kurz aktivieren: Dies löscht den Speicher ganz rechts außen.

Durch diese Verschiebung der Werte erhalten wir nun im letzten Kombinator eine ganze Menge Einzelwerte. Wie wir bereits wissen addieren sich Variablen, wenn diese bereits im gleichen Netz vorhanden sind.

Logisch betrachtet muss sich daher beispielsweise ein logischer Gesamt-Wert mit 18 aus 16 + 2 zusammensetzen, es gibt keine andere Möglichkeit um anders an diese Zahl zu kommen. Bei diesem Beispiel muss das entsprechende Segment entsprechend mit den (echten) Zahlen 1 (logisch 2) und 4 (logisch 16) ergeben. Daraus lässt sich nun die Zahl des Displays ableiten.

Ich möchte an dieser Stelle nicht noch weiter ins Detail gehen, damit der Abschnitt für Nicht-IT-ler nicht noch komplizierter wird, als er schon ist 😊

Wenn alles korrekt eingetragen wurde, sollte der Ausgang des letzten Vergleichers diese Werte haben:

Damit wir nicht immer alles neu berechnen müssen nach einem Stromausfall rate ich zur Verwendung eines konstanten Kombinators. Dieser soll die bis jetzt errechneten Werte aufnehmen.

Dazu stelle ich einen neuen Kombinator auf und übertrage die Werte und 1.000 manuell in den konstanten Kombinator. Für die Werte über 1.000 müssen wir ein wenig tricksen, da der Wert genau stimmen muss. Diesen Kombinator verwende ich später als Vorlage, beziehungsweise als „Wörterbuch“ für die einzelnen Display-Ziffern:

Da wir die exakten Werte für die über 1.000er-Werte benötigen, aber beispielsweise statt 1.003 nur 1K angezeigt wird, brauchen wir einen weiteren berechnenden Kombinator. Diesen Kombinator lasse ich nun von den zu hohen Werten A und E beispielsweise 1.000 Einheiten abziehen. Falls der Wert weiterhin zu groß wäre, müsste ich den Abzug entsprechend anpassen:

Die Werte F und A entsprechen 19 und 5. Da wir 1.000 abgezogen haben, müssen wir diese hier natürlich wieder im Kopf draufaddieren. Damit sind die effektiven Werte F = 1.019 und A = 1.005.

Die fehlenden Werte übertrage ich in den konstanten Kombinator und gebe zusätzlich noch ein grünes Signal für die Lampenfarbe an:

Mit diesem Kombinator sind die errechneten Werte erstmal sicher abgelegt. Sehen wir uns nun das Übertragen – oder besser das übersetzen dieser Daten – zu einer Zahl im Display genauer an.

Beispiel: Digital-Anzeigen: Blaupause

Ich möchte an dieser Stelle eine Blaupause für die Generierung bereitstellen. Es umfasst sämtliche benötigte Schaltungen und auch ein Display zum Generieren der entsprechenden Segment-Informationen:

0eNrtW9tu4kgQ/Zd+XMHIffMFjUbands3jFYj5EAnaQlsZJtoo8j/vm7IDNB2BR8GM7I0L1FMQrly6tQ5Vabzwu5WW7MpbFax2Quzizwr2ezfF1bahyxdudeq541hM2Yrs2YTlqVrd1Wu09VqukrXG1ZPmM2W5j824/Xk7BvTwlaPa1PZxXSRr+9sllZ5cRRD1N8nzGSVrazZZ7K7eJ5n2/WdKZqbdOUwYZu8bN6SZ+7GTZgpV+/0hD2zmYre6dol5sURaJywO47sGUce5zNhDdBVka/md+YxfbINBM3vLWyx2Npq3vxs+fPN97Yoq3kL1SdbVNvmlcPdd78x/Yftg5dV6koauIv1Ji12MM/YB/fjbWmae6zyogG4KrZm/47MLNw9S3cT7r4UZnlcANtchUcAuGuu6+91FyqqJyqihUqfNLSfRkSkodE0wkGL8/egxVEECCHK0BCphSTuGvW8K7+IATzwKCACIo+4Zx7BRXkkfhqcSCNB0xgzE2MCBB6gpBgzCpQo8Z4WltzGMT4OCgIXfodQMsUFCAskU5xqTC7RQSDpHgS4QgPFRCCNCnY84pFC+l4eUoWCfSwZMSzcn3EEKScROuTESOMovz6kuMdoHgnUwJEPSEIlkqAuAyUi/NFDCiIRAdsdVBkfEE4BIjg6fEB5xH5hSDwEmgdWGO4XhppNhQStJhmxAwu/gyWlsEKBsMRjhqVlPNSEIDRo7JoTjxxCNFBABIpAK9wF6i+1/povKM0XMZoIH5Qyn4eljK+4klTcBPTCQ4EGweXTsLOK7wCSWsZlgOLCIQfw13FF9bTkoDVjiUh/61HU1iMFmsiomeIXSJIFkuCsMGpchM8XSfJFobhgxPVdUVFPeKXGhoWBlf/LsEuq74iKckQZgrBAzixbWyE14soInTUk8flGjAYSRKAEnRXEmGcF3xMV5YkqQHGRI8ZF+g6gSVw4OisIqJX8NV5Ra6sSaCISesDir62a8kQl0VkBS8RfFDWJiEITwUrjI6IolVMadUMsER8RRa3OKkQTwUrj674mEYlA/5EjtmXli6ymxiYVg7CIMcPS2lPJj+kT1NxVt7lr2MQUxP+gr0Zq2DXUoJX+OmylRdtNe2q4hhfPUQMl2wTqqaga3kRHDVTYJlBPjdXg42NQAqJ2wbwXKJXThynhB27Hh8/eyHD/EfPSFvsEd6fGuup6b1eVKYiTc2dOH2xdFfmZQ3RnPoT0YggoxsfOGBKK8akzhoJifOmMEUIxHgpjss44bmHvf8CM5HgIUik6pdIf8gxEns+dMfTNCfi1M0Z0RRJ3sTI6c762zct4z8qkp8Adwh68q7zAvEy6eHR/WWlcmPnBxngQNE6Wb0zjY7tE2LR5c76tNls4fA0caG3M/Ycp7x7bUH0fwwjz8LX1Q17/JlCTU0Tfv78FpDrZKa2gEA9OEScH+QRUWh79xPuP1I7ap5vvy7kr7H26KoHZ1TVpH2qFAd7M6rc385SfdvNfN2nm2NfH05k75G3IX3t/X2K/+3nPEh3W+KVZ2KUpztRHnqvPa5jrFOet9evSqrhAm+f5riHm90W+ntusCfO6wAGW1hbYCVGMoG1+bwi37Fk6gQp3MJBwfyOE+2KB6Q2BxNib3IS8306Zyz3mXjQcPJniuXq02cMV+XtOYwRNaIkQ2k3NPRulb90VSH19i5ElCPQVppY4vsbckrija788ucSJuMKaKIW+xqIYuPPGv7wrylAPsy06sXP/gTk7+k/PCWv6ttzvezFXUVMVmUQ84rKu/wcvL3oU

Beispiel: Digital-Anzeigen: Teil 5

Zuerst ziehe ich ein neues Displayfeld mit den bekannten Größen auf und setze darunter unseren zuvor erstellten Wörterbuch-Kombinator:

Da ich in meinem Projekt hier eine mehrstellige Zahl darstellen möchte, also beispielsweise die Zahl 38, muss ich hier ein paar Sachen berücksichtigen. Irgendwie muss die Stellen trennen, also zu einer 3 und einer 8.

Um das umzusetzen verwende ich zwei berechnende Kombinatoren. Den rechten Kombinator stelle ich so ein, dass alle Signale (gelber Stern) durch 10 dividiert werden sollen. Das Ausgangssignal soll in diesem Fall „X“ sein.

Wir erinnern uns: Factorio rundet grundsätzlich Zahlen bei Divisionen immer ab. Das heißt aus unserer 38 würde eine 3 werden. Aus 596 würde daher beispielsweise 59 das Ergebnis sein. Das ist in diesem Fall sehr praktisch!

Wie kommen wir aber an den Restwert der Division? Den linken Kombinator stelle ich auf „alle Eingangssignale“ (gelber Stern), Prozentzeichen und 10. Das Ausgangssignal soll ein grünes Häkchen werden.

Das Prozent-Zeichen entspricht der mathematischen Modulo-Funktion und gibt den Nachkomma-Rest als Ganzzahl an eine Variable weiter. Die Zahl 10 heißt: Dividiere die eingehende Zahl durch 10, aber gib mir nicht die ganzen Stellen zurück, sondern den Restwert als Ganzzahl. Bei unserem “596 % 10” würde das entsprechend 59,6 ergeben, also kommt die 6 als Ganzzahl als Ergebnis raus:

Unser Aufbau (von rechts ausgehend) ist jetzt einmal das Wörterbuch, einmal die Divisionszahl, die im nächsten Displayfeld auftauchen muss und der Restwert der Division, welcher die aktuelle Zahl darstellt.

Jetzt stelle ich einen weiteren berechnenden Kombinator auf. Dieser soll wieder eine Bitverschiebung durchführen, aber nicht wie beim Kodieren einer Displayzahl nach links, sondern nach rechts – weil wir die Zahl ja dekodieren müssen und so herausfinden können, welche Segmente beleuchtet werden müssen.

Daher stelle ich bei dem neuen Kombinator ein, dass jedes eingehende Signal (gelber Stern) mit einer Bitverschiebung nach rechts durchgeführt werden soll und zwar um die Stellen, welche zuvor errechnet wurden. Daher das grüne Häkchen. Der Ausgang soll entsprechend alle noch vorhandenen Elemente auswerfen (gelber Stern):

Sehen wir uns nun die Verkabelung an: Zuerst verbinde ich die beiden Eingänge der Division und des Modulo (% / Restwert) mit einem grünen Kabel. Unseren konstanten Wörterbuch-Kombinator verbinde ich mit dem grünen Kabel an den Eingang der Bitverschiebung.

Damit nun der Modulo-Berechners arbeiten kann, verbinde ich mit einem roten Kabel den Eingang des Modulo mit dem Ausgang des Restwert-Berechners:

Unsere Zahl, die wir darstellen möchten, muss dann entsprechend mit einem grünen Kabel an den Eingang des Divisor- oder des Modulo-Berechners angeschlossen werden.

Damit nun das Display arbeiten kann setzen wir noch einen weiteren berechnenden Kombinator und verbinden den Eingang des neuen Kombinators mit dem roten Kabel an den Ausgang des Bitverschiebe-Kombinators. Der Ausgang des neuen Kombinators soll mit einem roten Kabel das Ergebnis an das Display senden:

Da dieser neue Kombinator noch nichts berechnet, passiert auch noch nichts. Ich stelle in diesem Kombinator nun noch ein, dass alle Eingangssignale (gelber Stern) eine Restwertberechnung (%) durchführen sollen und zwar mit 2:

Zum Testen verbinde ich nun einen neuen konstanten Kombinator mit dem grünen Kabel zu einem der beiden rechten Kombinatoren, bzw. deren Eingänge und trage beispielsweise ein Signal „S“ mit dem Wert 28 ein:

Die Farbe für die Zahl habe ich mit einem weiteren konstanten Kombinator gelöst. Diesen Kombinator habe ich nun an das Display mit dem roten Kabel angeschlossen und ihm das grüne Signal zugewiesen.

Die erste Stelle funktioniert also soweit wie gewünscht. Es wäre aber hinderlich, wenn wir beispielsweise nur die Zahl 8 haben möchten, aber auf jedem folgenden Display eine Null erscheinen würde. Hätten wir ein Display mit fünf Anzeigestellen, dann würde unsere 8 aussehen wie 00008. Das wollen wir vermutlich nicht.
Ich kopiere mir zuerst das aktuelle Display (nur die Lampen) allerdings erstmal ohne der aufgebauten Schaltung:

Ab der zweiten Stelle ändert sich der Aufbau der Schaltung. Wir nun getrennt die Kombinatoren und setzen diese unter das zweite Display:

Damit ich regeln kann, dass keine Lampen leuchten soll, wenn die letzte Stelle erreicht wurde, brauche ich einen entscheidenden Kombinator. Diesen stelle ich so ein, dass überprüft wird, ob das Signal „X“ größer als Null ist. Nur dann sollen alle eingehende Signale weitergereicht werden:

Sehen wir uns nun die Verkabelung an.
Ab der zweiten Stelle wird der gerade konfigurierte vergleichende Kombinator sein Ausgangssignal an das aktuelle Panel schicken. Dazu verwende ich also ein rotes Kabel und verbinde entsprechend des Ausgang des neuen Vergleichers mit dem Display der aktuellen Stelle:

Damit der neue Kombinator arbeiten kann, verbinde ich mit dem Eingang und dem grünen Kabel den Ausgang des vierten Kombinators (Division durch 10) vom ersten Panel. Vom neuen Kombinator lege ich das grüne Eingangssignal weiter zum Divisor-Kombinator der zweiten Stelle.

Nun verbinde ich mit einem roten Kabel noch den ersten Kombinator-Ausgang des Panels der zweiten Stelle mit dem Eingang des Entscheider-Kombinators rechts in diesem Abschnitt.

Damit ich wieder meine Lampenfarbe verwenden kann, verbinde ich noch den konstanten Kombinator mit der Farbe links mit dem aktuellen Panel:

Jetzt funktioniert die zweite Stelle. Nun kann ich das zweite Panel inklusive der gesamten Schaltung für diesen Bereich kopieren und beispielsweise noch sechs mal kopieren.

Ich muss nun nur noch das grüne Kabel des Display-Signalgebers mit dem jeweilen Ausgang verbinden:

Blaupause zu dieser Schaltung:


Diese Blaupause ist mal wieder zu lang für einen kompletten Abschnitt, daher hab ich ein Google-Dokument dazu erstellt:
[link]

Beispiel: Kompakte Digitaluhr: Teil 1

Dieses Beispielprojekt mache ich “auf die Schnelle” durch, es ändern sich nur ein paar wenige Kleinigkeiten im Gegensatz zum vorherigen Beispiel.

Ich beziehe mich häufig auf die im vorherigen Beispiel gezeigten Optionen. Daher solltest Du zuerst das vorherige Beispiel angesehen haben!

Das vorherige Beispiel braucht sehr viel Platz. Daher sehen wir uns nun an, wie wir die Ziffern kleiner machen können. Dazu nutze ich ein anderes Layout gegenüber des vorherigen Projekts:

Zuerst lege ich mir also wieder mein Display an. Dieses Mal mit einer Abmessung von drei Lampen Breite zu 5 Lampen in der Höhe. Zusätzlich verbinde ich die Lampen wieder mit dem roten Kabel:

Ich übertrage den elektronischen Aufbau aus dem Vorprojekt für die Berechnung wieder hier dazu. Zusätzlich hab ich für die Farbe einen weiteren konstanten Kombinator oberhalb des Displays mit dem roten Netz verbunden. Die hinterlegte Farbe ist dieses Mal Türkis.

Ich verbinde den Signalgeber unterhalb des Displays mit dem roten Kabel und hinterlege meine benötigten Variablen, also A bis O mit jeweils 1. Diese Einstellung übertrage ich auf meinen Backup-Kombinator:

Da ich hier nun nicht mehr mit nur sieben Teil-Anzeigen pro Zahl arbeite sondern sozusagen mit Pixel, benötige ich für alle Felder jeweils eine Variable.

Daher muss ich nun jede Lampe entsprechend nur dann leuchten lassen, wenn beispielsweise A > 0. Auch die Verwendung von Farben aktiviere ich.

Ansonsten mache ich nun das selbe wie im vorherigen Projekt:
Den linken konstanten Kombinator für die Umrechnung schalte ich ab. Der Kombinator mit dem Rücksetzsignal „Y“ muss ebenfalls abgeschaltet sein. Nun baue ich der Reihe nach im Display-Steuerungs-Kombinator oben die entsprechenden Variablen nach und übertrage diese dann auf den Umwandler unten (erster konstanter Kombinator).

Danach wieder den Kombinator abstellen, die Bitverschiebung auf die nächste passende Stelle verschieben und so weiter.

Weiter oben hatte ich die geplanten Ziffern inklusive der entsprechenden Variablen pro Lichtpunkt bereits abgebildet. Ich setze also für die verschiedenen Ziffern folgende Variablen:

  • Ziffer 0: A, B, C, D, F, G, I, J, L, M, N und O (logisch: 1)
  • Ziffer 1: A, B, E, H, K, M, N und O (logisch: 2)
  • Ziffer 2: A, B, C, F, G, H, I, J, M, N und O (logisch: 4)
  • Ziffer 3: A, B, C, F, G, H, I, J, M, N und O (logisch: 8)
  • Ziffer 4: A, D, G, I, J, K, L und O (logisch: 16)
  • Ziffer 5: A, B, C, D, G, H, I, L, M, N und O (logisch: 32)
  • Ziffer 6: A, B, C, D, G, H, I, J, L, M, N und O (logisch: 64)
  • Ziffer 7: A, B, C, F, H, I, L und O (logisch: 128)
  • Ziffer 8: A, B, C, D, F, G, H, I, J, L, M, N und O (logisch: 256)
  • Ziffer 9: A, B, C, D, F, G, H, I, L und O (logisch: 512)

Im Prinzip machen wir hier exakt das gleiche wie im vorherigen Projekt: Ich übertrage nun die Gesamtergebnisse auf den nicht verbundenen Kombinator und erhalte:

Das Ausgabesignal entnehme ich einfach bereits aus dem „Alles“ – 1000: Hier sehe ich nämlich die unveränderten Eingangswerte, aber auch die Werte abzüglich der 1.000 Einheiten. Damit ergeben sich folgende Variablenwerte für die Übertragung:

  • Variable A: 1.023
  • Variable B: 1.007
  • Variable C: 1.005
  • Variable D: 881
  • Variable E: 2
  • Variable F: 909
  • Variable G: 893
  • Variable H: 1.006
  • Variable I: 1.021
  • Variable J: 341
  • Variable K: 18
  • Variable L: 1.017
  • Variable M: 367
  • Variable N: 367
  • Variable O: 1.023

Diese Variablen übertrage ich jetzt manuell auf den konstanten Kombinator, der mir dann die Basisdaten für die Displays liefern soll:

Beispiel: Kompakte Digitaluhr: Blaupause 1

Hier nun die Blaupause für die kleine Display-Berechnung:

0eNrtmmtr4zgUhv+LPi7OIMn3MCzM/T7zeRgG4zpqK/AlyHLZUPLfV7I7TeJIrU9qZWHpl4Ad+7X0nHNeSye5RRdlx9aC1xItbxEvmrpFy1+3qOVXdV7qc3KzZmiJuGQV8lCdV/pIXyfzWi6KprrgdS4bgbYe4vWK/YOWZOs9qpALLq8rJnlh1qDb3x5iteSSs2FI/cEmq7vqggn1kAcH46F106p7m1qPQOktfPoi9NAGLZPwRaieo+6SoimzC3ad33B1i7rukpeSCQuBGy5kp87cP3e4YlFs8hr1gp2mSPYw/B6eU7NCj6TVYkR/CLbanxJXR766eKu5jaZJd4+r8rJclHm1Ns0u+DO72Dq7goui4zJT363ub77kopXZ5Mm+GmY6AEdLrA+qdS566Ev0t/66a5l6RtlokFJ0bDqE0ALBnwiBngfCG6cQyB6A/hhbqAQTqfjnofLaKZXYAiGE1kfiFMJbpxDoKDUiC5QICiV1CuWDY9MY1QuxUImh9eI2Vd45pRKMqCQWKAkUittU+ejYREapYnvrptAXjlsqn9y+cPAYi81XCIZycVtC751ySUdYbMlCCNBuU+yUymenVKJxslAbFujSNSVOsXxzW0RHy7bAxsUHWq7jdPnilEsyGQt0Oes4Xb67TRf/uIxGJ2ybIRICTdgxqB9uQQXHL6fRCdvWgERQUG4L7atbUON1cGrDEp/aOUn9ns+Ki2E8fXditj7KK0sTxQNovDZqUJDGG6OGD9J4a9QIQBrvjRoRSOODUSMGaXw0aiQgjU9GjRSk8dWcH7Dg/jCLhJBWnd2ZE2hl4cPKeq4lR7X0zqgRPtfjE+rxsznHMEjki1mEnN8ZvplFYLn63SwSzOVRJtNJH/lNxWA74R/biSyms1ParXjaE5Y8LC+u9WxapmWy3eJHDbpZM7X06YeFXr5UtzadXHdg8S2gfRr0Nk9tX+sV2d06b2jEW36SwXDi/n9OfEEOkf91DuI6OfeRjjc5lBwjvwvQlWCsPgoRmRiiXUtmxQq+YmLqEtcWnzuZeYLz0Cbg1KhoofUm630juxRNlfFaydxtIwBFclwFniUYeBzcB6uLTgwdhYWOJmcJ3c/DuJFR3E7yrxsmNvKa11czRo88UnChPZwUFE5/cppMDbwPtlUaD5EPJu5LnZsswRgf2uziLC82Q+iMiAPoBiW6L67nDcrzZv9/s9lXB22m0/wyL1t2+nrG6mUhsNBo6qjQftr+mnQqgsl2HkERBOfwGqxfM0+3G4zjORwH43AG00mSOfoidIa+SIrTGcwrSf057AvjaA4Hw3SODokfzNMjSWZpkmASz9En8aN4jk7JgcwTeiUHtd23S7TL6b+dLvf+5+ohte5uh2ViQoI4pbGfxiRWE9j+C4dYeuQ=

Beispiel: Kompakte Digitaluhr: Teil 2

Das Test-Display kann ich mir nun kopieren und setze es auf einem Bereich mit etwas Platz ab. Außerdem kopiere ich mir vom vorherigen Beispiel den Schaltungsaufbau und setze ihn ein Stück weg von meinem Display. Ich möchte das Schaltungslayout nämlich ein wenig kompakter gestalten.

Dazu habe ich die Schaltung beziehungsweise Verkabelung entsprechend nachgebaut.
Bevor ich die nächste Ziffer setze, ziehe ich wieder eine Spalte mit Lampen als Abstandhalter. Danach kopiere ich mir das Display der ersten Ziffer, kopiere mir entsprechend das Schaltungslayout aus dem Vorbeispiel und passe die Platzierung der Schalter ein wenig an.

Außerdem entschärfe ich den Vergleicher am Eingang des zweiten Panels: Dieser soll nun auch Nullen anzeigen. Ich ändere daher die Abfrage auf X = X, damit die Bedingung immer erfüllt ist:

Dieses Mal möchte ich nämlich keinen Counter, sondern eine digitale Zeitanzeige bekommen. Daher setze ich nun zwei Lampen als Doppelpunkt-Trenner links von diesem Panel und kopiere die bereits fertigen Panele mit der Anzeige links neben den manuellen Sekunden-Punkten hin:

Damit ich eine Anzeige bekomme, verbinde ich jetzt den Eingang des Minutenzählers mit einem Strommast unterhalb der Anlage. Hinter dem Strommast stelle ich vorübergehend einen konstanten Kombinator zum Testen mit einem Wert von S = 40 hin und verbinde diesen ebenfalls mit dem Strommast:

Als nächstes kopiere ich mir den Block des Trenner-Doppelpunkts inklusive Abstandhalter nach links und stelle diesen Block für die Stunden direkt an die Anzeige dran:

Auch hier verbinde ich wieder alle Kabel entsprechend mit einem eigenen Mast und lege vorübergehend ein permanentes S-Signal mit dem Wert 13 drauf:

Um nun sinnvolle Werte zu bekommen, übernehme ich die Blaupause aus meiner Uhrschaltung (siehe Beispiele weiter oben) und setze diese unterhalb der Anzeige hin. Ich ändere die Ausgabe-Variablen für Minuten von M zu U und Stunden von H zu T, damit die Variablen die Anzeige nicht stören.

Danach verbinde ich die Zeitausgabe-Kombinatoren mit den entsprechenden Strommasten und führe die Signale einzeln zu den entsprechenden Sekunden-, Minuten- und Stundenabschnitten. Die Signale führen pro Segment immer an den Eingang des entsprechenden Divisor-Kombinators:

Eine Kleinigkeit möchte ich noch umsetzen: die Doppelpunkt-Trenner sollen pro Sekunde sich ein- bzw. ausschalten, damit der Fortschritt der Zeit besser sichtbar wird.

Dazu verbinde ich mit dem grünen (!) Kabel die entsprechenden Lampen und ziehe diese nach oben raus. Die vier Lampen stelle ich nun so ein, dass sie nur aktiviert werden sollen, wenn „Punkt-Variable“ gleich Null ist. Daher leuchten weiterhin die vier Lampen durchgehend.

Wir bauen uns nun eine kleine Schaltung die herausfinden wird, ob unsere aktuellen Sekunden gerade oder ungerade sind. Entsprechend haben wir entweder einen Restwert wie bei 9 Sekunden (ergibt durch zwei geteilt 4,5 – also 5 Restwert) oder eben keinen, wenn es eine gerade Sekundenangabe gibt (beispielsweise 16 Sekunden durch 2 = 8 ohne Rest).

Dazu ziehe ich die aktuelle Sekundenvariable per rotem (!) Kabel nach oben zum Eingang des neu hingestellten berechnenden Kombinators. Als Formel wähle ich „S % 2“ und gebe als Signal die „Punkt-Variable“ aus. Nun wird immer dann ein Punkt geliefert, wenn wir eine ungerade Zahl haben.

Mit dem grünen Kabel verbinde ich nun den Ausgang dieses Berechners und verbinde die Lampen mit dem Ergebnis.

Und hier noch ein Beispiel bei einer geraden Sekundenanzahl:

Beispiel: Kompakte Digitaluhr: Blaupause 2

Hier nun wieder die Blaupause für die kurze Zeitanzeige inklusive dem Zeitgeber für Ticks, Sekunden, Minuten, Stunden und Tage. Die Tage hatte ich nicht berücksichtigt, das kannst Du aber nach dem gleichen System hinzufügen:

Nachtrag zur Blaupause:
Ich hatte mich schon gefreut, dass der Code der Blaupause hier reingepasst hätte. Wenn der unsinnige Steam-Schimpfwortfilter in den Guides nicht mal wieder zugeschlagen hätte. Einige Passagen wurden mit Herzchen ersetzt -.-

Daher auch hier wieder der Link zu einem Google-Doc:
[link]

Versionsänderungen / ToDo

11.07.2021:

Neue Inhalte:

  • Neue Beispiele eingefügt:
    • Automatisierte, teilintelligente Roboter-Fertigung eingebaut

10.07.2021:

Neue Inhalte:

  • Neue Beispiele eingefügt:
    • Display-Stückzahl-Anzeige (groß) eingebaut
    • Timer-Anzeige hh:mm:ss (kompakt) eingebaut
    • Bahnübergänge sichern
    • Abschnitt über Detailinfo zu den Gruppenvariablen hinzugefügt

Lesbarkeit verbessert:

  • Überschriften der Beispiele umgeschrieben und gekürzt für bessere Lesbarkeit in der Seitenspalte

05.07.2021:

Lesbarkeit verbessert:

  • Mehrere Rechtschreibfehler korrigiert, Einleitungsabsatz mit Splitter-Beispiel überarbeitet

02.07.2021:

Neue Inhalte:

  • Vorwort ergänzt: Neuen Abschnitt angelegt mit Hinweis, dass nicht jedes Problem mit einer Schaltung optimal gelöst werden sollte 😉

Lesbarkeit verbessert:

  • Einige Materialwortfehler ersetzt (habe ab und an Rohöl statt Schweröl geschrieben)
  • Übersicht bei Versionsänderungen neu aufgebaut

01.07.2021:

Neue Inhalte:

  • Beispiele für verschiedene Forschungskomplexe eingebaut
  • SR-Latch (Flipflop) Schaltung hinzugefügt -> Anlagenteile abschalten

29.06.2021:

Neue Inhalte:

  • Abschnitt für Zeitschaltung eingebaut
  • Filtereinstellung eingebaut
  • Beispielprojekt Kisten gleichmäßig befüllen eingebaut
  • Abschnitt für verbesserte Ölversorgung fertiggestellt

27.06.2021:

Neue Inhalte:

  • Lampen-Schaltungen fertiggestellt
  • Beleuchtungsskala für Füllstände (Projektbeispiele) eingebaut
  • Beispiele für Hinweismitteilungen eingebaut
  • Miditorio-Abschnitt (Musik in Factorio) eingesetzt

26.06.2021:

Neue Inhalte:

  • Greifarm-Segment eingebaut

25.06.2021:

Erstfassung des Guides veröffentlicht mit den wichtigsten Elementen

ToDo / Nice to have / Noch geplant:
  • Optik verbessern (Texte nach Bildern werden immer direkt drangeklatscht…)
  • Eventuell Videos zu den einzelnen Abschnitten machen
SteamSolo.com