question

Pablo Abia avatar image
0 Likes"
Pablo Abia asked Pablo Abia commented

"Exception caught" errors - unable to determine why

Intercambio_almacen_vizcaya_2.fsm


Similar question:

https://answers.flexsim.com/questions/62783/exception-caught-errors-unable-to-review-labels-on.html


Hi all,

I'm currently working on a model where I encounter the same error as Linda encountered on hers. In my case, the error comes up while executing a "Push to List" activity in the "AGV" Process Flow. I've been trying to solve the issue following the same instructions that @steven.hamoen gave to @Linda N without success...may anyone help me?


Here's the flexsim script and the list of errors that I get:


time: 689.391185 exception: Exception caught in start() of activity "Push to List" in "AGV". Continuing throw...
time: 689.391185 exception: Exception caught in TreeNode::callMemberFunction() c++/dll execution. Throwing... MODEL:/Tools/ProcessFlow/AGV/Unload>variables/callbackNode c: /Tools/ProcessFlow/AGV/Unload>variables/callbackNode i: /Tools/ProcessFlow/AGV/Unload>variables/callbackNode thisClass: /Tools/ProcessFlow/AGV/Unload>variables/callbackNode
time: 689.391185 exception: Exception caught in evaluation of /Tools/ProcessFlow/AGV/Unload>variables/callbackNode



Thank you very much!



Pablo

FlexSim 19.1.0
flexsim 19.1.0
· 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.

Pablo Abia avatar image Pablo Abia commented ·

Setting the List "Carretillero" as "Global" makes the simulation running better, but even after this correction I still get a similar error.

0 Likes 0 ·
Marcello Rosadini avatar image
0 Likes"
Marcello Rosadini answered Pablo Abia commented

Hi Pablo, I took a look at your model and without getting to deep into how your logic works I have noticed that you are using Delay activities to "coordinate" between the pull and push activities between the AGV PF and the Exchange PF. However, the times you are using on those delays are based on exponential distributions. Exponential (0,10,0) will not always be lower than Exponential (0,30,0). In some replications the later could be lower... I have changed the values to fixed (10 and 30 ) and inverted them and I believe now is doing what you expected.

I would suggest using wait for event activities instead of delays. This way you can ensure that the token will be released exactly when you want. Also, as your models grow, naming all the push and pull (and most activities for that matter) will help you debug.

There is a "stop and delay" block in the model attached just to mark the spot where the delays were changed. You can remove it.

intercambio almacen vizcaya support.fsm


· 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.

Pablo Abia avatar image Pablo Abia commented ·

Hi Marcello,


Hope you're doing well, thank you very much for the answer. Now it works. I keep your tip about using the "wait for event" activities instead of "delays" for the next time.


Thank you,



Pablo

0 Likes 0 ·
Steven Hamoen avatar image
0 Likes"
Steven Hamoen answered Pablo Abia commented

@Pablo Abia Because you are having instantiated process flows and if you want to share a resource (a list in this case) it should be global. Other wise every instance has it's own list and that will give problems.
Concerning your error, I have actually no idea what is wrong. Contrary to what marcello wrote I think it should be doable with a list as a synchronize system. But he is right, if you make sure that the delay time on the AGV flow is larger then the time on the Exchange flow, you don't get an error. But I can't figure out why.

· 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.

Marcello Rosadini avatar image Marcello Rosadini commented ·

Hi @steven.hamoen , @Pablo Abia. Just to clarify, Steven is completely right: a list is a perfectly valid mechanism for synchronisation. I just assumed that in your logic you needed that sequence of events (i just took a quick look!) and suggested how to ensure it happened.

Glad to hear you solved it!

1 Like 1 ·
Pablo Abia avatar image Pablo Abia Marcello Rosadini commented ·

Thank you, Marcello. Your suggestion was helpful to solve the problem I encountered using the lists in that way; and it inspired me to solve it this other way too. I'm still learning to use flexsim and some of the possible solutions don't come up to my mind instantly.

0 Likes 0 ·
Pablo Abia avatar image Pablo Abia commented ·

Hi Steven,

Thank you for the answer. After reading Marcello's tip, I tried this other way to think the process flow and I got a good result as well, as it doesn't provoque any desynchronization:

I eliminate the "Push to List" activity from the "AGV" Process Flow. Now, the "Unload" activity creates an input in the "Exchange" Process Flow and this trigger a token source.


Hope you are going well.



Pablo

0 Likes 0 ·
1587371325687.png (47.3 KiB)