Distribution Centers

by Sladki

Distribution Centers are structures capable to transfer items to adjacent inventories.

Content
3 years ago
0.17 - 1.1
594
Logistics

g DC sending items in loop

3 years ago
(updated 3 years ago)

I have multiple Distribution Centers that are linked to each other via the network signal (N and R Signal) as a backbone for multiple distribution centers that are attached to assembler machines that produce the actual items and then send them back over this backbone to another block of DC with assemblers.

https://pasteboard.co/JQkCWfO.png
Input>DC1<===>DC2<===>DC3<===>DC4>A

However I noticed that sometimes the distribution centers seems to send an bulk of items to each other instead of sending it to the producing distribution centers.
I assume that it could be because * Assembler wants items from DC4 * DC4 send request to DC3 * DC3 sends request to DC2/DC4 * DC2 sends request to DC1/DC3 * DC1 sends items to DC2 * DC2 sends items to DC3 * DC3 sees request from DC2 and DC4 and sends items back to DC2 * and then the items loops

Is it somehow possible to prioritize certain distribution centers?
(e.g. increase N signal)

3 years ago
(updated 3 years ago)

Network requests never loop:
Each request has a list named "Route" beginning with created the request "DC1" item. When DCn reads the request, it checks that the list has no "DCn" item, adds "DCn" item to it and re-sends the request to all connected DCs. So each DC read and retranslate a request only once.

No, it is not possible to prioritize.

Unfortunately, the screenshot has too low resolution so I can't see wire connections, please do another one while selecting or standing near DC2 with console code below:

/c local center_on = game.player.selected or game.player
    game.take_screenshot({
    position = center_on.position,
    resolution = { x = 4096, y = 4096 },
    show_entity_info = true,
    quality = 75,
    path = math.floor(game.ticks_played / 216000)
        .. "h-" .. math.floor((game.ticks_played % 216000) / 3600)
        .. "m-" .. math.floor((game.ticks_played % 3600) / 60)

        .. "s.jpg",
    daytime = 1 })
3 years ago

Here is the screenshot: https://pasteboard.co/JQrVmMAp.jpg
Additionally I think I just caught it in a possible loop (see all the iron going both ways).

I try to describe my setup a little bit:
Every DC has a S signal going to it via a red cable.
Inputs chest are linked with the red cable to the S constant combinator of the DC.
All DCs are linked to each other via with a green cable to the chest next to the other DC with a constant combinator with the R and N Signal with a red cable attached to the chest.
The leaf DCs all have chests requesting going to the assembler, with CTX signals from the constant combinator next to the assembler via green cable to the chests. (The CTX constant combinators are set with the copy-paste function. For this I have the CX combinator in the on my right below the green companion for copy-paste.)
Additionally I linked all the assembler combinators via a red cable, calculate the stack size for 1 stack (decider combinator and stack combinator) and send it with an H signal to the wood chest, so that the DC always has a stack of supplies.

3 years ago
(updated 3 years ago)

Interesting.

Do this happens only to iron plates? It seems that leaf DCs request some number of the iron, so the DCs can't keep up and tries send "criss-cross" - in that case RN chests will contain most of the iron.
You can try to solve it temporarily by introducing some "unbalance" so one of the DCs will get more than give (faster or multiple lanes). However you still need "some mass" of the iron stored (you can decrease the number by decreasing the number of the iron requested) and it could take some time.


3 years ago

No it also happened with other materials (e.g. iron gears).

I'll try it with the uneven belt speed and see how it goes.

New response