question

Stephanie Y avatar image
0 Likes"
Stephanie Y asked Benjamin W2 commented

How to set logic for two Operators to move totes off of three conveyor lines?

I have three conveyor lines that are transporting totes. Operators need to move totes from the conveyor line to the sink. There are two Operators that primarily stand at and work taking totes off the outside two conveyors. The middle Conveyor is shared by the same two Operators. When a tote comes down the middle line, I would like an Operator to transfer it only if they don't have work at their main line. At the end of each of the three conveyor lines I have a processor that I use to set the pace of the work.

FlexSim 20.0.0
conveyor transfer
5 |100000

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

Braydn T avatar image
0 Likes"
Braydn T answered Benjamin W2 commented

@Stephanie Y

preemption-example.fsm

Is this what you are looking for? If so, let me know and I will explain how I did it.


· 2
5 |100000

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

Stephanie Y avatar image Stephanie Y commented ·

Yes except Operators should stay at the Middle Station until it is empty and should only leave the end station if they don't have work at the end station (in my model work going to the middle is infrequent- only 5% of the items go to the middle station).

0 Likes 0 ·
Benjamin W2 avatar image Benjamin W2 Stephanie Y commented ·

Hi @Stephanie Y,

I have adjusted @Braydn T's model slightly. Is this what you are looking for?

This particular model is very similar to one of the Tutorials. I will post a link below.

https://docs.flexsim.com/en/20.0/Tutorials/TaskLogic/Tutorial1TaskLogicTools/1-3TasksLists/

preemption-example2.fsm

0 Likes 0 ·
Jeff Nordgren avatar image
0 Likes"
Jeff Nordgren answered Joerg Vogel commented

@Stephanie Y,

Attached is another sample model that is very similar to the one that @Jörg Vogel has already given you. Just maybe another way to see another solution that may help you decide how to use them in your situation. If you need further help, it would be helpful if you attached your model to your question so that we might be able to answer your question specific to your modeling needs.

Thanks.

stephanie-sample1.fsm


· 2
5 |100000

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

Stephanie Y avatar image Stephanie Y commented ·

I feel like when I search the user manual it is too vague and when I use the community forum it is over my head. I don't understand how to set the Priority of the task sequence in the Dispatcher.

It would be something like:

Operator goes to Station1 (end of a conveyor) if there is an item to process at Station1 (unless their last item processed was at Station2 and there is still an item at Station2)

Operator goes to STation2 if there is an item to process at Station2 AND there is no item to process at Station1 (Station1 gets priority unless they are already working at Station2 and there is a second, third, etc, item to process at Station2).

I tried to upload my model but I was unable too. Perhaps it was too big? Suggestions?

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Stephanie Y commented ·

@Stephanie Y, have you changed the logic conditions compared to description of your initial question? If this is the case, please ask a new question!

0 Likes 0 ·
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Joerg Vogel edited

I don't know how you built your model logic. The basic approach depends on Center Object Connections and automatic created transport Tasksequences. The Tasksequences are dispatched to Task Executer or Dispatcher. They store the Tasksequences in Tasksequencequeues. A Dispatcher transfers a Taskesequence only to a Task Executer that is available to receive Tasksequences. This happens, if the Task Executers' Tasksequencequeue is empty and the current active Tasksequence has been finished.

A Dispatcher is connected to Task Executers by an Object Connection ("A"-Type).

ts-directly-or-by-dispatcher.fsm


· 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.

Joerg Vogel avatar image Joerg Vogel commented ·

If I forget the terminology of FlexSim, then following happens.
The option Use Transport sends by default a transport job to an operator or dispatcher. An operator executes the first receiving job instantly, if he has nothing to do right now. Otherwise the job is queued. If first job is done, he looks for queued jobs by priority.
A dispatcher is only a manager of jobs. Operators are clients of the dispatcher. If an operator has nothing to do, he hasn’t any jobs queued nor he executes a job, then a dispatcher sends a single job to him.

In your case the connections directly to operators let them execute the transport jobs instantly and by priority. Only if an operator hasn’t got nothing more to do, the dispatcher will send a stored transport job to this operator.
In this scenario all jobs have got the same priority value, the distribution of jobs is depending only on the direct connection and over a dispatcher.

If you watch a running model, it looks like the priority logic doesn’t work as intended. An operator takes an item of the shared queue instead of an outer queue. It is a runtime problem. Because the operator has nothing to do at the destination of his last transport job, he waits there. An item arrives at the shared queue. He walks to the shared queue. While an item arrives at an outer queue, but he is already executing a job, this job must he finish before he can do anything else. You can force an operator to decide later which job he does, if you tell him that he has to go a nearer location where he gets his items. This is an option in the OnUnload trigger of an operator.

0 Likes 0 ·