feeder bowl

All topics on the Atoms in any Enterprise Dynamics Library.
Post Reply
wizard
Posts: 1
Joined: Friday 01 November, 2013 - 12:30

feeder bowl

Post 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
menno
Posts: 45
Joined: Tuesday 29 March, 2011 - 16:01

Re: feeder bowl

Post 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
Logvykat
Posts: 3
Joined: Thursday 06 February, 2014 - 18:29

Re: feeder bowl

Post 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!
Logvykat
Posts: 3
Joined: Thursday 06 February, 2014 - 18:29

Re: feeder bowl

Post 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 :(
renevandewall
Posts: 12
Joined: Thursday 19 September, 2013 - 15:45

Re: feeder bowl

Post 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é
Logvykat
Posts: 3
Joined: Thursday 06 February, 2014 - 18:29

Re: feeder bowl

Post by Logvykat »

It works! Thanks a lot :)
David144
Posts: 1
Joined: Wednesday 24 December, 2014 - 11:32

Re: feeder bowl

Post 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?
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: feeder bowl

Post 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 353 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
Post Reply