To rk84: Woah
... Glad I could inspire you to extend on my initial thought. xD
DerivePi wrote:Once a furnace starts producing FE Plate it will continue (be stuck) producing FE Plate until the logic system prevents that furnace from being fed FE Ore. Same thing with all of the materials. The Row 1 furnace for each material will probably always be "stuck" producing that material. I don't see this as a problem, just noting it because there will be the potential for an initial start up phase where material smelting will be a little unbalanced. This could be devastating for stone and steel after they are turned back on after low supply (i.e. when stone and steel need to ramp up, they can't because FE and CU Plate production prevents them from accessing the furnace).
rk84 wrote:I don't see them as stuck since they are just in use. First come, first served. But yes it is bit unbalanced like you say, but I hope some interval tweaks to match the resource type will help some degree. I admit this design can't fully utilize every single furnace and if one resource is taking over all furnaces all the time only option is to place another furnace area. But that will increase idle furnaces too... patterns work independently now. I think I have get them to work together somehow to maximise furnace usage until out of storage.
For smaller setups like for example 10x10 or 12x12 (but also for bigger setups once you are draining more iron/copper plates) this can lead to a massive problem pretty soon, because the permanent FE&CU parts may begin to overlap in
"first come, first serve" patterns in the middle and then will sidestep to another free furnace next to it in the same line... eventually hogging the starting positions of steel and stone preventing them from ever being used by steel and stone.
That's the main reason why I set my smart
"input"-inserters (the ones feeding ore to the furnaces) to only put something into the furnace as long as the
"output" chest (the one where the finished plates/bars/bricks are dumped in) is empty of that corresponding plate type.
Since the crafting is not instant and since there's the unavoidable stack bonus of inserters the furnace will always have some rest ore. This rest ore will be be smelted while a robot will come to grab the plate(s) from the
"output" chest. Then one of the following three will apply:
a.1) The bot takes too long to pick the plates up and the furnace will eventually run out of rest ore and the
"output" chest is empty of another plate type then the waiting
"input"-inserter of the other ore type gets the chance to dump its ore into the furnace thereby forcing a context switch and load rebalance.
a.2) The bot takes too long to pick the plates up and the furnace will eventually run out of rest ore but the
"output" chest is full of each Iron/Copper Plates as well as Steel Bars and Stone Brick, so none of the inserters will dump anything into the furnace and the furnace goes into idle mode.
b) The bots are too fast, mainly because the particular output stream leaving the furnace area and leading to the storage system is nearby. Then the bots will always grab the plates before the furnace runs out of excess ore thereby
"assigning" this furnace to this plate type until the demand shrinks.
So this will lead to following: The furnaces next to the output stream of a particular plate type will always be hogged by that same particular plate type because bots tend to pick up from the nearest providing source available. The further away a furnace from the output stream the more penalty it gets thanks to bot travel distance. This is my way of keeping plates in one particular corner/edge of the furnace-array without using a complex circuit logic. ^^
And even if the consumption of one particular plate type grows and it starts to clog the furnaces next to the output stream of another plate type it doesn't matter at all because then a combination of a.1) & b) will apply. The travel penalty of the wrong plate will give the right plate the chance to reconquer its nearest furnaces after a few seconds. This method ensures that the distribution ratio and location will always be fair & correct with a marginally delay.
Here's my initial setup which inspired rk84 once again so people don't have to go look into the other thread^^
Latest Iteration:
- 014.jpg (672.58 KiB) Viewed 15489 times
Earlier belt test setups (got only pictures from what I used for the blueprints):
- 012.jpg (156.5 KiB) Viewed 14887 times
- 013.jpg (180.94 KiB) Viewed 14887 times
They all lack layout optimization because I paid more attention to a proof of concept rather than space optimization... in an upcoming build I will try to squeeze stuff together if possible and if still looking
"fine" to my standard of quality. xD
DerivePi wrote:Let's say a furnace is fed one stone and then, while waiting for a delivery, the logic system disallows further brick production. What happens? Same thing with steel.
rk84 wrote:My head went bit haywire with stone. For some reason I was thinking its same as steel, mayby I mixed it to wall recipe. So 2 stones is one brick and that does not work, because inserter stacksize bonus does not match. I tested max brick production and after that half or more furnaces were clog
I can think of some space wasting solution, but don't know if it is worth just for stone.
Steel works ok as long as require chest has >= 5 iron plates and stacksize bonus is maxed. (must have plates available in storage, require stacksize high enough to give bots time to react and enough bots to move items)
That's the real problem about the whole system when incoroprating Stone and Steel as well. But I handle that with the
"input"-requester-chests.
For example for Stone I never request more than 4 (I could request exactly 2 but I'll get 4 anyways due to robot cargo size) stone to this chest. Not 1 because it wouldn't work obviously, not 3 or 5 because I don't want to leave the furnace with an odd number of stone, not more than 5 because the inserter stack bonus creating even more unpredictable problems. So this ensures when the furnace begins to smelt stone it will always end up with 0 excess stone in the furnace. Obviously this method creates a little additional delay since the bots have to fly around and gather more stone on demand and in the meantime while waiting on more stone the furnace will perform a context switch to smelt something else until it may return to stone. But this is the beauty of the whole system... there are so many other furnaces in parallel doing the same thing that eventually one has stone bricks left to grab thereby
"hiding" the supply delay.
For Steel this method doesn't work too well and the solution gets even uglier, because even If I'd request 5 iron bars to the
"input"-chest the bots will deliver 8 due to maxed out robot cargo size. Sometimes even other awkward numbers because of it depending heavily on how much iron plates there are in the
"output" chests of other furnaces, which might be actually less than the 4 the robot is capable of. This could eventually leave me with insufficient iron plates in the furnace, thereby rendering it stuck since the
"input" inserter doesn't take more as long as the steel bar in the
"output" chest is blocking the input.
So the way I'm handling that is that I request at least 20 or any other multiple of 4 & 5 trying to profit of all three effects (robot cargo size 4, inserter stack size 5 and that steel bars need 5 iron plates to craft) so that no matter what the furnace would be able to smelt all the excess plates left in the
"input"-chest into steel bars without leaving an insufficient number of iron plates in the furnace. To further ensure that there's never a situation with insufficient iron plates blocking the furnace from unloading and performing a context switch you can increase the number of iron plates stored locally in the
"input"-chests so that even if there's a spike in steel bar demand where your other furnaces couldn't keep up with the iron plates production the buffer in the chests will help overcome those spikes. But just let me say this... if those buffer chests are ever running empty you are doomed. xD