Common Logistics issues and YOUR solutions.
Posted: Fri Jul 22, 2016 12:35 pm
So this thread is just for people to share how they tackle the more typical kinds of problems encountered in this game, since there are MANY different ways of doing so, it'll be interesting to see what all people use, and the pros/cons of their approaches. To give an example of what I mean, I will share my own approaches to typical problems. (Might go nab some screenshots to add later of a few things.
Problem: Early automation of smelting
My approach: I like to put a fuel belt down the middle, with Burner inserters pulling off of it. One side becomes for Iron, the other for Copper. Nice aspect of this layout is that is' easy to expand provided you choose an area and direction from it free of obstructions (and make sure not to build into said area). I belt in the raw ore on the other side of the furnaces (loaded by regular Inserters) relative to the fuel line, and have a belt going the opposite direction right outside of that onto which the finished plates are off-loaded (via Long-handed inserters) to be taken to wherever they're needed (usually hits a storage buffer first thing). Before I have researched Energy distribution mk1, I will leave every third space in which a furnace could fit vacant, so that I put a pair of Small electric poles there to power the inserters on the ore/plate side of the furnaces. Later on, I can put Medium electric poles outside of the plate belt and still have them reach the inserters across both belts, hence I can fill those vacancies with additional furnaces. Once I want to convert to Electric furnaces I can burner inserters (and fuel line unless I have reason to keep it) and adjust where the inserters are and there is enough space (1 tile width extra, occupied by fuel line if I left it there). Kinda have the do the transformation to electric all at once though with this layout. I usually create a 2nd similar setup and split off a 2nd fuel line for it, which I use for Steel and Stone smelting. In the event that I have enough furnaces to saturate the outer lane of the plate output belt, I use a simple 3-tile arrangement that creates a T junction where the 'side-street' goes to the insides lane of the 'main street' which swaps the plates on the outside lane to the inside lane, and hence can about double the number of furnaces I can have before needing to upgrade belt tier. This require some space outside of the usual layout, but it's at least fairly small.
Problem: Buffers
Solution: For belt based systems needing high throughput, I like to use a splitter on the input side to split the input and then make a the two belts go away from eachother 3 tiles per belt tier, all of these post-splitter belt tiles have Fast Inserters pulling their contents into storage chests (typically Steel chests, though I used Smart chests if I need to to have a count for the signal network, which I typically only do for Solid Fuel and only if I need lots of it for some reason). On the other side of those chests, is a similar setup with Fast inserters pulling out of the buffer chests and onto belts which converge to the middle, the inner 2 most tiles point away from the buffer and one of them has a turn which side-loads onto the other (which acts as the main-line). Because inserters always insert far-side, this results in near perfect belt saturation. For higher tier belts the number of chests is correspondingly increased. The reason for so many chests is to ensure high throughput (so the buffer itself isn't a bottleneck). For lower throughput applications, I like to use a L shape with 2 Fast inserters feeding 1 chest, the other 2 sides of that chest have Fast inserters which unload it, the belts the unload onto converge to a T junction which again exploits side loading to get items on both lanes of the best (I tend to not belt two different items on the same belt using a lane for each). If I don't need much throughput I may instead opt for 1 inserter (fast or regular depending on how much throughput I need) for loading and likewise for unloading (example case: Piercing ammo, which is being used for Defender Capsule production, which I want to also stockpile for use in Gun Turrets, my Submachine gun, and Vehicle machine gun of both the Car and Tank).
Problem: Train loading/unloading
Solution: Use chests so that inserters can exploit stack size bonus. Pretty standard approach, 6 chests each side for unload, 7 for load (still on 0.12 here; waiting for stable release). On the unload side, I often use the same belt layout I do w/ the exit side of my high-throughput buffers described above to facilitate rapid unloading. Once I have logistics bots, Using active provider and requester chests, I instead opt for 'universal' train unloading station(s), which can handle anything other than barreled oil. The bots take care of moving it from the active provider it's unloaded into to the appropriate requester chests so that it can be used for whatever I use that resource for. Barreled oil is the only thing for which I regularly use Smart inserters, I specifically use their item filtering capability. The reason I use this is that it allows me to use the same train and stations for both filled barrel pickup and empty barrel returns, these stations only unload on one side, and reload on the other side. At the main base, they unload filled barrels, and reload empty back into the cargo wagon, and vice versa at the oil outpost(s). This is where the item filter comes in, the unloading inserters are Smart inserters with their filter set to only unload the proper item (filled or empty barrels depending on where the station is; main or outpost). A nice property of this system, is that even if the train arrives with a wagon full of empty barrels to the output, there will always been enough empty spaces to unload empty barrels to to make room for the filled barrels stored at that outpost (this is because each time a barrel is filled, the empty barrel queue moves up by 1 to supply the next empty barrel, etc.). Likewise, at the main base, it's possible to have a steel barrel factor that outputs into the outside lane of the belt that feeds the inserters the load the reloading chests. What this does is keep making steel barrels until your empty-barrel-resupply side of the system is full, but because it's on the outside lane, and inserters prefer to take from the inside lane, it will never cause a backlog of empty barrels back into your unbarreling assembler. If however the unbarreling machine becomes backlogged for another reason (most likely lack of storage tanks/crude demand), it's possible to end up with too many barrels in the system (due to backlogging into the filled barrel unloading part of the system).
Problem: Oil product management
Solution: This is the one thing I routinely use combinators for, prior to Advanced oil processing, I use them initially to control what oil products I turn into Solid Fuel. LO is typically always on, but HO and PG are typically prevented from being run unless I have near full storage (and I typically also require that I don't have plenty of Solid Fuel on hand, but this can lead to oil deadlock until Advanced oil processing is researched and thus cracking becomes available). Once I have cracking, I instead use the combinators to control cracking. The way the combinator setup works is fairly simple I have 2 Decider combinators, which are used to set the necessary conditions that have to be met for the HO->LO cracking to happen (likewise for LO->PG cracking). I wire one of the storage tanks for the relevant fluids each to the relevant combinator, for the fluid to be cracked I typically like to require more than 500 in storage (so that it stops before I am in immediate danger of running out), and conversely, for the fluid to be made, I require less than 2000, so that it will stop trying to crack the other fluid into the fluid to be made when I have plenty of it (and soon enough to prevent eminent oil deadlock). These decider combinators output a 1 if the condition is met, for simplicity, I use the same signal as came into the given decider combinator. The outputs of the two decider combinators are fed into an Arithmetic combinator which multiplies the two values, and outputs the result on a signal (I usually use letter signal) which is wired to the pumps on each of the relevant cracking plants which precede the input of the fluid to be cracked. The pumps in turn have the circuit condition set to listen for the output signal of the arithmetic combinator and check if it =1 (or equivalently if it is >0). The result is that the arithmetic combinator functions as an 'and'-gate for the system, with the decider combinators checking the desired conditions.
Problem: Early automation of smelting
My approach: I like to put a fuel belt down the middle, with Burner inserters pulling off of it. One side becomes for Iron, the other for Copper. Nice aspect of this layout is that is' easy to expand provided you choose an area and direction from it free of obstructions (and make sure not to build into said area). I belt in the raw ore on the other side of the furnaces (loaded by regular Inserters) relative to the fuel line, and have a belt going the opposite direction right outside of that onto which the finished plates are off-loaded (via Long-handed inserters) to be taken to wherever they're needed (usually hits a storage buffer first thing). Before I have researched Energy distribution mk1, I will leave every third space in which a furnace could fit vacant, so that I put a pair of Small electric poles there to power the inserters on the ore/plate side of the furnaces. Later on, I can put Medium electric poles outside of the plate belt and still have them reach the inserters across both belts, hence I can fill those vacancies with additional furnaces. Once I want to convert to Electric furnaces I can burner inserters (and fuel line unless I have reason to keep it) and adjust where the inserters are and there is enough space (1 tile width extra, occupied by fuel line if I left it there). Kinda have the do the transformation to electric all at once though with this layout. I usually create a 2nd similar setup and split off a 2nd fuel line for it, which I use for Steel and Stone smelting. In the event that I have enough furnaces to saturate the outer lane of the plate output belt, I use a simple 3-tile arrangement that creates a T junction where the 'side-street' goes to the insides lane of the 'main street' which swaps the plates on the outside lane to the inside lane, and hence can about double the number of furnaces I can have before needing to upgrade belt tier. This require some space outside of the usual layout, but it's at least fairly small.
Problem: Buffers
Solution: For belt based systems needing high throughput, I like to use a splitter on the input side to split the input and then make a the two belts go away from eachother 3 tiles per belt tier, all of these post-splitter belt tiles have Fast Inserters pulling their contents into storage chests (typically Steel chests, though I used Smart chests if I need to to have a count for the signal network, which I typically only do for Solid Fuel and only if I need lots of it for some reason). On the other side of those chests, is a similar setup with Fast inserters pulling out of the buffer chests and onto belts which converge to the middle, the inner 2 most tiles point away from the buffer and one of them has a turn which side-loads onto the other (which acts as the main-line). Because inserters always insert far-side, this results in near perfect belt saturation. For higher tier belts the number of chests is correspondingly increased. The reason for so many chests is to ensure high throughput (so the buffer itself isn't a bottleneck). For lower throughput applications, I like to use a L shape with 2 Fast inserters feeding 1 chest, the other 2 sides of that chest have Fast inserters which unload it, the belts the unload onto converge to a T junction which again exploits side loading to get items on both lanes of the best (I tend to not belt two different items on the same belt using a lane for each). If I don't need much throughput I may instead opt for 1 inserter (fast or regular depending on how much throughput I need) for loading and likewise for unloading (example case: Piercing ammo, which is being used for Defender Capsule production, which I want to also stockpile for use in Gun Turrets, my Submachine gun, and Vehicle machine gun of both the Car and Tank).
Problem: Train loading/unloading
Solution: Use chests so that inserters can exploit stack size bonus. Pretty standard approach, 6 chests each side for unload, 7 for load (still on 0.12 here; waiting for stable release). On the unload side, I often use the same belt layout I do w/ the exit side of my high-throughput buffers described above to facilitate rapid unloading. Once I have logistics bots, Using active provider and requester chests, I instead opt for 'universal' train unloading station(s), which can handle anything other than barreled oil. The bots take care of moving it from the active provider it's unloaded into to the appropriate requester chests so that it can be used for whatever I use that resource for. Barreled oil is the only thing for which I regularly use Smart inserters, I specifically use their item filtering capability. The reason I use this is that it allows me to use the same train and stations for both filled barrel pickup and empty barrel returns, these stations only unload on one side, and reload on the other side. At the main base, they unload filled barrels, and reload empty back into the cargo wagon, and vice versa at the oil outpost(s). This is where the item filter comes in, the unloading inserters are Smart inserters with their filter set to only unload the proper item (filled or empty barrels depending on where the station is; main or outpost). A nice property of this system, is that even if the train arrives with a wagon full of empty barrels to the output, there will always been enough empty spaces to unload empty barrels to to make room for the filled barrels stored at that outpost (this is because each time a barrel is filled, the empty barrel queue moves up by 1 to supply the next empty barrel, etc.). Likewise, at the main base, it's possible to have a steel barrel factor that outputs into the outside lane of the belt that feeds the inserters the load the reloading chests. What this does is keep making steel barrels until your empty-barrel-resupply side of the system is full, but because it's on the outside lane, and inserters prefer to take from the inside lane, it will never cause a backlog of empty barrels back into your unbarreling assembler. If however the unbarreling machine becomes backlogged for another reason (most likely lack of storage tanks/crude demand), it's possible to end up with too many barrels in the system (due to backlogging into the filled barrel unloading part of the system).
Problem: Oil product management
Solution: This is the one thing I routinely use combinators for, prior to Advanced oil processing, I use them initially to control what oil products I turn into Solid Fuel. LO is typically always on, but HO and PG are typically prevented from being run unless I have near full storage (and I typically also require that I don't have plenty of Solid Fuel on hand, but this can lead to oil deadlock until Advanced oil processing is researched and thus cracking becomes available). Once I have cracking, I instead use the combinators to control cracking. The way the combinator setup works is fairly simple I have 2 Decider combinators, which are used to set the necessary conditions that have to be met for the HO->LO cracking to happen (likewise for LO->PG cracking). I wire one of the storage tanks for the relevant fluids each to the relevant combinator, for the fluid to be cracked I typically like to require more than 500 in storage (so that it stops before I am in immediate danger of running out), and conversely, for the fluid to be made, I require less than 2000, so that it will stop trying to crack the other fluid into the fluid to be made when I have plenty of it (and soon enough to prevent eminent oil deadlock). These decider combinators output a 1 if the condition is met, for simplicity, I use the same signal as came into the given decider combinator. The outputs of the two decider combinators are fed into an Arithmetic combinator which multiplies the two values, and outputs the result on a signal (I usually use letter signal) which is wired to the pumps on each of the relevant cracking plants which precede the input of the fluid to be cracked. The pumps in turn have the circuit condition set to listen for the output signal of the arithmetic combinator and check if it =1 (or equivalently if it is >0). The result is that the arithmetic combinator functions as an 'and'-gate for the system, with the decider combinators checking the desired conditions.