question

Rahul T5 avatar image
0 Likes"
Rahul T5 asked Jacob W2 commented

Manufacturing Process Deadlock

Hi,
I have a product with three subcomponents. All three item types flow through a common process independently but serially (conveyor with capacity x) and are required to assemble the product. But I run into a deadlock scenario where downstream process is waiting and common process is blocked. How can I open/close ports (Queue1,2,3) based on triggers? Or is there a better approach?

DeadlockTest.fsm1666234708261.png

FlexSim 22.2.0
deadlockcommon process
1666234708261.png (247.0 KiB)
deadlocktest.fsm (50.3 KiB)
· 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.

1 Answer

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

Closing the queues' output would just create a little bit more buffer space. But eventually the backlog would reach the source and prevent it from creating any more items.

In the attached model I opted to track the number of items per type currently in the system. If the number exceeds 500, the source will not choose that type for the next item.

The number is tracked in an array label on the source. It is incremented in the customized On Creation trigger and decremented in the On Entry trigger of the sink.

1666270848130.png

deadlocktest(1).fsm


1666270848130.png (40.6 KiB)
deadlocktest1.fsm (52.7 KiB)
· 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.