Page 1 of 1

Modelling a conveyor with multiple input positions

Posted: Wednesday 03 August, 2011 - 16:53
by leojohnnson
Hello,

I have problem with modelling a conveyor belt that requires multiple input positions and predefined product spots.
Maybe this will picture what I mean:


S1 S2
o o
-> _|_|_|_|_|o|_ -> ( o - product; |_| - empty spot; |o| - occupied spot; S1,S2 - servers)

In the system there are several Servers, next to each other, and all of them put products on the same conveyor belt (just in different spots). Each time a product is to be placed, the whole conveyor has to stop (placing takes time), but before that it will keep on moving until a free spot is in front of the server (that has a product to be placed). After the product is placed the conveyor starts again. More than one server can put products at a time (spacing between the product spots on the conveyor are adequate to the distance between servers).

it is not possible to do it with, transpoerter (on a network) or with transfer car (they would have to run simultaniously and even when there is no order for them to pick up).
I thought of using several Advanced Non Accumulatin conveyors with Sensors (to stop and resume the movement), but I don't know whether it is possible to stop it on demand or to make it move until there is a free spot for a product.
Is there any other way of doing this? I am surprised that there is no atom for conveyor with multiple input positions.

Thanks in advance for your help.
Leo

Re: Modelling a canveyor with multiple input positions

Posted: Wednesday 03 August, 2011 - 16:57
by leojohnnson
my drawing does not look as I wanted (multiple sapces are skipped). products ans servers should be above some empty spots.

Re: Modelling a canveyor with multiple input positions

Posted: Friday 05 August, 2011 - 12:38
by menno
Hello,

With the code:

Code: Select all

CreateEvent(0, c, CONVEYORS_STOP_CONVEYOR_EVENT),
and

Code: Select all

CreateEvent(0, c, CONVEYORS_START_CONVEYOR_EVENT),
you can start and stop a conveyor. I have added a simple model that simulates a multiple input conveyor.

It shows which direction you could go, it still needs effort to be perfected. But it surely will help you on your way!

It consists of three seperate (advanced non accumulating) conveyors. I use a sensor to check for a gap.

Re: Modelling a canveyor with multiple input positions

Posted: Monday 08 August, 2011 - 11:25
by leojohnnson
Thanks for the reply. Although I have figured out the main principle for modelling this, there is still some useful stuff in there :)

On a side from this
1. is it possible to make a conveyor stop just for some time (that no event would need to resume it) like for 5 seconds? and if so, if durring a 'stop period' like this the conveyor would receive another signal to stop for some time, would ED make it stop for the sum of these times (old remaining + the new one) or would these times overlap?

2. is it possible to make it stop (take the current system time) and resume it when the system time reaches some later value?
what would happen then if two devices would give a partially overlapping signals to stop the conveyors? I mean a situation when conveyors stand still and before they resume another signal to wait x seconds is received: what happens to the first resume command? would it be overwritten by the new one?

Re: Modelling a canveyor with multiple input positions

Posted: Monday 08 August, 2011 - 12:07
by leojohnnson
basically, is it possible to make something happen at a certain system time?
e.g. a function triggers some action x seconds after this function is called - action that will happen in (current time + x [seconds])

Re: Modelling a canveyor with multiple input positions

Posted: Wednesday 10 August, 2011 - 09:59
by menno
With the createevent function you can create event in time. The first parameter covers this part, for instance:

Code: Select all

CreateEvent(25, c, CONVEYORS_STOP_CONVEYOR_EVENT)
will stop the conveyor after 25 seconds.

With the DestroyEventsOfAtom function, you can destroy scheduled events of an atom (the conveyor). In this way you can destroy an scehduled event, and afterdestroying, you can schedule a new event!

If you use a label, for instance

Code: Select all

label([endtime], c) := 25,
CreateEvent(label([endtime], c), c, CONVEYORS_STOP_CONVEYOR_EVENT),
label([endtime], c) := label([endtime], c) +Time
You can check on the moment that you want to reschedule what time is left of the current scheduled event by:

Code: Select all

var([valTimeLeft], vbvalue),

valTimeLeft := Time - label([endtime], c) 
I hope this information will help you with your modelling efforts. I you have other questions, let us know!

P.S. In the 'Help' of ED, you can find which (optional) parameters for the functions are needed!

Re: Modelling a canveyor with multiple input positions

Posted: Wednesday 10 August, 2011 - 10:35
by leojohnnson
thanks again for your help. I am still an ED noob, so I am using help quite a lot. the problem is that I do not always know what to look for ;)
to be honest, while waiting for the reply, I figured out a different way to solve my problem, but again the stuff you wrote is of a great value to me, because it contains things I did not know and, at the same time, I can see possible applications of it in future modelling.

keep up the good work!
have a nice day,
Leo