The Universal Balanced Loader

This board is to show, discuss and archive useful combinator- and logic-creations.
Smart triggering, counters and sensors, useful circuitry, switching as an art :), computers.
Please provide if possible always a blueprint of your creation.
Post Reply
Squelch
Filter Inserter
Filter Inserter
Posts: 346
Joined: Sat Apr 23, 2016 5:31 pm
Contact:

The Universal Balanced Loader

Post by Squelch »

Hello all,
I'm sure most of you are already aware of the various balanced train loaders on offer, notably, the eponymous "Madzuri" design. I had a need to load a number of different items in the same manner, but unfortunately, the Madzuri design doesn't directly work well in this situation.

I've come up with a novel (and updated) design (at least I've not found anything like it) using filter inserters.
The Universal Balanced Loader r2 (UBL)
UBLr2.PNG
UBLr2.PNG (410.45 KiB) Viewed 5998 times
Design Goals:
  1. Distribute items evenly across all staging chests for fastest loading times [success]
  2. Handle multiple item types without specifying the type expressly [success]
  3. Stage one or more item types per wagon position [success]
  4. Stage multiple items in readiness for future trains [success]
  5. Compact layout [success] (8x7)
  6. Minimal initial technology requirements [success] (filter inserters, circuit network)
Optional design requirements:
  1. Handle exact item stack sizes [success]
  2. Handle multiples of item stacks or any permutation of item stacks to a maximum of forty slots(cargo wagon size) [success]
  3. Handle small amounts of items to take one slot [success]
  4. Handle outpost construction requirements without additional stations/stops [success]
  5. Handle inserter stack size variants for exact distribution [success]

I have achieved this by taking advantage of the blacklist filter, where an inserter will load anything that is not currently in the filter. By flipping the logic of the averaged, Madzuri, design, the filter inserters will only operate if the contents of an individual chest contains fewer than the average of all staging chests.

ie zero or below == no filter, therefore insert any item type, or above zero to not insert that specific item type.

The result is that all items are evenly distributed across the staging chests ready for when the train arrives. The actual loading of the train is then controlled by filter inserters using a whitelist to make sure the right items are loaded from the staging chests for that particular train, or alternatively, standard inserters if filtering isn't required. Also, because the available space across all staging chests is much greater than that of a wagon, several loads of different items can be staged ahead of time.

I have achieved all but one of the design goals after some revisions spurred by writing up the original post, and additionally the optional design goals are dealt with by a separate dispensing/metering system for the item stack and individual item counts into the feed of the staging area except for the inserter stack size problem which is not a priority right now.

There is one additional caveat, and that regards upgrading to faster splitters and belts. belts. Blue splitters belts are simply too fast for the inserters, so items will be left spinning around the circuit. I recommend using yellow splitters only leaving the last belt (at the turn) yellow. This will simply slow the items down for the inserters to grab, and without a loss of throughput. Any type of belt and splitter can be used otherwise.

Updated Blueprint for revision 2



This all works surprisingly well except for... [SOLVED]

The problem:
There are a few compromises that must be made with this approach to prevent the end of the belt from stacking up with missed items and halting the whole staging process. This involves looping around the belt to the beginning of the staging sequence so those items are loaded into the chests that are under the current threshold. That works well for a single wagon, except problems arise where there multiple cargo wagons.

I would like to be able to feed specific items into specific cargo wagons, but due to the single cell interstitial spacing of cargo wagons, there is no room to both feed, and loop back the non inserted items at the end of the run within this single cell spacing. I'm currently working with chaining the wagon locations, but I find this unsatisfactory, and it breaks clause 3 of the design.

The Question:
Does anyone have a combinator solution for a filter that can satisfy both a blacklist and a whitelist at the same time?

Filters that use a blacklist will let everything except those signals that are currently present pass the test. That makes the list of signals that are passed huge (and ironically makes my design workable), so what I'd like is to be able to reduce this to a subset or single signal that I can specify.

For example:
All raw ores from the potential, total, list of signals, and iron ore alone is loaded into the first wagon's staging chests.

Workarounds:
There are a few workarounds that I've explored, but none seem satisfactory, and I just know that there must be a solution using combinators that's eluding me.
[list]
[*]Chain all wagon positions and deal with non items being distributed across multiple wagons at the unloading end. Downsides are the complexity and space requirements for sorting areas being mandated at all unloading stations.
old workaround

[*]Sacrificing at least two of the six possible loading staging/points to make space for the feed and loopback points to exist in the interstitial zone. The downside is the loss of effectiveness in loading times.
[*]???
[/list]

The ??? came to me after posting the original :D I have edited this post to reflect the revisions I have now made and do in fact solve all of the problems that were encountered. I have left the majority of the original post intact, but struck through so the thought process can be read (it may be of help to someone?)

Here's the final result which is fully tileable for multiple wagon positions.
UBLr2-sans_passthru.PNG
UBLr2-sans_passthru.PNG (2.56 MiB) Viewed 5998 times
Note that now only 2.5 medium power poles per wagon position are needed, or a substation will also cover the power requirements for 2.6 wagon positions.

I do hope that my creation is of use to someone else, and that one of you boffins can come up with a solution for that last problem I'm wrangling for a truly Universal Balanced Loader without a catch.
I'm now satisfied that this is a truly universal and balanced loader. Next task, use filter stack inserters...

Optymistyk
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Sun Jun 14, 2020 9:41 pm
Contact:

Re: The Universal Balanced Loader

Post by Optymistyk »

...Why not just use a 1x6 belt balancer?
Image

Seems to do everything you want it to do and doesn't require circuits while having higher throughput

Distribute items evenly across all staging chests for fastest loading times [check]
Handle multiple item types without specifying the type expressly [check]
Stage one or more item types per wagon position [check]
Stage multiple items in readiness for future trains [check if you use buffer chests]
Compact layout [check]
Minimal initial technology requirements [check check]

User avatar
NotRexButCaesar
Smart Inserter
Smart Inserter
Posts: 1120
Joined: Sun Feb 16, 2020 12:47 am
Contact:

Re: The Universal Balanced Loader

Post by NotRexButCaesar »

Optymistyk wrote:
Mon Nov 23, 2020 10:47 pm
...Why not just use a 1x6 belt balancer?

Seems to do everything you want it to do and doesn't require circuits while having higher throughput
the same reason people use Madzuri loaders
—Crevez, chiens, si vous n'étes pas contents!

Optymistyk
Long Handed Inserter
Long Handed Inserter
Posts: 52
Joined: Sun Jun 14, 2020 9:41 pm
Contact:

Re: The Universal Balanced Loader

Post by Optymistyk »

AmericanPatriot wrote:
Mon Nov 23, 2020 11:15 pm

the same reason people use Madzuri loaders
TBH i fail to see that reason especially when it comes to loading trains. What does the Madzuri Loader do that the 1-to-6 balancer does not, other than sounding cool?

User avatar
NotRexButCaesar
Smart Inserter
Smart Inserter
Posts: 1120
Joined: Sun Feb 16, 2020 12:47 am
Contact:

Re: The Universal Balanced Loader

Post by NotRexButCaesar »

Optymistyk wrote:
Mon Nov 23, 2020 11:24 pm
TBH i fail to see that reason especially when it comes to loading trains. What does the Madzuri Loader do that the 1-to-6 balancer does not, other than sounding cool?
I don't know. That is why I never use them.
—Crevez, chiens, si vous n'étes pas contents!

Squelch
Filter Inserter
Filter Inserter
Posts: 346
Joined: Sat Apr 23, 2016 5:31 pm
Contact:

Re: The Universal Balanced Loader

Post by Squelch »

Optymistyk wrote:
Mon Nov 23, 2020 10:47 pm
...Why not just use a 1x6 belt balancer?
Image

Seems to do everything you want it to do and doesn't require circuits while having higher throughput

Distribute items evenly across all staging chests for fastest loading times [check]
Handle multiple item types without specifying the type expressly [check]
Stage one or more item types per wagon position [check]
Stage multiple items in readiness for future trains [check if you use buffer chests]
Compact layout [check]
Minimal initial technology requirements [check check]
That works very well, and has its uses in many places. However,
Handle multiple items without specifying them specifically
The whole rationale behind my implementation is that I have direct control over exactly what items, and their count, to be loaded onto a train.
Optymistyk wrote:
Mon Nov 23, 2020 11:24 pm
AmericanPatriot wrote:
Mon Nov 23, 2020 11:15 pm

the same reason people use Madzuri loaders
TBH i fail to see that reason especially when it comes to loading trains. What does the Madzuri Loader do that the 1-to-6 balancer does not, other than sounding cool?
The Madzuri loader doesn't do anything different to your suggestion, that's true. My system is a generic extension of a balanced loader that also allows for not only an equal distribution of items across the chests, and therefore equal inserter activity, but can be expanded to handle exact amounts of multiple items loaded without dedicated wagon filters or leaving excess items in hand for the inserters.

This is one small part of a larger, universal, (vanilla) train logistics system that I have been working on. I found it necessary to to have such a loader, and nothing else I tried met the needs. Due to it being portable and universal, I thought I'd share this part as one more solution to balanced loading. Sounding cool was not a motivation, and I resent that remark. You can either use my implementation, or use another. Thanks for the feedback anyhow.

Post Reply

Return to “Combinator Creations”