Page 1 of 1

feeder bowl

Posted: Friday 01 November, 2013 - 12:40
by wizard
Dear enterprise dynamic community,

For my school project i need to simulate a assembly plant. My assembly plant uses feeder bowls. I have no clue in what way I have to simulate a feeder bowl.

It has to be a sort of a queue with a maximum capacity. That's no problem to figure that out, but if the feeder bowl is totally full then it should be locked or something that the source won't put any product in it. Untill the feederbowl is completely empty then it should ask for a operator and full it to the maximum capacity. If the operator fulled the feeder bowl then the operator is set to free and can be called by some other atoms.

I tried a reservoir but I couldn't get it working in the way I want to. Can anyone help me or knows how I can solve my problem?

kind regards,

wizard

Re: feeder bowl

Posted: Tuesday 05 November, 2013 - 16:23
by menno
Hello Wizard,

I suggest you use queues for the bowls.

Do you want to simulate operators? If not, you can enter some code on the entry and/or exit trigger of the queues (bowls) to open and close them.

I will show you an example:

On the onentry trigger you will put:

Code: Select all

If(
  content(c) = att([Capacity], c),  
  closeinput(c)  
)
On the onexit trigger you will put:

Code: Select all

If(
  And(
    IsInputOpen(c) = 0,
    Content(c) = 0
  ),
  Openinput(c)  
)
This code opens and closes the queue, just as you described. Try it!

Kind regards,
Menno

Re: feeder bowl

Posted: Wednesday 19 February, 2014 - 10:51
by Logvykat
Hello!
I have alike problem, help me please.
I have ? queue between 2 servers.When the amount of products in queue is less than 100, its output channels have to be closed (till it collect right amount). When the amount of products is 100, the output channels have to be open and the input channels have to be cloused, till all 100 products will go out.
Thanks!

Re: feeder bowl

Posted: Wednesday 19 February, 2014 - 11:10
by Logvykat
I tried to use this code for onenter trigger

Code: Select all

Do(  closeoutput(c),
 While(content(c) < att([Capacity], c), 
openoutput(c)))	
But ED just simply shut :(

Re: feeder bowl

Posted: Wednesday 19 February, 2014 - 19:29
by renevandewall
Hi Logvykat

Use the following two codes in the queue atom:

trigger on entry:

Code: Select all

do(
 closeoutput(c),
 
 if(
  content(c) = att([Capacity],c),
  do(
   closeinput(c),
   openoutput(c)
  )
 ) 
)
trigger on exit:

Code: Select all

if(
 content(c) = 0,
 do(
  openinput(c)
 )
)
Now when the max capacity is reached, the input is closed, and output is opened. When the queue is empty again, the input is opened again.

Hope it helps,
René

Re: feeder bowl

Posted: Friday 21 February, 2014 - 09:41
by Logvykat
It works! Thanks a lot :)

Re: feeder bowl

Posted: Wednesday 24 December, 2014 - 11:34
by David144
Hi,

Im trying to design a system that has a number of products going to a single conveyor. the products have the same arrival pattern. I have currently assigned a source to each product. i want the products to go onto the conveyor in a sequence, for example, product1, product2, product3 and so on. Currently, when I simulate the products enter the conveyor randomly. Is there any way to do this?

Re: feeder bowl

Posted: Wednesday 07 January, 2015 - 15:08
by HarryBunnik
Ha David144,

When you use an advanced conveyor, you can an "input strategy". As you can see in this small example model:
AllowProductsinSequence.mod
(12.16 KiB) Downloaded 354 times
I use the modulo ("Mod(#,#)") to calculate, based on the number of products that have entered the conveyor, which source is up next. This works well, with the one exception of the first product. At that moment the conveyor can accept something from each source, which means that the first product produced will be entering the conveyor. Only after that, the code will control the input of the conveyor.

To prevent this from happening, you could let the desired source that needs to be first, use a shorter production time for the first (and only the first) product. But a nicer option is to use the initialize atom. Here we say that on reset all channels of the conveyor must be closed and then we re-open only the first channel. This way the first product is coming from the first source and after that all is done in the desired sequence.

I hope this helps you further,

Cheers,

Harry