question

立洲 avatar image
0 Likes"
立洲 asked Julie Weller commented

Rack put items problem

I want the first layer of Rack to be the first area, the second layer and the third layer to be the second area. In the first area, the operator puts the items directly, the second area is passed by the Processor, and ASRS places the Rack.


I want to know that besides using two shelves stacked together, can I use Decide or other ways to complete this operation?

1684889706457.png Rack put items problem.fsm

FlexSim 20.0.10
rack
· 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.

Julie Weller avatar image Julie Weller commented ·

Hi @立洲 , was Carter Walch'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 unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Carter Walch avatar image
2 Likes"
Carter Walch answered Jason Lightfoot commented

Hi @立洲 ,

rack-put-items-problem_1.fsm

To solve this problem, we need to add a couple custom code activities to perform the logic to find an open slot on the rack and assign it to a label on the token. We can then use this label in the "Decide" activity to choose which task sequence we want to complete.

Note: The newer versions of flexsim have the "FindSlot" activity built-in to make it easier, but these code activities accomplish the same thing

1684966511942.png

In the "FindSlot" first custom code activity, we use the findSlot method of the Storage.System to look for an open slot on the rack. If an open slot is found, we assign it to the "Slot" label on the token.

1684967238349.png

More documentation of the Storage.System, its findSlot method, and other functions can be found here


The second custom code activity "Assign Slot" simply takes the new found slot location on token.Slot and assigns it to the flow item.

1684966814822.png

We can now use this slot label in our decide activity to send the token to the correct task sequence. If the level of the Slot is 1, the operator will manually put the flow item on the rack. If the slot is on level 2 or 3, the token goes to the first connector for the processor and ASRS vehicle to store the item.

1684966898445.png1684967031368.png

Finally, the "Decide" activity near the top will send the token to the "Storage Full" delay as soon as the rack is full. If the Slot label has a value, we continue storing more boxes. If not, we stop the process.

1684967097493.png

The updated model is at the top of this answer. Hope that helps!


· 2
5 |100000

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

立洲 avatar image 立洲 commented ·

Thank you, this method solves my problem, but I have a priority problem that needs to be implemented, 1F is filled with priority, I would like to ask how to achieve it.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ 立洲 commented ·
You can add a sql ORDER BY clause to the Find Slot query to sort by the level or other attributes.
2 Likes 2 ·