question

Omar Aguilera Rico avatar image
0 Likes"
Omar Aguilera Rico asked Omar Aguilera Rico commented

How can I use one operator per operation?

duda-1.fsmI have four operators who must pass the material from two queue (operation) to another four queue. I just do not want a queue (operation) to use more than one operator to move the units to the four queues; That one does one operation and another operator another operation, and the other two do nothing while downloading the others.

FlexSim 17.1.3
dispacher
duda-1.fsm (30.4 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Raja Sekaran avatar image
1 Like"
Raja Sekaran answered Joerg Vogel commented

Hi,

You can use another dispatcher for the separator to unpack the items and you can specify which Task executor to pass current task sequence. I think you can achieve by choosing Shortest Distance in the dropdown of Pass To function in the Dispatcher properties page. I have attached the model for your reference. dispatcher.fsm


screenshot-1.jpg (90.4 KiB)
dispatcher.fsm (28.6 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image
1 Like"
Joerg Vogel answered Omar Aguilera Rico commented

The keyword you are looking for is a tagged operator. A second approach is to place a dispatcher for each operator in your model. This dipatcher is connected to first input port of the operator. At the moment the operator gets a transport tasksequence to a separator he sends a message to the separator. You have to insert this task previous to the unload task in the transport tasksequence wether at the creation or later when the operator receives the tasksequence. The message will tell the separator to dispatch the new created tasksequences to the dispatcher connected to the first input port of the delivering operator. This references can you set in a label when the message is received. To identify the sender you use the command msgsendingobject(). If the utilize tasksequence is already in another tasksequencequeue you have to transfere this sequence also to the same dispatcher connected to the first input port of the operator. The utilize tasksequence is responsible for letting the operator assisting the unpack process.

The inserted dispatcher is a storage object especially for the connected operator. Because the dispatcher is connected to first input port the operator looks for new tasksequences first at this dispatcher. But it is necessary that all tasksequences belonging to the separation process getting to this dispatcher.

Don't use centerport connections or any other code references to reference the operator directly, this will disturb the search for new tasksequences at connected dispatchers. This means you can add more or different dispatchers to operator.

The attached model contain my 2nd approach. I had to add delay task to the tasksequences to let the Flexsim engine build in the background the tasksequences for the utilize task and the transport task. Otherwise the Operators don't find at their own dispatchers instantly the next task to do. The delay time can be really small.


· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Omar Aguilera Rico avatar image Omar Aguilera Rico commented ·
It's a very good answer too.
0 Likes 0 ·
Sebastian Hemmann avatar image
0 Likes"
Sebastian Hemmann answered Omar Aguilera Rico commented

Could you please explain more exactly what you are looking for? Am I right, that never more then 2 Operators are working at the same time? When does the next Operator get the Job to Transport another item?

You only have to know that Standard is, the Tasksequence is created and dispatched as soon as the items are available in the "Operation" Queue and a place is available in the target Queue. Than the Tasksequence is sended to Dispatcher, which starts searching for a free Operator.

My first idea is to just use 2 Operators instead of 4, if 2 are never working anyway, why connecting them to the Dispatcher!?

Another idea would be to add a Queue with max Content 1 behind your Operation Queues. Close the Input and just open it as soon as the next Transport is allowed to search for a free Operator. In this case every Queue is allways sending max. 1 Item.

I´m quite sure there is another cool solution by using ProcessFlow, but at first we Need more Informations.

· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Omar Aguilera Rico avatar image Omar Aguilera Rico commented ·

duda-dispacher.fsm

Annex the following model, which explains a little better what I want to achieve. When a pack is created an operator sends it to the queue and the queue is sent to a separator via operators. What I want to achieve is that the first operator that arrives is responsible for making the UnPack and does not call the others that are available, but each operator that arrives first takes care of a separator without the need for the others available to help him do The UnPack
0 Likes 0 ·
duda-dispacher.fsm (27.4 KiB)