question

Óscar Manuel CMN avatar image
0 Likes"
Óscar Manuel CMN asked Óscar Manuel CMN commented

Operators suddenly stops

The case is practically the same as the one I asked in this post:

https://answers.flexsim.com/answers/86978/view.html

The model is a job shop with destinations depending on the type of job (TipoTrabajo label). What is intended is that the operator chooses an item of the same type as the one that just been processed, and if in the queue in which it is looking there is none like that, then he chosses the item with a horter processing time. The logic of this is put in the pull from list.

The problem is that after a simulation time, the operators stop moving and the tokens go into a infinite loop on the pull from list. Anyone know how to solve this? Because they have a delay.

JSPT-WHN1-SQ-k2_1.fsm

FlexSim 20.0.6
processflowoperatorsflexsim 20.0.6
jspt-whn1-sq-k2-1.fsm (815.7 KiB)
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

TALUMIS Training avatar image
0 Likes"
TALUMIS Training answered Óscar Manuel CMN commented

@Óscar Manuel CMN in the code on your pull from list you have an if and and else if and then an if again. I used the debugger to check and it comes in the else if so it selects MejorItem = token.PulledQueue.as(Object).subnodes[i] but then it also goes in the if and selects MejorItem = M4

But you use the PartionID but there is no M4 in that partition. So I guess there should be another else?


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

Óscar Manuel CMN avatar image Óscar Manuel CMN commented ·

That of M4 is in the event that the destination is M3. In the queues, I assign a label "destination" and if the destination has machines in parallel, well, I am just telling he to go one of them. In this case, destination is M3. So I also evaluate the possibility of going M4, because I could never go to that. The same with M5 and M6.

I did not understand your question well but I hope this is what you wanted to know.

0 Likes 0 ·
Steven Hamoen avatar image Steven Hamoen Óscar Manuel CMN commented ·

My question was if your logic shouldn't be:

if

else if

else if

But when I looked at your model again there is a different problem. The problem is that you have a list of items, so you want to pull an item and token.PulledQueue.as(Object).subnodes[i] actually pulls an item, but M4 is not an item but a machine so it is not on the list and can not be pulled. And because of the way you wrote your code the tokens in the infinite loop always wants M4 but that is not on the list so it ends up in the infinite loop

1 Like 1 ·
Óscar Manuel CMN avatar image Óscar Manuel CMN Steven Hamoen commented ·

but I want to get MejorItem. M4 is compared to token.PulledQueue.subnodes [i] .destination, which references the object referenced with the destination label.

I don´t understand where the problem is

0 Likes 0 ·
Show more comments