Page 4 of 8

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Sun May 20, 2018 5:04 pm
by zOldBulldog
disentius wrote: @zOldBulldog: DaveMcW's is brilliant, and the most efficient for 4 belts per wagon
[edit] typo
I tested DaveMcW's unloader, it does indeed unload nearly compressed 4 blue belts per wagon.

Trivial issue: The center chest (the one that goes from chest to chest to chest before being emptied by the 2 inserters into the belts) tends to empty faster than the rest, occasionally causing minimal interruptions (thus the 4 belts per wagon don't fully saturate). Even so, it is very close and good enough for me. IMHO an improved version would only be worth it if it remains about as compact as it is now, full saturation is probably not worth it if it requires a much larger footprint.

NOTE/EDIT: It requires an 8x8 balancer, or uneven ore consumption will eventually cause some wagons to empty faster while leaving others nearly full and thus causing trains to take much longer to unload... defeating the goal of fast unloads.

EDIT 2:. I found reports that even lane balancers are only a temporary solution. Eventually one of the chests would still empty and hold up the whole train. Circuit logic unload can help but it kills throughput. I have not found a good complete solution that preserves unload speed.


For those who need a way to supply trains fast enough, below is a screenshot. The blueprint and usage description is at factorioprints: https://factorioprints.com/view/-LCyNqfc04vWxjS8v8DG
unload.jpg
unload.jpg (273.34 KiB) Viewed 10953 times

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Sun May 20, 2018 9:31 pm
by Slayn25
DaveMcW wrote:
disentius wrote:@Slayn:
- Not extensible beyond 4 wagons
- Not enough throughput chest->inserter->belt*
1. If your train is longer than 4 wagons, getting it in and out of the station before your 6 belts empty the buffer is a bigger problem.
2. Outputting to a splitter doubles inserter throughput.
Outputting to a splitter does not double inserter throughput because even though the inserter unloads to the splitter at double speed it would a belt, the arm swivel speed remains the same. Both factors would need to be cut in half for the throughput to double.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Mon May 21, 2018 6:47 am
by Slayn25
No tunnel and not completely blueprintable but...
Image
Image
  • 6 Compressed belts/wagon
  • All original chests are drawn from equally and are lane balanced
  • Tileable

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Mon May 21, 2018 8:39 am
by disentius
Slayn25 wrote:
DaveMcW wrote:
disentius wrote:@Slayn:
- Not extensible beyond 4 wagons
- Not enough throughput chest->inserter->belt*
1. If your train is longer than 4 wagons, getting it in and out of the station before your 6 belts empty the buffer is a bigger problem.
2. Outputting to a splitter doubles inserter throughput.
Outputting to a splitter does not double inserter throughput because even though the inserter unloads to the splitter at double speed it would a belt, the arm swivel speed remains the same. Both factors would need to be cut in half for the throughput to double.
yeah.. i forgot one word there..[not] :oops:

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue May 22, 2018 8:29 am
by mrvn
DaveMcW wrote:
disentius wrote:@Slayn:
- Not extensible beyond 4 wagons
- Not enough throughput chest->inserter->belt*
1. If your train is longer than 4 wagons, getting it in and out of the station before your 6 belts empty the buffer is a bigger problem.
2. Outputting to a splitter doubles inserter throughput.
You can extend it to 6 wagons by repeating the first/last wagons pattern and you get the actually requested 4 belts per wagon.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue May 22, 2018 10:33 am
by Lav
mrvn wrote:You can extend it to 6 wagons by repeating the first/last wagons pattern and you get the actually requested 4 belts per wagon.
Or just use a non-standard train design, like 1-2-1-2-1-2 or 2-4-2-4. Locos inside the train give plenty of space for construction.

Though every time I look at these designs, there's a nagging question at the back of my mind: wouldn't it be cheaper both resource and space-wise to simply build two parallel stations with less advanced unloading designs? :-)

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue May 22, 2018 12:51 pm
by mrvn
Lav wrote:
mrvn wrote:You can extend it to 6 wagons by repeating the first/last wagons pattern and you get the actually requested 4 belts per wagon.
Or just use a non-standard train design, like 1-2-1-2-1-2 or 2-4-2-4. Locos inside the train give plenty of space for construction.

Though every time I look at these designs, there's a nagging question at the back of my mind: wouldn't it be cheaper both resource and space-wise to simply build two parallel stations with less advanced unloading designs? :-)
As I mentioned I would build 4 (or however many you need to saturate the belts with some buffer) parallel stations, unload with just one row of inserter onto underground belts going across the stations. If you don't have Bobs adjustable inserters then you need to have 2 stations with belts going down and 2 stations with belts going up and then merge them to fill both lanes of each belt. That easily gives you 6 belts per wagon no matter how many stations you have in parallel. The number of stations just saturate the belt more.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Sat May 26, 2018 3:52 am
by Slayn25
mrvn wrote:
Lav wrote:
mrvn wrote:You can extend it to 6 wagons by repeating the first/last wagons pattern and you get the actually requested 4 belts per wagon.
Or just use a non-standard train design, like 1-2-1-2-1-2 or 2-4-2-4. Locos inside the train give plenty of space for construction.

Though every time I look at these designs, there's a nagging question at the back of my mind: wouldn't it be cheaper both resource and space-wise to simply build two parallel stations with less advanced unloading designs? :-)
As I mentioned I would build 4 (or however many you need to saturate the belts with some buffer) parallel stations, unload with just one row of inserter onto underground belts going across the stations. If you don't have Bobs adjustable inserters then you need to have 2 stations with belts going down and 2 stations with belts going up and then merge them to fill both lanes of each belt. That easily gives you 6 belts per wagon no matter how many stations you have in parallel. The number of stations just saturate the belt more.
Like this?
Image

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Sat May 26, 2018 11:08 am
by golfmiketango
quyxkh wrote:

@mrvn: I think you forgot about stackers, and pace a typo (busy % is unload time / (unloadload time + interarrival) what you gave is exactly what I'm calculating.
No kidding... indeed it would seem this trick alone provides enough "juice" to complete Eradicator's assignment (or at least get really, really close) without any other noteworthy cleverness. Here's a proof-of-concept (perhaps with lots of superfluous complexity) with zero chests, zero combinators, and twelvethirteen inserters):
proof of concept
proof of concept
damnclose.png (378.95 KiB) Viewed 10809 times
blueprint string
The above just barely fails to fully compress the belts (and would certainly fail if we had to wait for the next train)... but it's damn close, probably clocking in at just a wee sliver of an item per second shy of the target. Squeezing in one more inserter->splitter somewhere would clearly supply the required throughput, assuming it isn't there already but somehow a victim of my crappy pseudo-balancer.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Sat May 26, 2018 2:21 pm
by quyxkh
You want four belt segments for buffering between the unload inserters and splitters, there's alread two there, just shift the balancer down two and it gets full compression.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Sun May 27, 2018 3:20 am
by tzwaan
Here's a version using the splitter mechanics I threw together. It's only using the regular amount of stack inserters and a single row of buffer chests.

Image

It's actually capable of doing slightly more than 4 full belts. 4.25 to be exact. To achieve that some extra wiggling around of the output belts is needed to actually make it neat compressed belts, that I can't be bothered to do:

Image
Blueprint string
Also, I made another design which is similar to this challenge, but in the other direction (no idea whether there's a thread for that) which consumes 4 full belts per wagon.

Image

It's interesting that using the inserters from the sideloaded underground belts is actually faster when picking up items as opposed to putting them down. (54 vs 56 ticks)

Speaking of which, the information on the wiki about inserter timings to belts are incorrect, and I'm in the process of fixing them soon. But just an FYI a stack inserter to a blue belt moves 12.857 items per second, not 12.20 as indicated on the wiki. The numbers on the wiki are outdated from 0.15

So 3 stack inserters to belts will move 38.57 items which is even closer to a fully compressed belt than before.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Mon May 28, 2018 10:03 am
by mrvn
Slayn25 wrote:
mrvn wrote:
Lav wrote:
mrvn wrote:You can extend it to 6 wagons by repeating the first/last wagons pattern and you get the actually requested 4 belts per wagon.
Or just use a non-standard train design, like 1-2-1-2-1-2 or 2-4-2-4. Locos inside the train give plenty of space for construction.

Though every time I look at these designs, there's a nagging question at the back of my mind: wouldn't it be cheaper both resource and space-wise to simply build two parallel stations with less advanced unloading designs? :-)
As I mentioned I would build 4 (or however many you need to saturate the belts with some buffer) parallel stations, unload with just one row of inserter onto underground belts going across the stations. If you don't have Bobs adjustable inserters then you need to have 2 stations with belts going down and 2 stations with belts going up and then merge them to fill both lanes of each belt. That easily gives you 6 belts per wagon no matter how many stations you have in parallel. The number of stations just saturate the belt more.
Like this?
Image

Pretty much. Except if you use more stations in parallel you can skip the chests. Means the stations on each side can be closer together.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Fri Jun 01, 2018 11:19 pm
by CrispyOMNOMS
I use this design. Each full express belt takes items from three unloading buffer chests almost evenly, the chest that must output more has a larger buffer in the form of two extra chests. Having two of these mirrored takes items from all six unloading buffer chests on one side of the train to output two express belts.
The extra chests are stack limited so so that all the chests that output onto belt run out at almost the same time, I chose this because I don't like the gradual slow down as chests empty at stations.

There are three stack inserter placing items onto express belt at 12.2 items/s each, totalling 36.6 items/s.
And one "top-up" fast inserter that adds the extra 3.4 items/s needed to get full express belt compression.

Image

Inserter item/s stats from https://wiki.factorio.com/Inserters#Chest_to_belt

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Fri Jul 13, 2018 3:16 am
by tzwaan
I made a pretty compact tileable design using the splitter quirck.

Image

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue Jul 17, 2018 9:40 am
by mrvn
Do underground belts still have a buffering effect making the inserters drop faster?

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue Jul 17, 2018 10:04 am
by zOldBulldog
Quite a few people were able to come up with 4-saturated-belt per wagon designs.

But... most of those designs seem to have a flaw:

- As factories use up the resources, they typically pull more from some belt than others... what I'd call "unbalanced demand".
- Over time, the unbalanced demand ripples through the unloader leaving some of the chests the train unloads fuller than others.
- Trains fill the "emptier" chests quickly but then must wait for the full chests. There is "overall" capacity available in the unload chests, but it is in not in chests the train is able to unload to.
- The result is that the 3-5 second unload ends up stretching to 10, 20, 30 seconds and more... and as belts empty, your unload capacity drops to less than 4 saturated belts.

There are a couple band-aids for the problem.

- Placing a [4 x number of wagons] belt balancer behind the unloader does a decent job of reducing the unload chest unbalancing. But it is not perfect, it still loses some of the 4-belt per wagon saturation.
- There are circuit-based designs to keep the unload chests balanced, but they seem to reduce the throughput to about 1 saturated belt per wagon, not even close to good enough for this purpose.

So, perhaps we should raise the bar and update the experiment to: "Unloading 4 compressed blue belts per wagon... while keeping the unload chests balanced".

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue Jul 17, 2018 10:35 am
by eradicator
@mrvn: I'd be suprised if that survived the belt optimization.
____
zOldBulldog wrote:But... most of those designs seem to have a flaw:
Whatever happens after unloading is not a flaw of the unloader. If you want balancers you should go to a balancer thread.

As the original author of this thread i can also tell you that the solutoin is intended for well designed megafactories, which do not suffer the "unbalanced belt usage" problem in the first place, because by definition they are well designed, i.e. they consume all belts at full speed, and thus nothing can "ripple back" anywhere. If your factory doesn't consume all the output at full speed you don't need a high-speed unloader in the first place.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue Jul 17, 2018 10:39 am
by golfmiketango
mrvn wrote:Do underground belts still have a buffering effect making the inserters drop faster?
Nope, that was deliberately removed from the game.
zOldBulldog wrote: - The result is that the 3-5 second unload ends up stretching to 10, 20, 30 seconds and more... and as belts empty, your unload capacity drops to less than 4 saturated belts.

There are a couple band-aids for the problem.

- Placing a [4 x number of wagons] belt balancer behind the unloader does a decent job of reducing the unload chest unbalancing. But it is not perfect, it still loses some of the 4-belt per wagon saturation.
- There are circuit-based designs to keep the unload chests balanced, but they seem to reduce the throughput to about 1 saturated belt per wagon, not even close to good enough for this purpose.

So, perhaps we should raise the bar and update the experiment to: "Unloading 4 compressed blue belts per wagon... while keeping the unload chests balanced".
This is really, really, hard (maybe impossible?) to solve without circuits. One thing that tends to help is to standardize item-travel-distance through all balancer pathways. Which is difficult AF in practice (but does not anymore in principle limit us to 2ⁿ balancers, if we ensure that feedback loops are always on disfavored ingress and preferred egress pathways (without breaking balancing, which, usually, they won't)).

On the other hand, it's relatively straightforward (straightforwardness being in the hydraulic actuation feedback sensor of the be-holder, of course...) to solve with circuits, especially at train-unload places, where we can easily know exactly how much "stuff" showed up, and therefore precisely enforce balanced (or otherwise distributed) buffering (by suppressing buffer inputs beyond the optimal/desired distribution), as well as balanced buffer emptying (by selecting and suppressing the item filters/stack-sizes/enablement of debuffering inserters). However it is notable that all these solutions work by suppressing throughput to some degree or another. That is, they tend to suggest by their very means of operation that the problem being solved is more often aesthetics-, than minmax-related... An argument can be made that under the right conditions (i.e.: demand-side seasonality) buffer ingress balancing has utility to a minmaxer, I suppose. Buffer egress balancing -- the thing that would prevent those trailing dribbles as we approach resource exhaustion -- is a heck of a lot harder to justify in utilitarian terms, ime.

This is assuming we actually favor throughput over some sort of "smoothness" or "fairness" factor, of course, which is not always going to be the case.

edited to remove (some) word-vomit :)

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue Jul 17, 2018 10:54 am
by mrvn
[quote="golfmiketango"
zOldBulldog wrote: - The result is that the 3-5 second unload ends up stretching to 10, 20, 30 seconds and more... and as belts empty, your unload capacity drops to less than 4 saturated belts.

There are a couple band-aids for the problem.

- Placing a [4 x number of wagons] belt balancer behind the unloader does a decent job of reducing the unload chest unbalancing. But it is not perfect, it still loses some of the 4-belt per wagon saturation.
- There are circuit-based designs to keep the unload chests balanced, but they seem to reduce the throughput to about 1 saturated belt per wagon, not even close to good enough for this purpose.

So, perhaps we should raise the bar and update the experiment to: "Unloading 4 compressed blue belts per wagon... while keeping the unload chests balanced".
This is really, really, hard (maybe impossible?) to solve without circuits. One thing that tends to help is to standardize item-travel-distance through all balancer pathways. Which is difficult AF in practice (but does not anymore in principle limit us to 2ⁿ balancers, if we ensure that feedback loops are always on disfavored ingress and preferred egress pathways (without breaking balancing, which, usually, they can be)).

On the other hand, it's relatively straightforward (straightforwardness being in the hydraulic actuation feedback sensor of the be-holder, of course...) to solve with circuits, especially at train-unload places, where we can easily know exactly how much "stuff" showed up, and therefore precisely enforce balanced (or otherwise distributed) buffering (by suppressing buffer inputs beyond the optimal/desired distribution), as well as balanced buffer emptying (by selecting and suppressing the item filters/stack-sizes/enablement of debuffering inserters). However it is notable that all these solutions work by suppressing throughput to some degree or another. That is, they demonstrate by their very means of operation that the problem being solved is aesthetics-, not minmax-related.[/quote]

I think the problem is the balancer. All the standard balancer give a balanced output but not a balanced consumption. They don't even balance lanes usually and consumption is most often from one lane first and only from the other later. With lanes being filled from specific chests the unbalancing of the chest is sure to happen.

What you need is a 1 belt balancer that draws equally from both lanes. Getting equal draw on all belts is rather simple compared to that. Putting the same number of factories on each belt and loading each belt into the same number of chests for the next train station will keep the belts balanced naturally.

Alternatively build the factories balanced on both sides of each belt so they consume equally form both sides.

Re: [Experiment] Unloading 4 compressed blue belts per wagon.

Posted: Tue Jul 17, 2018 3:38 pm
by zOldBulldog
mrvn wrote: I think the problem is the balancer. All the standard balancer give a balanced output but not a balanced consumption.
I agree. Thank you for helping focus the discussion.

Some steps I already verified as helpful (before I posted):

- 1-belt balancers (balance left/right lanes of a belt) help to draw equally from both sides of a belt. There are well known standard designs that do it. I typically place these for every belt, between the bus and the factory bays (as a matter of fact I reserve a full chunk between the bus and the factory bay for this kinds of things).
- n-to-n belt balancers help reduce the unbalancing. I typically place these on exit from the unloader (this is in addition to any belt rebalancing I might do in the bus). So, if I am unloading a 1-2 train, I'd use an 8-8 balancer right after the unload.

Unfortunately typical n-to-n balancers are designed to distribute the input equally to all output belts, not to ensure balanced consumption on the input side when one (or more) of the output belts might be consumed at a high rate while the others aren't. A traditional balancer helps, but doesn't completely solve the issue.

----

@eradicator:

A well designed megafactory might be the only use you had in mind for high speed unloaders, but it isn't the only use. There are many other uses for it, and they are needed.

Example:
- My regular factory smelts and consumes 10 belts of copper and 10-12 belts of iron. In a resource poor map I unload and feed my smelter lines by train. Each smelter line consumes up to one saturated blue belt of ore depending on the draw at the moment, which in turn depends on what I am building/turning on.
- As a matter of fact, due to some bad choices in map settings and how I chose to design my first base, the first time I needed to unload 8 saturated blue belts was to launch my first rocket. Sure, after that first rocket that base kept launching them at a pretty rapid pace. I stopped doing much on that map then, and would only come back to use it for blueprint tests... but even so it quickly went past 200 launches.
- I *could* build a megafactory and eventually I might (or might not). I *could* break up production into train connected depots and eventually I probably will. But for now I am doing a variety of things that at times require few resources and at times lots.

The point is, there is a need for high speed unloading combined with things other than well designed megafactories. So, there is a need for dealing with the chest unbalancing effect of one belt pulling more than others on the output side.