Jump to content

Exact liquid measurement


Recommended Posts

In the Space Industry upgrade we have received different rocket engines and a differentiation between fuel and oxidizer tanks. Because of that and varying distance to asteroids we can reach some of them with less fuel/oxidizer that a tank can hold. We can fill them to the brim of course, but there is a problem - any and all excesses are lost when rocket returns from the trip. That's right, rocket always returns with completely dry tanks!

That's why we can and should fill only exact amount of fuel and oxidizer in order to conserve resources.

The build is extremely simple and requires just a valve, pipe element sensor and some automation:

Spoiler

B9BB04A4758F0E498F3DD8AB3F5CD92ACE66CA68

Here I measured exactly 20 kg of water, but it can be done with any liquid, even liquid oxygen or liquid hydrogen (assuming that it will not change state during pumping, of course).

Automation is simple too, here is the screenshot:

Spoiler

FEA760617F200B8F9DDFC4E91E297621A638A1BE

The filter gate should be primed to N-1 seconds, where N is the required liquid amount in kilograms.

Be warned that while memory toggle saves it's state on game load, filter/buffer gate is not, so try to not leave the game when the operation is in action, as otherwise the result can not be predicted.

The switch is for starting the liquid transfer process - it can be automation from rocket or anything else.

Also, when building the automation, FIRST CYCLE STARTS WITHOUT WARNING (due to memory switch being in off state when first built), so either do a first 'dry run' without liquid or be prepared for the consequences.

If you wonder why there is a valve in the build, here is an explanation.

The liquid pump has a 'warmup' state when it is turned on and the first packet is always 2kg. When pump is turned off, there is a 'cooldown' state of the pump and the last packet is 4 kg most of the time, but sometimes it is 6 kg. I was unable to replicate exact requirements for the 6kg packet, I've seen it one time only.

So, in order to count exact liquid amount we need to send only full packets to the pipe. As the valve throughput is 9 kg/s, first 2kg packet goes through valve and returns to the tank. Then the second and all next, full 10kg packets are split into 9kg (goes through valve too) and 1kg packets that went to the destination. Final 4 kg packet goes through valve too, we do not need it as it is from the 'cooldown' pump state and is a leftover.

If you want to send more than 201 kg of liquid, you can stack filter gates sequentially, only one of them is needed to be set to less than one (i.e. if you want to send 400kg, set one to 199 and another to 200).

Link to comment
https://forums.kleientertainment.com/forums/topic/98000-exact-liquid-measurement/
Share on other sites

40 minutes ago, Saturnus said:

Uhm. I'd recommend just a single shut off valve. It lets exactly 10kg through per second (except the very first second where it can be up to 2g short, note 2g, not 2kg), so a simple timer will do.

I've tested the build again (made 10 runs) and first packet is always 2000g and last packet is 4000g pretty much consistently. Also, I don't quite understand how you intend to pass through the shut off valve full 10kg packets only. There is no ingame sensor that can detect packet size and we can get rid off from incomplete packets only through a simple valve with limited output which must be set to a limit higher than any incomplete packet size. Can you  show your build, as it is a night time for me now and I cannot think about it clearly?

38 minutes ago, Thrundarr said:

I've tested the build again (made 10 runs) and first packet is always 2000g and last packet is 4000g pretty much consistently. Also, I don't quite understand how you intend to pass through the shut off valve full 10kg packets only. There is no ingame sensor that can detect packet size and we can get rid off from incomplete packets only through a simple valve with limited output which must be set to a limit higher than any incomplete packet size.

I've done this several times, 10-20 now? Lost count. Anyway, using a set up like this with a buffer tank I always get exactly 400kg out if the buffer is set to 40s.

image.thumb.png.159b15230605b2849ae72c6c9ad52b22.png

image.thumb.png.bb1cb1062485d467badf5d6b3f1f0611.png

2 hours ago, Thrundarr said:

but there is a problem - any and all excesses are lost when rocket returns from the trip. That's right, rocket always returns with completely dry tanks!

  Reveal hidden contents

B9BB04A4758F0E498F3DD8AB3F5CD92ACE66CA68

  Reveal hidden contents

FEA760617F200B8F9DDFC4E91E297621A638A1BE

I miss maybe something but why you don't use the reservoir gauge to set the exact amount needed?

1 hour ago, Saturnus said:

I've done this several times, 10-20 now? Lost count. Anyway, using a set up like this with a buffer tank I always get exactly 400kg out if the buffer is set to 40s.

Yeah, your build works too, thanks, it is simpler than mine, but requires a liquid tank.

30 minutes ago, SamLogan said:

I miss maybe something but why you don't use the reservoir gauge to set the exact amount needed?

When rocket starts, it expels a lot of very hot gas into surroundings, which heats even isolated pipes and can lead to pipe breaks. Before acquiring isolator (small amount for 4-8 isolated pipes can do wonders) ceramic pipes will be consistently broken because of state change due to heating. Empty pipes can be cooled down afterwards by any remote means without worrying, full pipes will suffer break immediately and must be repaired.

14 minutes ago, Thrundarr said:

When rocket starts, it expels a lot of very hot gas into surroundings, which heats even isolated pipes and can lead to pipe breaks. Before acquiring isolator (small amount for 4-8 isolated pipes can do wonders) ceramic pipes will be consistently broken because of state change due to heating. Empty pipes can be cooled down afterwards by any remote means without worrying, full pipes will suffer break immediately and must be repaired.

You can use automation to shut off the liquid when the rocket is ready to start using the command module automation. This and leading the pipe past the fuel tank so when it`s full it pumps the excess fuel back (when you shutoff the pipe should then empty itself with the fuel tnak being full).

2 hours ago, Thrundarr said:

Yeah, your build works too, thanks, it is simpler than mine, but requires a liquid tank.

When rocket starts, it expels a lot of very hot gas into surroundings, which heats even isolated pipes and can lead to pipe breaks. Before acquiring isolator (small amount for 4-8 isolated pipes can do wonders) ceramic pipes will be consistently broken because of state change due to heating. Empty pipes can be cooled down afterwards by any remote means without worrying, full pipes will suffer break immediately and must be repaired.

It really seems like you're over-complicating things.  Just make a loop through your fuel tank inputs that leads back to your reservoir, then put an element sensor after the fuel tank.  Then a simple memory toggle setup so that you flip a switch to start it, and it gets reset once liquid is in your overflow (because tanks are full).  Pump shuts off and pipes drain back into reservoir, fuel tank gets as much fuel as set per the slider.

8 minutes ago, Nitroturtle said:

It really seems like you're over-complicating things.  Just make a loop through your fuel tank inputs that leads back to your reservoir, then put an element sensor after the fuel tank.  Then a simple memory toggle setup so that you flip a switch to start it, and it gets reset once liquid is in your overflow (because tanks are full).  Pump shuts off and pipes drain back into reservoir, fuel tank gets as much fuel as set per the slider.

I just ran a loop of piping through all of my liquid tanks :D 

Hydrogen goes through 4 tanks before returning home.

5 hours ago, Nitroturtle said:

It really seems like you're over-complicating things.  Just make a loop through your fuel tank inputs that leads back to your reservoir, then put an element sensor after the fuel tank.  Then a simple memory toggle setup so that you flip a switch to start it, and it gets reset once liquid is in your overflow (because tanks are full).  Pump shuts off and pipes drain back into reservoir, fuel tank gets as much fuel as set per the slider.

That'd work for rockets. However, there's other instances where you'd want to pump exact liquid amounts which that approach wouldn't address.

9 hours ago, Thrundarr said:

Yeah, your build works too, thanks, it is simpler than mine, but requires a liquid tank.

When rocket starts, it expels a lot of very hot gas into surroundings, which heats even isolated pipes and can lead to pipe breaks. Before acquiring isolator (small amount for 4-8 isolated pipes can do wonders) ceramic pipes will be consistently broken because of state change due to heating. Empty pipes can be cooled down afterwards by any remote means without worrying, full pipes will suffer break immediately and must be repaired.

Ok it's about emptying the pipe, personnaly I've a classic loop and shut down my pump to empty the pipe.

When I need an exact measurement, I Ensure that the pump has more than enough to work with, then just use a pulse signal hooked up to a buffer gate that controls the pump.

A good way to create a pulse signal, is to hook up a switch to a FILTER gate set to 0.1 seconds, as well as a NOT gate followed by a 2nd FILTER gate set to 0.1 seconds, then hook the output of these 2 lines together into a 2nd NOT gate.

The net result of this is that whenever a dupe flips this switch ( either on or off ), a 0.1 second pulse is sent down the line.

 

27 minutes ago, suicide commando said:

A good way to create a pulse signal, is to hook up a switch to a FILTER gate set to 0.1 seconds, as well as a NOT gate followed by a 2nd FILTER gate set to 0.1 seconds, then hook the output of these 2 lines together into a 2nd NOT gate.

The net result of this is that whenever a dupe flips this switch ( either on or off ), a 0.1 second pulse is sent down the line.

Or use an edge detector as in my post above. It can be either positive, negative, or both. It's a bit easier (to me at least) because it's the same basic set up for each of the 3 types. If you want the pulse to be a negative pulse instead these will also do that by removing the NOTs (or adding a NOT for the positive edge detector).

Edge detectors.png

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...