question

anon-user avatar image
0 Likes"
anon-user asked anon-user commented

Processor input block after 2425 seconds

The attached model works fine up to 2425 seconds,


After 2425 seconds, processor1 has a problem of stopping operation.

At that time, the input is blocked even though the processor1 is idle.


What causes this processor1 to hang in 2425 seconds?







FlexSim 21.0.5
processorblocked
· 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.

Connor A avatar image Connor A commented ·

Hi anonymous user, was one of Felix Möhlmann's or Shimizu M's answers helpful? If so, please click the "Accept" button at the bottom of the one that best answers your question. 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 unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered anon-user commented

The issue is that at time 2402.5 new items enter the first processor while one item is "in the process" of exiting. (The exit trigger opens the input and items enter before the finished item has actually left)

In some way, this causes the processor to evaluate it's capacity incorrectly, not freeing up the input again.

This can be fixed by opening the input in the entry trigger of the second processor, instead of the exit trigger of the first. Another way would be to have the exit trigger send a message with a delay of 0 seconds and open the input in a message trigger. This gives the exiting item time to actually leave the processor.

processor-input-block-after-2425-seconds-fixed.fsm


· 8
5 |100000

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

anon-user avatar image anon-user commented ·

In some way,

I understand that the processor to evaluate it's capacity incorrectly.


Will FlexSim be able to correctly evaluate its capacity in future versions?

Or is this a specification?


0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann anon-user commented ·

I can't say for certain but somewhat unlikely. Sadly, timing issues like these with coinciding events are not easily fixed and just something users have to look out for.

See also this older post about "Breathe" - a zero-second process flow delay that is commonly used to circumvent similar issues between process flow and the 3d model.

https://answers.flexsim.com/questions/51784/when-to-use-a-breathe-activity.html

1 Like 1 ·
anon-user avatar image anon-user commented ·

Thank you for the helpful link.

I understand that a similar problem can be avoided by adding a 0 second delay in the process flow.


Like this,

Will adding a 0 second delay to the end trigger of the first processor solve the problem?

If this method solves the problem, is there any custom code to make it happen?


0 Likes 0 ·
Ryan Clark avatar image Ryan Clark anon-user commented ·
Hi anonymous user,

I think your best method to accomplish a 0 second delay would be to send a delayed message from the exit trigger of the first processor as @Felix Möhlmann suggested in his answer above. As far as I'm aware, there is no direct command for a delay in FlexScript, so this is probably the best alternative.

I hope this helps!

0 Likes 0 ·
anon-user avatar image anon-user Ryan Clark commented ·

Seeing Felix Möhlmann's answer, I was able to solve the problem by adding OnMessage.

For all the models I'm about to create, I'll try to avoid the problem in advance by adding OnMessage.


Is adding OnMessage for every openinput causing another issue?



0 Likes 0 ·
anon-user avatar image anon-user commented ·


Please tell me more about how to send a delayed message from the end trigger of the first processor.


Like the attached image,

Until now, openinput was done only with OnExit.

Is it possible to operate correctly by dividing this into OnExit and OnMessage as shown in the second image?




1st image: Before change




2nd image: After change to divide into OnExit and OnMessage


0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel anon-user commented ·
Nope. Felix speaks about a delay after that your condition gets evaluated. In your current approach you evaluate still in same sequence. DO:

Send a message > on message evaluate condition > open input

0 Likes 0 ·
anon-user avatar image anon-user Joerg Vogel commented ·

I was able to solve the problem by adding OnMessage.

0 Likes 0 ·