FOUNDRY

FOUNDRY

Not enough ratings
Data Cable System - First implementation
By Bosseur2
In this guide, I explain my first Data Cable System implementation.
This may help you in using this nice but complex tool.
2
2
   
Award
Favorite
Favorited
Unfavorite
Context
I started a new game and wanted to reach following target :


Unfortunately, initial landing was too far from enough resources nodes to succeed.
So I moved my factories ~3 km from there.

When I finally started sending Drones to the Space Station, Cargo Ships were taking so much time to complete the trip that I was unable to get enough Firmalite Bar despite I had 8 Transport Ship Ports.

On YouTube, I found a video (I forgot the ref of that video, sorry) where someone explained that to improve Cargo Ship travel performance with the Space Station, then Cargo Ship Port must be placed on geographic coordinates 0/0 with the highest elevation as possible (200 in my case)


By consequence, I build conveyor between this "0/0/200" and the factory to exchange Drones against Farmalite Bars.
Regarding the Robot, Sales Warehouse (Assembly Line) can't be separated from the Assembly Line Producer and Assembly Line Painter.
So I decided to build the Robot Assembly line on that "0/0/200" location.

The problem was to sent all robot body parts on one single conveyor preventing a overflow from any kind of the parts.
This is where Data Cable System becomes useful.

Factory side
This is how Robot parts are organised in the factory:


Containers
One container to store separately each Robot parts.
  • Head
  • Torso
  • Leg
  • Arm

Logic for Robot parts quantity
The purpose is to ensure that always remains enough parts in each container to build a full new Robot. I voluntarily not take in account the parts on the conveyors.


Please take care of arrow direction on top of each component !!!

Here is the configuration of each component:
A
If it remains at least one Head then sent signal H=1.

B
If it remains at least one Torso then sent signal T=1.

C
If it remains at least two Arms then sent signal A=1.

D
If it remains at least two Legs then sent signal L=1.

E
If enough Head (H) and Torso (T) then sent signal B.

F
If enough Arms (A) and Legs (L) then sent signal M.

G
If enough of all parts then sent signal G.


Timer
Why a timer ?
Because I wanted to regulate the throughput at which Robot parts are sent to Robot Assembly Line.
Currently, the setup is made for 1 set of parts every 2 seconds.


Here is the configuration of each component:
A
Just an optional switch (Button) to initialise the loop.
Will be nice to push that button when you have finished to build the timer.
The initial (C) value is set to 120 because the Data Cable System is evaluated 60 times per seconds (120/60=2 seconds).

B
If loop (C) reach 0 then reinitialise the counter (C) to 120.

C
While loop (C) is above 0 then decrement by 1.

D
If loop (C) reach 0 (means end of 2 seconds delay) then sent signal F=1


Switches to deliver parts
Each part comes on a dedicated conveyor (2 for Legs and Arms) that ends with a controller that blocks or allows a part to pass.
When all conditions are met (enough part in container + timer triggered + switch (lever) turned ON) then the controller is allowed to let pass one part per conveyor.
We need to let the controllers stay open long enough to let pass the part (this is why we memorise the signal A). When the conveyor has delivered the part, then conveyor sent a Pulse that will be captured by another component that will trigger signal R to stop the signal A and block the controller.


Here is the configuration of each component:
A
Just a switch (Lever) to start/stop sending parts.
If allowed then signal O=1 is sent otherwise O is not sent.

B
If signal G from the containers and O from the switch are received then we forward signal G.

C
We memorise and keep triggering signal A (from component E here below) until signal R is received.

D
When conveyor confirms that one part (here the Head) has been sent (from the Pulse), then signal R is sent to reset /clear the memory (component C here above).
Of course the "Head" must be replaced by the part that is on the conveyor (there is a generic item but I do not want to add complexity at this level).

E
If signal F (from timer) and G (from switch/container) are received then start sending one part (trigger signal A).

F
When signal A =1 then conveyor is allowed to deliver part and when one part is delivered then a Pulse signal is sent (captured by component D here above).



Robot Assembly Line side
Robot Assembly Line does not manage Data Cable System.
This is why parts flow has been implemented this way.

All parts arrive on a single conveyor (> 3 km long...) so in case of need, parts can be stacked there.
Each Assembly Line assembler have to pick up the right part from the conveyor.
To do that, a Filter Loader is used to feed a Container from where the parts are delivered to the Assembly Line.
The goal is to prevent that a Container is overloaded and cannot accept more parts.
In this happen then the part will skip that container and continue its travel to the end of the conveyor and potentially block other containers.


So there are 2 controls to stop new parts to reach the Containers:
  • Paint Tank is too empty
  • At least one Containers is full more than a level

Paint Tank is too empty
A data line starting on the Paint Tank ends on the conveyor.
The conveyor allows parts to pass if Paint Tank content is greater than 3000.


At least one Containers is full more than a level
A data line is linking all Containers and ends on the conveyor.


When a Container is not empty, then it broadcasts its content onto the data line.


Conveyor allows parts to pass if signal S is different than 1.


If at least one Container has more or egale than 60 items then signal S=1 is sent.
Limit is set to 60 because there are may be some other parts between this place and the container.


2 Comments
jztemple 20 Apr @ 3:16pm 
Thanks for taking the trouble to write a very detailed explanation. Cable networks still baffle me but this is going to be a big help!
kgecsi 7 Oct, 2024 @ 7:50am 
Very well done and helpful explaining how each component can be used to work together. Thanks, I've been searching for good examples like this.