Page 1 of 2

Belt buffers

Posted: Fri Nov 14, 2014 12:44 am
by User_Name
How do you make buffers on belts? Share your designs.

I have a few concepts, but I don't like any of them.

Re: Belt buffers

Posted: Fri Nov 14, 2014 1:12 am
by User_Name

Re: Belt buffers

Posted: Fri Nov 14, 2014 2:04 am
by DaveMcW

Re: Belt buffers

Posted: Fri Nov 14, 2014 9:53 am
by Boogieman14
I generally just use buffering for ore nowadays, the rest is mostly JIT as Dave said (well.. unless I want to test the throughput of a specific system, but then it isn't really buffering but just chests that get filled).

One design that I like, but is really kinda for late-game:
Image

Most of the stuff passes straight through (at least as long as there's demand downstream), some is redirected to the buffer areas to the side. On each side, there's two smart chests with both red and green wire connected. These (or at least one of these) lead all the way to the mining outposts. Chests fill up center to edge and empty edge to center, so those smart chests can be used as a kind of level indicator. On the outpost side, I have smart inserters loading the train wagons, these have circuit conditions to only work when there's less than a certain amount in the network. The extra chests toward the edge will hold anything that happens to still be in transit when the highwater mark is reached, while the chests toward the center supply downstream while new supply is being loaded and transported in.

In my latest game though, I'm doing away with the circuit network and aim to simply replace those steel chests with compression chests :)

Re: Belt buffers

Posted: Fri Nov 14, 2014 2:24 pm
by User_Name
Impressive!
In my latest game though, I'm doing away with the circuit network and aim to simply replace those steel chests with compression chests :)
Hm, what compression chests?

Re: Belt buffers

Posted: Fri Nov 14, 2014 3:02 pm
by Boogieman14

Re: Belt buffers

Posted: Fri Nov 14, 2014 4:36 pm
by ssilk
I've a theory about this: it depends on the play-style. I see the three general playstyles:


1. Resource Surplus

The theory about this is, that I if I input 100% in the factory, I smelt only 90% of it and use only 80% of it to create 70% items. It means
- the belts and chests are always full with items
- the surplus is stored in chests to balance out the needs and delivery.

Works like a funnel, which is more and more narrow at the end. The bottleneck is here at the end.

Advantage: You see very soon, if there is a lack, by watching the belts or by looking into the chests (full/empty). Can react very quickly to changed needs.
Disadvantage: Works only, if you have enough resources, most polluting.


2. Production Surplus

How to achieve this? You build for every produced item more than enough production facilities (assemblies, furnaces), so that there is in the best case no queue at all. Every item is sucked off by then next production step or the "end-storage".

Reverses the funnel: The bottleneck is at the start.

Advantage: Speeds up production, especially, if there is enough input resources (transition from production surplus to resource surplus). Recommended, if you are low on resources, build the minimal set of buildings and look, that the delivery of items is somehow balanced out.
Disadvantage: Can not handle sudden needs of items. Build eventually useless buildings, high risk that the items go into the wrong direction, or building too much of one item.


3. Just In Time Production


This is about balancing the production- and resource surplus out. The exact needed amount of resource is collected and the production delivers exactly the need for the further steps. There are small to very small buffers between the steps.

This is about having no bottlenecks. Which is of course not possible.

Advantage: Building and producing only the needed stuff. Cheapest, most efficient, if working correct and the needs doesn't change much; if the future need is known, it works near to perfection.
Disadvantage: In practice not possible to achieve. Has only a very limited ability to react on changes and the reaction speed is quite slow.


With my experience I would say, that a good handling is achieved, if you play only one style, one of the above three strategies. This is of course not always possible, but I mean it is a bit important to talk about this in a multiplayer game, cause if some play for resource surplus and other play for production surplus you come into some small or big problems. :)

Re: Belt buffers

Posted: Sat Nov 15, 2014 12:30 pm
by User_Name
There are two kinds of buffers:
1) small, squished somewhere in the cramped space to balance the load on the belt. When the belt is clogged, buffer collects excess items, when the belt freed up, it unloads them back.
I saw designs like this:
Image
Image
Image
Image

Those are dumb and inefficient (too much unnecessary grabbing), but still useful in many situations.
I like the one with the car except for one flaw - it is not participating in the logistic network.

2) full blown buffers for the main buses, designed to store all thats coming and unload all that were stored at the maximum belt speed.

Boogieman14 wrote: One design that I like, but is really kinda for late-game:
Image
What I don't like about this pic is that it joins the stream from buffer with the main bus with splitter, which means that, even when the input is 100% compressed, it still uses 50% of the ore from the buffer on the output.

I currently use this. It's by no means perfect (it grew from the 1 chest buffer on the yellow belt), but it ensures that when the input is compressed, not a single piece is used from buffer, thus zero unnecessary grabbing for inserters (which is my one of my goals).

Image

I should have T-joins on the both sides of the bus, but don't have the space in the current factory.

Re: Belt buffers

Posted: Thu Dec 04, 2014 11:54 am
by User_Name
So, what do I expect from ideal high-performance buffer?

Input:
-store overflow only, do not interfere with normal item flow

Splitter cascade does that reasonably well

Output:
1) if bus is 100% compressed, buffer should not leak
2) if bus is not fully compressed, buffer should saturate it to 100%
3) if bus is empty, buffer should provide 100% throughput

There are two common solution for output
1) Splitter
Can saturate, has full throughput, leaks like crazy. (#1 #2)

2) T-joint
Do not leak at all, but can't saturate and has low total throughput.

Of these two, splitter comes on top, because leakage is not the end of the world, really. I can't think of any real downsides apart from draining a bit of electricity from dozens of inserters doing needless work.
But looking at it makes me unhappy, so I would really like to find a non-leaking solution.


Some ideas:

-use smart inserters to detect gaps on the belt, and enable output (joined through splitter) conditionally. This is probably not going to work very well.

-use decompression before T-joint.
For example, we can't insert items on a belt with 80% compression. But if we split it 2/3 + 1/3, and will use T-joint on 2/3 (which is 52% compression), it would probably work, upping overall compression after rejoining to 100%.
At the same time, if the main bus will have 100% compression, 2/3 line will have 66%, which will probably sufficient to prevent leakage from buffer.
We can try different ratios to find the one that works.

This will make a terrible belt spaghetti though, because we will need a couple of rebalancers, and have to use this trick 2 (or 3) times to achieve 100% compression on empty bus.

Re: Belt buffers

Posted: Fri Dec 05, 2014 9:08 am
by Zourin
Some of the really simple ideas are there.. You usually don't need a mass-buffer solution, just something that can give you time to recognize a shortage before that shortage becomes critical.

The simplest is a simple double-splitter. The split lane has an inserter>chest>inserter feeding into a second splitter that rejoins the two paths. It fits within a 1x7 stretch, and will maintain a slow, steady stream of resources when the primary lane has been depleted or interrupted, as long as it has time to 'back up' and build a stockpile. This chest can also be used to send a wire signal back to resource producers to regulate product flow to prevent long backup stretches (better resource allocation)

It won't be enough throughput to service massive factories, but it is enough for most practical applications.

Re: Belt buffers

Posted: Fri Dec 05, 2014 10:13 am
by ssilk
Good point. A simple combination of two splitters, two basic or fast inserters and a chest is fine. The slowest (but full) buffer is in most cases good enough to give enough "reserve items" out, that bring you over the hill to the next improvement (research/new mining/replacement building).

Re: Belt buffers

Posted: Fri Dec 05, 2014 12:11 pm
by Nova
I don't know why buffers should be important for anything beside trains. If there's a shortage in your production, where's the problem? Only fuel for boilers and things for ammunition could be a problem, but anything else could just not produce as much and be uninteresting.

Re: Belt buffers

Posted: Fri Dec 05, 2014 12:56 pm
by User_Name
Nova wrote:I don't know why buffers should be important for anything beside trains. If there's a shortage in your production, where's the problem? Only fuel for boilers and things for ammunition could be a problem, but anything else could just not produce as much and be uninteresting.
(rough approximation)
Image
Let's assume you have a patch of iron ore.
The yellow line is your factory production speed over time without buffer.
Green line - production speed with buffer.

If your buffer is not leaking, at the 2 hour mark you will notice that you are running out of ore (buffer will start to saturate main bus)
You will have ~1 and a half hour to fix it. Your factory will run at full speed.

Without buffer, you probably won't notice iron shortage until 3 - 3.5 hour mark, when lack of compression will become visible to the naked eye.
You will have less than hour to fix it. Your factory will starve on iron.

Re: Belt buffers

Posted: Fri Dec 05, 2014 1:03 pm
by Nova
Yeah, that's nice, but the question is: Why should I care that my factory starves on iron?

Re: Belt buffers

Posted: Fri Dec 05, 2014 1:06 pm
by User_Name
Nova wrote:Yeah, that's nice, but the question is: Why should I care that my factory starves on iron?
You shouldn't. You shouldn't fix belt turns too. Reduced performance means nothing, it is just a game.

Re: Belt buffers

Posted: Fri Dec 05, 2014 1:28 pm
by Nova
I know a particular benefit of fixed belt turns, but not for buffers.

Re: Belt buffers

Posted: Sat Dec 06, 2014 10:04 am
by ssilk
Nova wrote:I don't know why buffers should be important for anything beside trains. If there's a shortage in your production, where's the problem?
:) The problem is, that - especially in the beginning of the game - your fast progress can be so fast, that you miscalculated a bit and your near iron ore is empty, before you can create new iron-ore patches. To built the belts you need hundreds of belts, which takes thousands of iron. You have built up everything and now you don't have belts left and are going out of iron.

In other words: This buffer helps you
a) To mine the iron faster, cause if you have an overproduction it will eat it. This enables you
b) to switch faster to a new patch, cause the mines are earlier empty. Which spares you resources, cause you don't need to build so much mines.
c) it will bring you so over this gap.
d) which makes the overall progression much faster.

Re: Belt buffers

Posted: Sun Dec 07, 2014 6:16 pm
by User_Name
User_Name wrote: -use decompression before T-joint.
It turned out to be great idea, by the looks of it.

Design:
Image

Input: 100% compressed
Output: 100% compressed, 0 leakage

Input: ~83% compressed (1 turn)
Output: 100% compressed

Input: 64% compressed (2 turns, screenshot above)
Output: 100% compressed

Input: empty
Output: 100% compressed

Can be made slightly more compact.
Image

Re: Belt buffers

Posted: Mon Dec 08, 2014 2:07 am
by User_Name
One buffer to rule them all

Image

Input: up to 4 100% compressed blue lines via overflowing splitter cascade (13%..100%)
Output: 2 blue lines, 3550/m
Saturation threshold: 0..85% -> 100%
Leakage: none
Capacity: 154k
Expected time from full to empty under full load with 0% input: 45m

Everything is balanced for max performance.

Image

P.S. there was a bug with exported blueprints that underground belts did not connect properly. I'm not sure if it was fixed or not since I'm still on 11.3

Re: Belt buffers

Posted: Mon Dec 08, 2014 12:57 pm
by User_Name
According to numbers from the wiki, this buffer can support 3 RDH factory, but, according to this calculator, it is 1 RDH, which seems more feasible to me.

On the other hand, copper usage numbers from Cordylus indicate that it is 3 RDH indeed (if Cordylus is right about his factory performance)