OmniSmelt Furnace Setup (All resources, RR scheduling)

Post pictures and videos of your factories.
If possible, please post also the blueprints/maps of your creations!
For art/design etc. you can go to Fan Art.

Post Reply
segura
Burner Inserter
Burner Inserter
Posts: 6
Joined: Wed Apr 27, 2016 7:28 pm
Contact:

OmniSmelt Furnace Setup (All resources, RR scheduling)

Post by segura »

Summary & blueprints:
  • I have created a multi-purpose furnace setup (iron copper, steel and bricks) which can be fully beaconed and doesn't clog when switching resources.
  • To operate the furnace setup I have created a circuit logic which implements a round-robin scheduling of the resources to smelt and enables the inserters when needed.
Blueprints: https://pastebin.com/Z0BL0Mrg
Previous setups:
Many furnace setups are fixed for one type of ore, the main drawback of this setup is that if you have enough of a given resources your furnaces stop and cannot be re-purposed to smelt any other resource which you may be running low, thus you need to setup more electric furnaces to cover pick demand for each resource to smelt.

Many have proposed other multi-purpose furnace setups but many come with significant drawbacks. Many operate on belts, which reduces the number of beacons that can effect a furnace, thus you need bigger setups and you need to deal with belts which for big setups can become problematic.

At the same time, many multi-purpose furnace setups only smelt iron and copper ores. Reason being because they can't clog up. Steel and bricks take 5 iron plates and 2 stone ores, if you fail to input this exact amount your furnace gets stuck when you switch elements to smelt. And it's hard to enforce this conditions and begin able to enable/disable the inserter when needed.

The main problem is that inserters can only have one "mode of operation" for the circuit networks that they are connected to. For a omnismelt setup, in general, you want them to: enable/disable on demand, change their filter, and set the enable/disable condition based on the number of items needed to pick up present in the chest that it is grabbing from. Too many conditions for the current circuit network implementation. I proposed some improvements to the circuit network which could allow setting multiple "Mode of operations", you can give some feedback here: viewtopic.php?f=6&t=47706.

My implementation, I believe, solves this requirements.
My OmniSmelt furnace setup:
The first step is an OmniSmelt furnace setup which can be fully beaconed (both sides in a row) and can take as input all of the four resources, in the numbers needed.

Image

My setup works with requester chest which always request the resources in each location. Then for iron plates and stone ore, a first pass inserter picks 5 or 2 or each if there are enough present in the chest in front. All the other inserters directly adjacent to the furnace are controlled with a enable/disable condition, some have to be filter, some stack inserts and so one based on the specifics of the resource they are supplying the furnace, all of them only input the resources to produce one processed resource.

Full setup minus beacons (my factory isn't big enough yet):
Image

The input to control this setup through the circuit network are the 4 enable conditions for iron, copper, steel and bricks.
My OmniSmelt furnace logic:
The circuit logic is quite a monster.

Image

Inputs (to the left):
  • You specify the target resources to make of each resource
  • You specify the minimum input resources needed to smelt each resource. ("-1" disables it)
  • The logistic network provides the information of the present resources on it.
  • Smelting timing parameters for iron/copper/bricks and steel. (120 and 543 normal, 38 and 126 for productivity+speed)
The circuit implements a round robin scheduling of the resources to produce, it picks the next on the list if the input conditions are meet: we have less than the target and we have enough resources to produce it. If one resource doesn't meet the requirements it is skipped automatically, no down time for the furnace.

The smelt timings parameters are the number of cycles the logics waits to switch to the next resource; steel takes longer time. I provide the numbers I have measured without modules and with productivity+speed modules. I'm not 100% on those numbers, specially the ones with modules, make sure they are working and report back! :)

An inserter, of the picked resource to produce is enabled for one cycle during the period timings provided. Stack inserters require a continuous signal to pick multiple items, up to 5 cycles to pick the 5 iron plates for steel. The logic models this, but again, I'm not 100% on this and maybe a bit more relaying of the signal may be needed. Test it and report back! :)

Possible drawbacks:
  • Electric brownout may affect the inserter and they may pick less items than needed (?). (Solution: have enough power or disable the furnace if this is detected)
  • Loss of productivity bonus when switching between resources. It could be solved increasing the timing for each resource to cover the full time needed complete the productivity bonus, additional logic would be needed to send multiple enable signals to input the resources to the furnaces.
In a way the RR scheduler logic is WIP still, functional, but could do better.
I could post the schematics if someone is interested.

Finally, I will probably post the round-robin scheduler by itself (without the specific problems of this OmniSmelt Setup) in the future. It may be useful to disable/enable train stations, for instance.

I have also posted this in factorio forums if you want to follow the discussion there:
(https://www.reddit.com/r/factorio/comme ... ources_rr/)

Post Reply

Return to “Show your Creations”