question

mad2411 avatar image
1 Like"
mad2411 asked Felix Möhlmann commented

Machine waiting operator already utilized

Hello everyone,

When I run my simulation with >= 7 units, my deflash machine is waiting for the opdfsh2 who has only one task : to do the process of deflash machine.

I don't get it why my machine is waiting for the operator who is utilized by her.

Here it is my simulation if anybody has an answer :

Projet2023.fsm


Thank you very much !

FlexSim 23.1.2
utilize operatormachine utilizationwaiting machine
projet2023.fsm (392.1 KiB)
· 3
5 |100000

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

Natalie White avatar image Natalie White commented ·

Hi @mad2411, was Felix Möhlmann's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always comment back to reopen your question.

1 Like 1 ·
Clair A avatar image Clair A commented ·

In the deflash properties, you don't call any operator neither for setup or process times:

1689772408319.png

Is it on purpose ?

0 Likes 0 ·
1689772408319.png (18.8 KiB)
mad2411 avatar image mad2411 Clair A commented ·
No sorry I forgot to check it for the process Time.


0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
2 Likes"
Felix Möhlmann answered Felix Möhlmann commented

The short answer is: The Use Operator function is does not properly when the maximum capacity of the processor is larger than 1. This is also stated in the first warning box in the documentation.

This situation happens because when an item enters the processor and it currently has enough operators 'utilizing' it, it will not call new operators for that item. When the item that originally called the operator finishes processing, the operator is released and becomes idle. Any items that entered the processor in the meantime will keep processing. When a new item now enters the processor it will call the operator again. However, the next time any item finishes, the code that releases the operator will be executed, but possibly with the wrong item reference. The wrong reference causes the operator to stay utilized, but the processor thinks that it was released and will call the operator again for the next item that enters. Because the operator is still busy, this leads to the locking state you mention.

As a workaround, you can use the Task Sequence Example option for the operator reference. This by default implements the same logic as the default behaviour. In the attached model I edited it to prevent the processor from locking and to keep the operator state synced with the processor's. It works by creating a new task sequence right away when the operator is released and there are still other items on the processor.

workaround-fm.fsm


workaround-fm.fsm (32.0 KiB)
· 11
5 |100000

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

mad2411 avatar image mad2411 commented ·

Hi Thank you for your answer. I tried to apply your advice :

projet2023_v2.fsm

It still have the same problem. Maybe I did something wrong and couldn't found out.

0 Likes 0 ·
projet2023-v2.fsm (392.5 KiB)
Felix Möhlmann avatar image Felix Möhlmann mad2411 commented ·

You added the Task Sequence Example pick option but didn't edit the code therein to include the workaround. I guess the wording in the final paragraph of my answer could have been more clear on this.

projet2023-v2_1.fsm

0 Likes 0 ·
projet2023-v2-1.fsm (266.2 KiB)
mad2411 avatar image mad2411 Felix Möhlmann commented ·
Oh okay sorry, thank you very much.

I tried, it works.

My problem is solved :)
0 Likes 0 ·
Show more comments
Adrian M avatar image Adrian M commented ·

Can I see the logic implemented in the Task Sequence Example which is to prevent the processor from locking and to keep the operator state synced with the processor's.


I have version 23.0.2 and unfortunately cannot see the code in the attached models.


Thank you,

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Adrian M commented ·

Here's the same model in 23.0.

workaround-fm-23_0.fsm

0 Likes 0 ·
Jon Abbott avatar image Jon Abbott Felix Möhlmann commented ·

Hi @Felix Möhlmann, I tried this with a dispatcher between the processor and operator, but it gave an invalid down cast error. Do you have an example that works with dispatchers as well? Thanks!

0 Likes 0 ·
Show more comments