1. This forum is obsolete and read-only. Feel free to contact us at support.keenswh.com

Fully Automated Survival Mode Factory (Refinery, Assembly, Storage)

Discussion in 'Survival' started by celem, May 20, 2014.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. celem

    celem Trainee Engineer

    Messages:
    31
    Well folks, I've been wrestling with a problem. I have this idea of how the conveyors should work and thats not how they work yet, so I've been on the hunt for workarounds.

    The goal:
    1. Ore ship drops off into a collector, player involvement ceases.
    2. Ore should be fairly evenly split across refineries, refineries should not idle while ore exists
    3. Ingots should be cleared immediately from refineries regardless of whether an assembler wants them
    4. Assemblers should immediately get any ingots required
    5. Assembler output should be kept cleared, components to storage containers
    6. No container anywhere shall overflow while storage containers exist in the loop with space
    This was a pretty tall order but I finally ironed the bugs out of my system and tested it in Survival. To give it a proper test I loaded 1x inventory realism survival and threw 150k litres of ore into a 4 refinery factory (40k storage space). I also queued a bunch of glass, plates etc on the assembler and went afk. Refineries overflowed and were dealt with automatically, some assembly jobs stuck since their ore offloaded last, but the entire system self-managed and completed without intervention. The system I have designed uses your storage containers as overflow extensions for everything, with no containers able to overflow until every storage container is jammed.

    The factory setup i have currently in use meets the 6 points outlined above, it runs forever and requires zero involvement from the player beyond placing assembler orders and collecting the results from cargo cans.

    And so, heres how it works:

    Heres a shot of the beast in question

    https://imgur.com/eVVEyvh

    The world as a workshop file, ready for testing: here

    Edit: And theres now a video


    The capacity of the system before overflowing begins is the sum of cargo storage volume on the loop.

    The trick is to run a conveyor from the refineries to an assembler, from here we create a loop and send everything you own that isnt currently tied to a job round and round. From one assembler hatch you run a conveyor tube that curves back on itself and ends in a connector. 1 block away is your collector which pipes through your storage container and back into the assembler. As ore hits the refineries some sticks and gets smelted, some is stolen direct from the collectors by our loop connector below. This doesnt matter as there is a conveyor path back up to the refineries from storage and they will happily pull from there when they have time. As ingots are created in refineries they are immediately stolen and join the inventory juggle below, any time an assembler wants something it snatches it from the loop and the product is whirled away to join the dance.

    The one drawback to the system is that when you go to your storage container to retrieve an item it might not be there right now, some or all of the stack may be currently looping (in connector/collector). By disabling the 'collect all' on the otherwise permanent loop connector we cause your entire inventory to cascade back into the storage containers for easy handling. This is only really a serious issue when the system has low current volume.

    P.S. If anyone has managed to make or knows of someone who has made a working escapement in SE then I want to hear from you! Creating a perpetual pendulum gave me sleepless nights and my current solution lacks elegance.
     
  2. gi_ty

    gi_ty Apprentice Engineer

    Messages:
    119
    Wow thats pretty impressive I am very tired of the constant inventory management. I am going to have to try this.
     
  3. celem

    celem Trainee Engineer

    Messages:
    31
    The really useful part is the auto factory loop, which is also the easy part to put together. The pendulum distributor is a bit of a git to get setup correctly, though is maintenance free once installed. You could easily leave the pendulum off the system and dump all the ore to one of the refineries provided you know that you have a lot of ore coming in, the others will fill from cargo as the first one backs up, but its just not efficient.

    There are some alternatives to the pendulum, my first attempt had that static with the collection trays beneath moving back and forth on a piston but to be honest a pendulum is significantly easier to set up than a proper piston. You can also have your input pipe split into say 4 connectors paired with 4 collectors on separate refineries, but the somewhat random tug of war way in which connectors fight for resources meant I find a better distribution with the mechanical pendulum.
     
  4. fused

    fused Trainee Engineer

    Messages:
    92
    Celem,

    I stumbled across your video prior to finding this message.

    Few questions. Your pendulum is designed to evenly distribute unrefined ORE to the 4 refineries (I think it was 4) correct? Otherwise you end up with 3 refineries sitting idle until #1 refinery reaches capacity. I also assume 4 of the collectors are connected to it's respective refinery, but what is the 5th one for?

    Are your refineries all connected in parallel via a Conveyer block + tubing?

    As for the pendulum, is it only loading the raw ore that you are unloading from your mining ship, or does the recirculating ore that hasn't found its place in a refinery get cycled through the pendulum as well?

    I've been working on a similar design for a good while now (trial and error) and as much fun as it is designing it's becoming a bit of a bore watching your design not do what you wish it would.

    Thanks in advance.
     
  5. entspeak

    entspeak Senior Engineer

    Messages:
    1,744
    Very cool design. Attempted to adapt this to my setup, but I have a bottleneck issue with the Loop Connector. When you have a lot of parts in storage, they can back up the connector - this is using two large containers (one of which isn't even close to capacity and the other is empty) on a 10x dedicated server. So, I think i need to add another few connector/collector setups to the loop.

    Also, the loop connector wasn't pulling finished product out of the refineries or assembler - don't know why.

    Very cool setup, though!
     
  6. AncientP.

    AncientP. Apprentice Engineer

    Messages:
    135
    Amazing concept while waiting for Queuing Priority fixs. :thumb:

    I replaced the pendulum, by a 5x5 floor room + a 3x3 rotor that distribute ore.

    [​IMG]
     
  7. Rocky

    Rocky Trainee Engineer

    Messages:
    12
    These are pretty cool ideas, however please help me clear this up.

    In my survival game, the very first thing I do is find fuel. Then I focus completely on building more refineries and a small mining rig. With iron being pretty abundant, the new refineries go up pretty quick. And I'm on a 1x1x1 survival so inventory is small.

    Pretty quickly the 4,000 volume in your refineries fills up quick. And a typical mining trip can easily haul in 20+k ore. So if you dump this ore into a collector, which feeds into a large container...your refineries will all pull from this container until they are full. I do not need to babysit my refineries or come up with solutions like this because they do it themselves.

    As long as I keep my large containers filled up with ore, the entire things runs like clockwork.

    So why come up with these solutions which really only work for a small amount of refineries? My survival game now has 50 refineries that all run themselves. If I have a large building project and need more of a certain type of ore, all you need to do is move that ore in your container to the left and the refineries will always pull that next. You can also scroll through your refineries and move that ore to the left as well if you need it immediately.

    Am I missing something? Maybe you have larger inventories so its harder to keep your refineries filled?
     
  8. Zhab

    Zhab Apprentice Engineer

    Messages:
    446
    Well using your way, you do not have much control over what types of ore go where. Even if they are all full, the ore they contain process at different speed. You may very well end up with one refinery refining a whole bunch of platinum or magnesium while all the others are sitting there empty. Processing will slow to a crawl unless you intervene. But the point of such a system is to require no intervention.

    The system described above equally distribute the ore in refineries in a way that they fill at the same time and empty at the same time. All refineries start working immediately. You don't have to wait for the first 1 to fill, then the next, then the next. They also empty at the same time. You don't have less and less refineries working until only is less with all the work. In short, it maximize the processing speed of your refinery line. The more refineries you have the more this shines. Can you imagine manually balancing 50 refineries all the time ?

    But there is more to this system then simply equally loading your refineries. It also auto empty them. Normally a refinery wont auto eject stuff unless it's a certain % full. Meaning that there is always a bunch of stuff hanging around in all your refineries. Your assemblers will be able to use that just fine, but it can be hard to determined just how much processed ore you have and if it's enough.
     
  9. AncientP.

    AncientP. Apprentice Engineer

    Messages:
    135
    Yup, this ; but most important than the refineries simultaneous load there is the assembly loop:

    When you got lot (differents) thing(s) in queue within your assembler(s) it(they) both most of the time:

    => don't load properly the required item due to preload container capacity limitation and some later in queue item component preload anticipation (exemple: full of iron bar when you need something else but no more room to load and doesn't unload not instant required component to reload needed ones)
    => don't unload properly the newly assembled items

    Both result in assembling chain to be stuck and require manual component/items transfer.
    (wich is actually really painfull in 1x1x1 for planning assembly line a long time in advance without a lot of manual intervention)

    the loop solve this pretty well without the need of manual transfer between container(s)/assembler(s).

    (this is due to the current first shot load/unload ratio applied to the conveyor system as explained by KS until more adjustements)
     
  10. Rocky

    Rocky Trainee Engineer

    Messages:
    12
    Thanks for clearing that up. It makes sense.

    The only problem I have with what I've built is the Assemblers filling up with ingots and not being able to pull in the required amount to start a job. So I'll work on your suggestion by adding an assembly loop in the mix.
     
  11. Zhab

    Zhab Apprentice Engineer

    Messages:
    446
    There are a number of confirmed bugs about that. Not sure which is it from just this description, but just know it's something that will be fixed eventually.
     
Thread Status:
This last post in this thread was made more than 31 days old.