question

Yunjukuo avatar image
0 Likes"
Yunjukuo asked Jason Lightfoot commented

How to make operators only do certain jobs when any operator on break

This model has 3 operators, and operators take turns to take a break according to the TimeTable setting. How to make operators(one not taking break) only do utilize task in the red area in the figure below when any operator is taking a break? (If there is a transportation task in the red area, the operator will not deal with it first.)

Only when no one is taking a break, will all operator be allow to do any task.

1657440273918.png

Because there are many Multiprocessors in the model, I do not consider using ProcessFlow to dispatch operators, and I hope to keep using Dispatcher to dispatch operators.


In the model, the items of Source1 will be processed through the yellow, orange and blue machines in sequence, and the finished products will be placed in "Finish_Product" (Queue).

The items of Source2 will pass through all the green machines in sequence and then enter Sink2.

OnlyDoCertainProcess_WhenOPOnBreak.fsm


FlexSim 16.1.2
operatordispatchertimetables
· 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.

Yunjukuo avatar image Yunjukuo Joerg Vogel commented ·

I have tried change priority value in "OnReceiveTaskSequence" trigger, if any operator on break then change priority value, this part works. However, I have difficulty in finding a right place to set priority back when no operator is on break.

0 Likes 0 ·

1 Answer

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Jason Lightfoot commented

Use two dispatchers and when a break starts/ends, use stopoutput/resumeoutput on one of the dispatchers to prevent it from issuing jobs.

(Please note your FlexSim version has reached 'end-of-life' status and we recommend you update to a supported version).

onlydocertainprocess-whenoponbreak_jl.fsm


· 4
5 |100000

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

Yunjukuo avatar image Yunjukuo commented ·

Thank you. This solution solve my problem. However, I found that this solution doesn't work when I choose "Shortest Distance" rule on both dispatchers, I still can't figure out the reason until now.

Also, I'm curious that will one operator been connected to two or more dispatchers create any conflict or possible error?

Is it possible that two dispatchers assign tasks to same operator at the same time? If that happen, which task will operator do first?

0 Likes 0 ·
Andrew O avatar image Andrew O Yunjukuo commented ·
Hi @Yunjukuo,


First, to answer your question about the Shortest Distance rule not working for the dispatchers, we would need to clarify if you are using Shortest Distance or Shortest Distance if Available. Shortest Distance does not take into account if the operators are busy or not, and will assign tasks to the operator closest to the destination even if they are on break. The issue may be fixed if you use Shortest Distance if Available, which does take into account a Busy status on an operator.


One operator can be attached to multiple dispatchers without error. By design, both dispatchers cannot assign tasks at the exact same time, so the system will prioritize whichever dispatcher's code executes first.

0 Likes 0 ·
Yunjukuo avatar image Yunjukuo Andrew O commented ·

Thanks! This problem appear in "Shortest Distance" (not Shortest Distance if Available). So in conclusion, "stopouput(Dispatcher)" command won't work if choosing a dispatch rule that doesn't consider whether an operator is available?

Since the advance case I'm handling will assign specific operator to do specific jobs. That is, the dispatching rule is to assign the corresponding operator according to the job type, and do not consider if operator is available, if operator is on break the job will be delay.

In such case, is there any command like ""stopouput() " but can prevent dispatcher from output operator when not considering if operator is available ?

0 Likes 0 ·
Show more comments