I have never taken the time to actually dive deeper into circuit networks, but then came the DLC. When I unlocked the Kovarex enrichment process, I decided to develop a fully automated (and over-engingeered ) setup, which is at least during the initial U235 build-up phase quite helpful. I have tried to apply most of the circuit network concepts in order to learn them and also mostly avoided looking up solutions online.
The key concepts:
Stack size and up to two filters are set dynamically on inserters; the stack size is adjusted to the item of which there are the fewest requested by a centrifuge.
The number of sections (N) containing M centrifuges each is determined automatically; thus, when adding new sections after the current last section, no manual editing of any values is required.
The amounts of U235/U238 required to satisfy the demand for all centrifuges in the cycle is determined automatically.
Only as many centrifuges are activated as can be operated with the available amounts of U235/U238; this is made possible by the fact that each centrifuge is assigned its own index (also see (2)).
U235 ends up in the provider chest only after enough U235 is available to operate all centrifuges. The requester chest requires a continuous supply of U238 and initially at least enough U235 to operate a single centrifuge.
When adding new sections at the bottom, always copy two adjacent sections containing 8 centrifuges in total. Then overlap the upper section of the ghost with the current bottom section and paste it. This way the many cables running between sections are inserted automatically.
The following is a description of the automated Kovarex setup shown in the attached image. The combinators in the top-level region, as well as in the upper right subsection of the upper section contain more detailed descriptions. A blueprint is also provided.
I hope that at least some of you find this blueprint and my descriptions useful. If you have any comments, have spotted an error or have suggestions for improvements, please, feel free to post a reply.
fully automated Kovarex enrichment process
kovarex_cycle_details.jpg (1.17 MiB) Viewed 1204 times
grey (solid): top-level controls, regulate total amount of U235/U238 in the cycle; unmarked combinators handle (1) accumulating item counts from the cycle, (2) determine whether there is a surplus or shortage of items, and (3) set the filters on the two inserters in this top-level area
white (solid): section (row) containing 4 centrifuges and their controlling circuit logic arranged in a mostly symmetrical fashion
red (solid): controls loading of the centrifuge of the respective subsection (also see description of black rectangles) based on available amounts of U235/U238 in the cycle overall and open demand from the centrifuge
red (dashed): arithmetic combinator sends the total amounts of U235/U238 in the cycle to the logic unit controlling centrifuge loading (see red (solid))
light green (solid): accumulates hand contents of the inserters, which load the centrifuges
yellow (solid): depending on the amounts of U235/U238 missing in a centrifuge, the stack size is determined and set on the inserter, which puts items into this centrifuge
yellow (dashed): here the stack size for the two inserters controlling the total amount of items in the cycle is determined; the logic is the same as for setting the inserter stack size by the circuit logic in the yellow (solid) rectangle
cyan (dashed): this arithmetic combinator (within grey rectangle) calculates the total number of centrifuges by multiplying the number of centrifuges per section (M) with the number of sections (N); the marked constant combinator between the grey and white rectangle defines M and indexes I=1,J=2,K=3,L=4; the marked constant combinator in the middle of a section (white rectangle) defines N=1 and, thus, allows to determine the total number of sections automatically
cyan (solid): this arithmetic combinator handles number of centrifuges per section (M), number of sections (N), and indexes I,J,K,L for referencing each centrifuge within a section (also see description of black rectangles); the combinator increments each index by 4; the connected marked constant combinator in the middle of a section just forwards the signals from the arithmetic combinator on the right to the left side of a section; both mentioned combinators represent the asymmetric elements of a section
magenta (dashed): constant combinator defining amounts of U235/U238 required by the Kovarex enrichment process recipe per centrifuge (40/5)
dark green (solid): constant combinator for defining surplus amounts of U235/U238 in the cycle (e.g. +10/+5); this way flickering of the filter on the inserter putting items into the last centrifuge (index L) in the bottom (last) section can be reduced/avoided
black (hatched filling): the 4 hatched rectangles subdividing the bottom section, highlight each subsection and their associated index (I,J,K,L)
I have finished reworking the circuitry to allow loading a centrifuge with items while it is processing, which should reduce its idle time. The updated algorithm can best be described as 3 nested loops:
1st level: centrifuge input buffers (2 in total)
2nd level: sections (1...n)
3rd level: subsections (4 centrifuges)
As before the combinators of subsection index I in the first section contain some descriptions, which I have updated to reflect the changes. Some combinators were removed, others have been added. Overall their number has grown in order to deal with the input buffers. The controls at the top are also more numerous now and also contain descriptions. I have added a constant combinator, with which you can control whether to use both (B=2) or just one (B=1) input buffer. I have also resolved a timing issue of the signals setting the stack size and filters on the two inserters at the top, which control the total number of items in the cycle. An additional arithmetic combinator delays the filter signal by 1 tick to synchronize it with the stack size signal.
Edit (Dec 24th, 2024): I have fixed an issue in the blueprint. A constant combinator was missing the definitions for M=4 and indexes J=2,K=3,L=4.
Edit (Dec 25th, 2024): I have redesigned the circuitry. There are now less deciders per subsection. This allowed to integrate 2 arithmetic combinators for delaying the filter signal by 2 ticks in order to sync it with the stack size signal. Another such combinator was introduced to optimize separation of signals. All in all the combinator count per subsection remained the same. When I have found the time to update the documentation to reflect all changes, I will post the new blueprint.
Edit (Dec 26th, 2024): Here is the new blueprint. Please, note that the two sections differ slightly. The upper section uses a decider combinator for selecting the appropriate value for setting the stack size on the inserter feeding the centrifuge, whereas in the bottom section the same functionality is implemented via a selector combinator just for demonstration purposes. The top level control logic still has room for improvements, but I might not explore that any further.
So it sounds like this was quite the learning experience
Next step: make it smaller. No, even smaller than that. Here's my Kovarex for reference, which also buffers no more U-235 than what it needs immediatly. And i'm sure the next engineer has an even simpler setup, too.
It was quite the experience indeed! Now that I finally know how this circuit network stuff works, optimizing my setup would be an option. But maybe I will continue my current savegame ... the factory must grow.
Your Kovarex setup is very minimalistic! It looks like you set the enable/disable condition on the centrifuge inserters manually. So far I have not done that in my setup, because I wanted to learn how to control the inserters with signals only. I should explore the potential impact this could have on the combinator count of my setup.
I can really empathise with needing some "normal gameplay" after creating that logic-behemoth you have cooked up indeed.
No, the centrifuges are not en-/disabled in my setup. It merely relies on controlling the inserter behaviour, which 2.0 made a lot easier for us. I'll forward the blueprint in case you're interested:
However the simplicity of this has its downside: there is about a 1-2 second downtime for each centrifuge whilst it is busy re-filling itself with U-235.
Yep, my behemoth has no direct practical application. But it's good for looking up how certain circuit network concepts could be implemented.
Thanks for the blueprint. I wrote "centrifuge inserters" - sorry for the confusion. Nice logic setup you have there. The best solutions always seem so simple, but actually coming up with one is the difficult part.
brainbus wrote: Sat Dec 21, 2024 9:17 pm
Yep, my behemoth has no direct practical application. But it's good for looking up how certain circuit network concepts could be implemented.
Thanks for the blueprint. I wrote "centrifuge inserters" - sorry for the confusion. Nice logic setup you have there. The best solutions always seem so simple, but actually coming up with one is the difficult part.
I did not mean to compare the setups, but rather am interested in kovarex setups generally as well and share results with you.