Simio
  • Splitting flow between a bank of tanks

  • General Simio discussions. THIS IS *NOT* A GOOD PLACE FOR SUPPORT QUESTIONS.
    To limit spam this and all Public Forums have very limited ability to attach files. We recommend that support issues and more technical topics be initiated inside one of the Simio Insider (SI) forums below where you can attach your model and see example solutions. See above Welcome forum to join Simio Insiders.
General Simio discussions. THIS IS *NOT* A GOOD PLACE FOR SUPPORT QUESTIONS.
To limit spam this and all Public Forums have very limited ability to attach files. We recommend that support issues and more technical topics be initiated inside one of the Simio Insider (SI) forums below where you can attach your model and see example solutions. See above Welcome forum to join Simio Insiders.
 #6857  by vhgreeff
 Thu Aug 27, 2015 2:41 pm
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.
Cheers
 #6858  by MEagar
 Thu Aug 27, 2015 6:14 pm
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
 #6862  by vhgreeff
 Sun Aug 30, 2015 1:30 pm
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.
 #6863  by MEagar
 Sun Aug 30, 2015 6:26 pm
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.
 #6865  by MEagar
 Sun Aug 30, 2015 7:03 pm
Just further to the above, as I am currently looking at the same logic, when using a conveyor or pipe, be sure that the Accumulating Property is set to false. This will ensure flow does not stop.
 #6869  by vhgreeff
 Mon Aug 31, 2015 1:57 am
Thanks,

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?
 #6870  by MEagar
 Mon Aug 31, 2015 2:11 am
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