question

felicity avatar image
0 Likes"
felicity asked felicity commented

Unloading from crane to a processor in its downtime

Hi!

I have a question regarding task preemption and timetables. Now I know how to make the operators and other resources such as cranes finish the task at hand before going on downtime. What I don't know is how to let my empty processor receive items (but not start processing) from the crane and then start downtime.

stop-object.png

This causes the crane to stay in a "blocked" state not able to unload item to the processor until the end of downtime which causes problems in the overall production cycle time.

I will attach a simpler version of my model here and at the end of day 1 you can see this happening.


I appreciate your help in advance

test- preemption.fsm

FlexSim 22.2.0
cranetimetablespreemptiondown behavior
stop-object.png (67.9 KiB)
test-preemption.fsm (51.9 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

Hi @felicity, 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.

0 Likes 0 ·

1 Answer

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

You can use the await statement to delay the stopping of the processor until an item has entered it, if the processor is empty when the down function fires and the crane is currently moving an item.

1704699935347.png

You could build the same logic in a Process Flow and trigger it by creating a token in the down function (Token.create()) to start it.

test-preemption-fm.fsm


1704699935347.png (20.3 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.

felicity avatar image felicity commented ·

@Felix Möhlmann Thank you!

This code was very helpful. I have one question though. As in my main model a group of cranes may unload to a number of processors, what can I use instead of:

Model.find("Crane1").subnodes.length > 0

to insure the same logic for all of them?


(Also, the model works perfectly without the "Create TS" and "Finish TS" activities.

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

I'd use a label on the processor to keep track of incoming items and use that in the down function to wait for the arrival.

test-preemption-fm(1).fsm

And yes, the Create TS and Finish TS are not needed. I somehow throught the travel activity was also a task for the crane.

0 Likes 0 ·
felicity avatar image felicity Felix Möhlmann commented ·
Late reply, but I wanted to thank you for your answer @Felix Möhlmann this works very well.
0 Likes 0 ·