Dispatcher and Operator Rules

Dispatcher and Operator Rules

gerardo_mn
Not applicable
12 Views
9 Replies
Message 1 of 10

Dispatcher and Operator Rules

gerardo_mn
Not applicable

[ FlexSim 19.1.0 ]

Hello,

I have a scenario where I have 5 processors which are only setup by 1 operator. This operator needs to follow a specific sequence (1-2-3-4-5). I have tried using the dispatcher and sorting by task priority, but the operator keeps going to the processor that finished first.

How would I go about this?

Thanks in advance.

0 Likes
Replies (9)
Message 2 of 10

tanner_p
Not applicable

The task priority idea was a good one, but that will only work when there is more than 1 task simultaneously assigned. I found one solution, but I don't know if it's the best one. I used a subflow to control the operator's setup function with 1 operator resource available. Then, in Process Flow, I opened and closed the inputs of the other Processors so that they had to be attended to in the designated order. Hopefully this at least gives you something to start with.

operator-setup-subflow.fsm

0 Likes
Message 3 of 10

gerardo_mn
Not applicable

I hadn't thought of the subflow, thanks. However, I tried connecting the processors in series, and added it seems that processor1 only admits a new item until the setup in processor5 ends.

Is there a way to keep the processors admitting items even though the operator is not there to set up the processor as such?

I have attached my rendition of the model and if you run it, you can see that at times the operator follows the required sequence, but only for a short period of time and then he goes all crazy.

prod_line.fsm

0 Likes
Message 4 of 10

tanner_p
Not applicable

Could you explain a bit more about the process?

How many processors can function at the same time?

How many items can be in the system at the same time?

Does the operator need to be at the processor only for setup at the beginning or every time?

Because your processors are connected in series, this will make triggering the closing/opening of ports much easier in the 3D. I'll give it a shot and once you've described the process in detail, we'll make sure it works as you'd like it to.

0 Likes
Message 5 of 10

gerardo_mn
Not applicable

Sorry about that.

The processors can work all at the same time, and there can be infinite items in the system. That's why I added Queue2, since Maquina2 is the bottleneck in the system.

The operator needs to be at the processor only for setup, but the setup is required every time. Then he can go. So, for example, he'd set up Maquina1 and go set up Maquina2 immediately, while Maquina1 is still processing the item. After setting up 2, and while it's working, he'd go set up 3, and so on. Hence, the operators cycle time would be around 1 second (0.2s * 5 processors).

So, Maquina1 will have finished processing way before the operator is done setting up Maquina5, and thus will wait ready. However, there may be some times where it is the operator who will have to wait for a processor to be done so it can be set up again.

Let me know if that made sense, or if you have any further doubts.

0 Likes
Message 6 of 10

tanner_p
Not applicable

Oh, I think I misunderstood what you meant by setup. The model you created is running how it's supposed to, but there's one thing that's preventing it from doing what you are saying.

When you check the "Use Operator for Setup" box in a processor, the Processor will not "acquire" the operator to begin setup until the item has been sent from upstream. So when there's not an item in Queue2, for example, there's nothing that can tell the operator to go set up at Maquina2.

In order to have the operator "setup" the machines in advance, you would have to use advanced triggers or Process Flow. I'll see what I can come up with now that I have a better grasp on the idea and I'll try and post an example later today.

0 Likes
Message 7 of 10

tanner_p
Not applicable

This is kind of messy Process Flow, but I just can't think of another way to do it. This is my best shot. Maybe another community contributor could help. Essentially, I just have a loop running in PF that is constantly checking each Processor, starting with Maquina1, and making sure it's been "set up." The setup value is held in a label at each processor. If you'd like a detailed explanation of any of this model, let me know.

18840-produccion-3.fsm

0 Likes
Message 8 of 10

joerg_vogel_HsH
Mentor
Mentor
Accepted solution

My approach consists of using a global tasksequence list. I push the tasksequences in a dispatcher to the list when the dispatcher receives a tasksequence. The list contains a field telling me the number of the order in which the tasksequences should be dispatched. I get this value from the index of an array of the processor treenodes. The processor reference is in the utilize tasksequence the 4th task 2nd involved parameter.

18929-get-index-of-processors.jpg

A process flow starts by the event when a resource gets available (operator).

18930-pf-do-setup-in-sequence.jpg

I copy a label value to the token to identify the next number of the order. I evaluate a counter by a modulus operator to get the number sequence 1,2,3,4,5,1,2,..

Then I pull from the list the matching number of the sequence.

A custom code activity move the tasksequence to the operator and dispatch the tasksequence. An assign activity extract from the fourth task the 2nd involved parameter to identify the processor, which the operator assists for setup. I need this data to wait for the event to finish setup and free the operator from his utilize task. Before this action I update the counter label at the operator.

order-ts-to-flow-rank.fsm

This approach is based on the following abstract model, which sorts tokens. The process waits until the right token is available on the list.

order-tokens-incomplete-list.fsm

PS.: This answer contains a complete model now

Message 9 of 10

gerardo_mn
Not applicable

Wow. I'm gonna be honest with you, this is way above my really basic understanding of FlexSim. I didn't think the scenario was going to be that complex to simulate in the first place!

I am too hoping someone has a better understanding of the approach you mention. Thanks!

0 Likes
Message 10 of 10

gerardo_mn
Not applicable

I understand the logic behind the PF you have done, it is brilliant. But there is still something wrong. It has to be on my end, since the logic makes absolute sense.

I will check what's wrong and change it. But your work will absolute help me out. Thanks

0 Likes