Friday Facts #428 - Reactor & Logistics circuit control

Regular reports on Factorio development.
Loewchen
Global Moderator
Global Moderator
Posts: 8596
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Loewchen »

JigSaW wrote:
Fri Sep 13, 2024 1:28 pm
Loewchen wrote:
Fri Sep 13, 2024 1:18 pm
The steam itself was always just an indicator because we could not read the reactor temperature directly. Now the logic is simply insert fuel if reactor fuel is 0 and temperature is <= 500° or something in that range.
But that's not how (smart/lossless) steam battery setup works. It shouldn't restart reactors when they're around 500, it should restart reactors when there's no steam.
Even if your do not consume any power from the setup, the reactors will not reach maximum temperature when fuel is inserted at 500°C and you have anything connected to it (8 heat pipes alone are enough). You can have all the steam capacity you want but reading the steam value is unnecessary and it will be lossless no matter what.

ElderAxe
Fast Inserter
Fast Inserter
Posts: 135
Joined: Thu May 18, 2017 8:04 am
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by ElderAxe »

About combinators;
- I hoped developers were working on a less cluttered interface for wire selection etc. After the first introduction there were lots of feedback about how wire selection would look/work better. But screens are same.

About roboports;
Importantly (or unfortunately), it does not include items needed to build ghosts (construction requests).
There is a mod for it and it is my dream to have it vanilla as well. My blueprints would benefit from reading ghosts drastically.

- From the FFF-374, I assumed we would be able to set robot requests via signals. So I can automatically recycle lower tier robots when i start producing better ones. If that's not the case, it would also be a chore to manually configure them. Maybe we will be able to modify content of request groups dynamically somehow?

- One more thing is to be able to use different wires for different purposes. For entities with multiple functionalities like logistic chests or roboports, it is a blocker on cleaner designs. It would be a lot more convenient if we will be able to assign wires to different functionalities.
Let me explain with examples, for requester and buffer chests it's impossible to read the contents and set the requests on a single chest. It would be great if i'm able to read with green and set requests with red or vice-versa... For roboports you need separate roboports to read logistic contents, read logistic requests, read bot stats or set robot requests (if added later on). Read logistic requests with red wire, read bot stats with green wire.

robot256
Filter Inserter
Filter Inserter
Posts: 640
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by robot256 »

JigSaW wrote:
Fri Sep 13, 2024 1:28 pm

But that's not how (smart/lossless) steam battery setup works. It shouldn't restart reactors when they're around 500, it should restart reactors when there's no steam.

When playing the game you have plenty of low consumption moments when let's say your 2GW reactor setup will only have a consumption draw of 200MW and so in a steam battery setup you'll put one fuel cell into each reactor, you get X amount of steam and then you gonna be consuming that steam while your reactors are chilling at 500 not producing anything. So the temperature check does pretty much nothing as reactors are expected to go to 500 and shut down. If you gonna be restarting reactors merely when they're near 500 you gonna be wasting steam, that's not lossless.
This a good point. I think what this reveals is another dimension to fuel saving, and a complicated circuit system can use both heat and steam to gauge consumption and production.

Reactors can sit pegged at 10000 degrees when you intentionally connect fewer heat exchangers than optimal. Reading the temperature will let you save fuel even when such a setup is running at "maximum" power.

adam_bise
Filter Inserter
Filter Inserter
Posts: 405
Joined: Fri Jun 08, 2018 10:42 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by adam_bise »

With the ability to set assembler recipes (FFF-394), there was one missing piece of the puzzle related to making a fully automated magical 'craft everything' circuit setup. That was the ability to read what items are missing from the logistic network. So we added that:
What?? Just like that?? WOW! Been asking for ages for this one and they just slip it in quietly. THANKS!! So many requests for this one. This will simplify so many problems :D

viewtopic.php?f=6&t=39474
viewtopic.php?f=6&t=14504
viewtopic.php?f=6&t=62971
viewtopic.php?f=6&t=62355
viewtopic.php?f=6&t=61212

JigSaW
Burner Inserter
Burner Inserter
Posts: 19
Joined: Fri Jun 21, 2024 7:02 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by JigSaW »

Loewchen wrote:
Fri Sep 13, 2024 2:01 pm
JigSaW wrote:
Fri Sep 13, 2024 1:28 pm
Loewchen wrote:
Fri Sep 13, 2024 1:18 pm
The steam itself was always just an indicator because we could not read the reactor temperature directly. Now the logic is simply insert fuel if reactor fuel is 0 and temperature is <= 500° or something in that range.
But that's not how (smart/lossless) steam battery setup works. It shouldn't restart reactors when they're around 500, it should restart reactors when there's no steam.
Even if your do not consume any power from the setup, the reactors will not reach maximum temperature when fuel is inserted at 500°C and you have anything connected to it (8 heat pipes alone are enough). You can have all the steam capacity you want but reading the steam value is unnecessary and it will be lossless no matter what.
The reactors don't need to reach maximum temperature the moment fuel is inserted (at 500°C) cos you can start the refueling cycle when you have (lets say) 20% of steam left in your buffer. Then by the time it reaches 0% your reactors will be working in full.

I already described you a situation where reading steam will be lossless while reading temperature won't to which you didn't reply. The temperature condition makes it so reactors are working continuously while never shutting/cooling down which is inherently lossy cos there're gonna be times when you won't be able to consume all the steam that's being continuously produced. Constant production of steam is in fact a flaw. However, reading the steam lets you produce it in bursts (let's say 10M of steam over two minutes) which then will be consumed gradually over any period of time and in full before getting the next "batch" and without any possibility of wasting it.

Loewchen
Global Moderator
Global Moderator
Posts: 8596
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Loewchen »

JigSaW wrote:
Fri Sep 13, 2024 2:20 pm
I already described you a situation where reading steam will be lossless while reading temperature won't to which you didn't reply.
The only way to have losses is if the reactor is burning fuel while at 999°C. You do not have losses if you heat up the reactor while your steam is full, you just store the energy as heat that you will later use to create electric energy, nothing is lost.

Your setup will oscillate between high steam storage and low steam storage.
My setup will oscillate between high heat storage and low heat storage.
Your setup with reading steam will be lossless.
My setup with reading temperature will be lossless.
Your setup needs two circuit connections.
My setup needs one circuit connection.

Muche
Long Handed Inserter
Long Handed Inserter
Posts: 59
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Muche »

Loewchen wrote:
Fri Sep 13, 2024 2:42 pm
JigSaW wrote:
Fri Sep 13, 2024 2:20 pm
I already described you a situation where reading steam will be lossless while reading temperature won't to which you didn't reply.
The only way to have losses is if the reactor is burning fuel while at 999°C. You do not have losses if you heat up the reactor while your steam is full, you just store the energy as heat that you will later use to create electric energy, nothing is lost.

Your setup will oscillate between high steam storage and low steam storage.
My setup will oscillate between high heat storage and low heat storage.
Your setup with reading steam will be lossless.
My setup with reading temperature will be lossless.
Your setup needs two circuit connections.
My setup needs one circuit connection.
Is your setup one lonely reactor, or 2xN array?
I mean, without neighbourhood bonus one reactor's heat capacity is greater than one fuel cell energy, but full array's might be lower and could require steam storage to be lossless.
But I don't remember off the top of my head and would have to check.

hecktarzuli
Burner Inserter
Burner Inserter
Posts: 17
Joined: Fri Jul 01, 2022 2:37 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by hecktarzuli »

I don't get the point of circuits in nuclear reactors. Uranium is plentiful, I didn't even go through 1/2 a mine in my 5k megabase, what would be the point of throttling nuclear power if resources are so abundant with koverex?

User avatar
MeduSalem
Smart Inserter
Smart Inserter
Posts: 1567
Joined: Sun Jun 08, 2014 8:13 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by MeduSalem »

Nice, finally I can tear down the devilish refilling circuit logic that triggers on a single-tick when ejecting the empty fuel cells from reactors. xD



I will also have some use for the disabling/enabling of requester/provider chests.
One situation that comes into my mind right of the bat is that it will improve on how I do the Kovarex enrichment stuff where you only want to remove the excess U-235 from the loop and keep a certain amount circling around. So there I will use the chest disabling/enabling the chests to enable bots to pick up the excess. Never much liked the belt solutions for that. ^^

robot256
Filter Inserter
Filter Inserter
Posts: 640
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by robot256 »

hecktarzuli wrote:
Fri Sep 13, 2024 2:55 pm
I don't get the point of circuits in nuclear reactors. Uranium is plentiful, I didn't even go through 1/2 a mine in my 5k megabase, what would be the point of throttling nuclear power if resources are so abundant with koverex?
I have fuel savings enabled on my reactors and my my SE base has still ground to a halt several times after depleting uranium deposits. In long games it's not at all infinite. Plus it may be rarer on other planets in Space Age.

Terrahertz
Fast Inserter
Fast Inserter
Posts: 128
Joined: Mon May 15, 2017 7:49 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Terrahertz »

hecktarzuli wrote:
Fri Sep 13, 2024 2:55 pm
I don't get the point of circuits in nuclear reactors. Uranium is plentiful, I didn't even go through 1/2 a mine in my 5k megabase, what would be the point of throttling nuclear power if resources are so abundant with koverex?
For once, it's a nice puzzle to solve and that's part of the game.
The other part is, that in Space Age Enriched Uranium is needed for space science, so I don't know how quickly you now burn through ore patches.
Also you might have reactors on other planets where you need to import the fuel, so not using any cells when you don't need them saves you logistic costs.

Terrahertz
Fast Inserter
Fast Inserter
Posts: 128
Joined: Mon May 15, 2017 7:49 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Terrahertz »

Muche wrote:
Fri Sep 13, 2024 2:54 pm
Loewchen wrote:
Fri Sep 13, 2024 2:42 pm
JigSaW wrote:
Fri Sep 13, 2024 2:20 pm
I already described you a situation where reading steam will be lossless while reading temperature won't to which you didn't reply.
The only way to have losses is if the reactor is burning fuel while at 999°C. You do not have losses if you heat up the reactor while your steam is full, you just store the energy as heat that you will later use to create electric energy, nothing is lost.

Your setup will oscillate between high steam storage and low steam storage.
My setup will oscillate between high heat storage and low heat storage.
Your setup with reading steam will be lossless.
My setup with reading temperature will be lossless.
Your setup needs two circuit connections.
My setup needs one circuit connection.
Is your setup one lonely reactor, or 2xN array?
I mean, without neighbourhood bonus one reactor's heat capacity is greater than one fuel cell energy, but full array's might be lower and could require steam storage to be lossless.
But I don't remember off the top of my head and would have to check.
They require steam storage, I built a 2x4 and with steam storage at 30% when starting, it not only fills the storage but gets the reactors to ~900°c before the fuel is burnt completely. Assuming there is no power draw from the base ofc.

Loewchen
Global Moderator
Global Moderator
Posts: 8596
Joined: Wed Jan 07, 2015 5:53 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Loewchen »

Muche wrote:
Fri Sep 13, 2024 2:54 pm
Is your setup one lonely reactor, or 2xN array?
I mean, without neighbourhood bonus one reactor's heat capacity is greater than one fuel cell energy, but full array's might be lower and could require steam storage to be lossless.
But I don't remember off the top of my head and would have to check.
You could create a situation that would indeed have losses in some extreme circumstance, like if you do not consume any energy just after you reached 500°C and have as little heatpipes and exchangers while also having full neighboring bonus, but my setup also has steam storage, it just does not not need to read it.

JigSaW
Burner Inserter
Burner Inserter
Posts: 19
Joined: Fri Jun 21, 2024 7:02 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by JigSaW »

Loewchen wrote:
Fri Sep 13, 2024 2:42 pm
JigSaW wrote:
Fri Sep 13, 2024 2:20 pm
I already described you a situation where reading steam will be lossless while reading temperature won't to which you didn't reply.
The only way to have losses is if the reactor is burning fuel while at 999°C. You do not have losses if you heat up the reactor while your steam is full, you just store the energy as heat that you will later use to create electric energy, nothing is lost.
Oh I see what you're saying now, the heat is gonna be "consumed" as gradually as steam. Hmm, if the amount of heat produced by one fuel sell can be fully stored in a standard nuclear setup then okay, that will be lossless. It might even be beneficial to my setup cos yours don't need the massive fluid tank buffer for millions of steam.

hecktarzuli
Burner Inserter
Burner Inserter
Posts: 17
Joined: Fri Jul 01, 2022 2:37 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by hecktarzuli »

robot256 wrote:
Fri Sep 13, 2024 3:00 pm
hecktarzuli wrote:
Fri Sep 13, 2024 2:55 pm
I don't get the point of circuits in nuclear reactors. Uranium is plentiful, I didn't even go through 1/2 a mine in my 5k megabase, what would be the point of throttling nuclear power if resources are so abundant with koverex?
I have fuel savings enabled on my reactors and my my SE base has still ground to a halt several times after depleting uranium deposits. In long games it's not at all infinite. Plus it may be rarer on other planets in Space Age.
Interesting. I was running 320 reactors and never had a problem. It is a good point about other planets.

Tertius
Filter Inserter
Filter Inserter
Posts: 836
Joined: Fri Mar 19, 2021 5:58 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Tertius »

JigSaW wrote:
Fri Sep 13, 2024 1:08 pm
I don't seem to get how reading reactors would replace the smart setup with steam reading.
[...]
So how would reading the temperature or the amount of fuel cells let you make the same setup without steam reading?
The ideal reactor has a constant temperature, so the right amount of heat exchangers are producing exactly the amount of steam that is consumed to exactly produce the energy that's being consumed by the factory.

If the reactor is warmer, too much steam is produced, so it accumulates. The reactor needs to cool down, so the surplus steam is consumed and doesn't overflow, because if it overflows, the reactor isn't cooled any more, so it gets warmer and warmer until it wastes the heat when it reaches 1000°C.
So the reactor temperature needs to be in a range sometimes warmer and sometimes cooler than the ideal temperature. It can cool down while there is no active fuel cell, and it can heat up if there is an active fuel cell.

Steam isn't relevant, but the temperature is relevant. The heat exchangers need at least 500° to produce steam. The reactor needs a minimum temperature to make the heat reach all heat exchangers. If the temperature is lower, the heat exchangers aren't producing maximum power, and this can directly be used to manage fuel supply: insert a fuel cell, if the reactor temperature is below this threshold. Until now, we have to resort to an indirect indication of the reactor temperature. It's related to buffered steam. The more steam, the higher the reactor temperature. Huge disadvantage is the huge latency between steam raising due to temperature: the temperature is already very high when the steam is still building.
To directly have the temperature helps with that latency. You can react faster.

However, it's still not trivial. The ideal reactor temperature depends on actual power consumption. If you're just consuming a few MW, a reactor temperature slightly above 500°C is sufficient. If you're consuming full power, the reactor needs a temperature of 750-850°C, so the heat is able to reach all heat exchangers. To not waste fuel, you need to make sure the reactors will not reach 1000°C, even if the moment a new fuel cell is inserted all power consumption stops and the heat accumulates. All heat needs to be buffered in the reactors, the heat pipes and steam. This is not easy to accomplish with the steam buffer latency.

In general, directly having the temperature enables us to use less heat and steam buffers. The control is faster, more direct.

Terrahertz
Fast Inserter
Fast Inserter
Posts: 128
Joined: Mon May 15, 2017 7:49 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Terrahertz »

JigSaW wrote:
Fri Sep 13, 2024 3:13 pm
Loewchen wrote:
Fri Sep 13, 2024 2:42 pm
JigSaW wrote:
Fri Sep 13, 2024 2:20 pm
I already described you a situation where reading steam will be lossless while reading temperature won't to which you didn't reply.
The only way to have losses is if the reactor is burning fuel while at 999°C. You do not have losses if you heat up the reactor while your steam is full, you just store the energy as heat that you will later use to create electric energy, nothing is lost.
Oh I see what you're saying now, the heat is gonna be "consumed" as gradually as steam. Hmm, if the amount of heat produced by one fuel sell can be fully stored in a standard nuclear setup then okay, that will be lossless. It might even be beneficial to my setup cos yours don't need the massive fluid tank buffer for millions of steam.
If the numbers in the wiki are correct I highly doubt that it's the case. A Nuclear Reactor can store up to 5GJ of heat energy, the fuel cell has 8GJ of energy, multipled with the neighbour bonus, so in a 2x2 setup it has 24GJ. Heat exchangers and heat pipes have 1/10 of the heat capacity of the reactor per entity. So to be lossless you need A LOT of those, if you want to steer the thing entirely by the heat signal at least.

But as I said if you calculate the thermal capacity of your powerplant you can now have either less steam storage or you can better account for the powerplant heating up.

Ausprit
Inserter
Inserter
Posts: 20
Joined: Wed Jun 01, 2016 5:41 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by Ausprit »

A small suggestion:

Change the label "Enable/Disabe" to "Enabled if".
Otherwise, one has to infer that it will be enabled if the predicate is true (which would be the sensibe choice, but who knows).

hecktarzuli
Burner Inserter
Burner Inserter
Posts: 17
Joined: Fri Jul 01, 2022 2:37 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by hecktarzuli »

Terrahertz wrote:
Fri Sep 13, 2024 3:02 pm
hecktarzuli wrote:
Fri Sep 13, 2024 2:55 pm
I don't get the point of circuits in nuclear reactors. Uranium is plentiful, I didn't even go through 1/2 a mine in my 5k megabase, what would be the point of throttling nuclear power if resources are so abundant with koverex?
For once, it's a nice puzzle to solve and that's part of the game.
The other part is, that in Space Age Enriched Uranium is needed for space science, so I don't know how quickly you now burn through ore patches.
Also you might have reactors on other planets where you need to import the fuel, so not using any cells when you don't need them saves you logistic costs.
"in Space Age Enriched Uranium is needed for space science" -- oh! Where did you see this, I'd like to learn more.

adam_bise
Filter Inserter
Filter Inserter
Posts: 405
Joined: Fri Jun 08, 2018 10:42 pm
Contact:

Re: Friday Facts #428 - Reactor & Logistics circuit control

Post by adam_bise »

Importantly (or unfortunately), it does not include items needed to build ghosts (construction requests). This is mostly a technical restraint on our behalf, as logistic networks do not track ghosts in a way that would make it performant to include.
Couldn't you make a given construction area act like a hidden requestor chest that logistics bots ignore? Just as any given construction bot scans for jobs, a dummy construction bot could scan and update the hidden requestor chest. IDK I'm not a dev, and I don't understand the technical limitations of this.

I don't even think the ghost mat count would need to or could be as fast as the logi network, it just needs to be there on a signal somewhere, even if it were updated slowly. Could totally be a separate positive integer signal. plix
Last edited by adam_bise on Fri Sep 13, 2024 4:18 pm, edited 3 times in total.

Post Reply

Return to “News”