Jump to content
Simio Forum

Splitting flow between a bank of tanks

Recommended Posts

Hi there,

I'd like to split flow to a bank of tanks by filling them one by one from a single flow source.

The first tank (any available tank) should be filled completely, as soon as this tank is filled the next tank available should be filled. The tanks should empty after a few hours and become available again once empty and cleaned.

How would I model the routing logic? Just to clarify, any tank that is not full or being cleaned should be available to be filled and there should always be one tank that is currently being filled if available. A picture of the basic setup attached.

I've tried a few triggers and add-on processes but the flow nodes seem to have less functionality than the standard node.

Thanks for your help.


Link to post
Share on other sites

In a previous discussion with Simio, they noted that the functionality has been incorporated such that if you add multiple tanks (via sub classing a single object) the tanks would sequentially fill until all is full. This was last year sometime discussing flowcontainer entities. We have not tested or tried this but might be something to check out.

Alternatively, I would add multiple tanks to a subclassed object and daisy chain their "On Full Process" and "on Empty process" property assignments. For animation purposes, a stacked bar per flowcontainer should serve the purpose to display the tanks sequentially filling and discharging.

A contents check and bypass at the start of each process should enable you to select a tank that is available for use. Hope this helps !! :D

Link to post
Share on other sites

Thanks MEager,

I managed to get around the problem by doing the following:

Output node at source: Split flow "Preferred order by link weight"

Links: Use Flow connectors rather than pipes and give each a link weight based on the state of the flow regulator that it links to.

Tanks: Give each dynamic flow regulators that open only once a time period has passed after full or empty.

Link to post
Share on other sites

If it works then great...I would however caution on your Split allocation Rule. That needs to be changed to "Proportional based on link weights if possible" which was recently released by Simio.

The functionality is the same as "Split based on link weight", yet it does not stop all flow once one leg's regulator is off. Once you start testing fringe conditions you will start to see the before mentioned phenomena.

Link to post
Share on other sites


I''ll give it a try although I fear that it might lead to more than one tank being filled at the same time?

Thanks for the accumulation tip!

My next question is:

1. How do I enable a single flow source or node to produce multiple entity types (preferably to a schedule)?

2. How do I limit tanks to only store 1 entity type at a time, even if the tank is not full?

Link to post
Share on other sites

The tanks should fill sequentially else the on processes are not linked correctly. I also have an example of direct entity transfer should you require.

To assist with your questions.

1. Use a tank as the source and specify the initial contents with the correct entity volume distribution. Use events to refill the tank based on the initial distribution. Variations on the before mentioned may be changed with assign blocks.

2. Set the each tank's capacity to the total volume per entity type, if a tank only needs to hold one type of entity, then your sequential filling logic has just become a lot easier.

Hope this helps. :D

Link to post
Share on other sites
  • Create New...