question

Jose A10 avatar image
1 Like"
Jose A10 asked Eric M answered

Storage System: how can I pull items for orders?

Hello. I'm having troubles connecting my crossdocking system with my AS/RS storage system. As you can see in my model (attached), I have a crossdocking system that when an item is not requested to fullfill an order it goes to storage. I used round robin to distribute the items equali by my three queues (inputs of storage) using decision points. In the future I cn change this distribution according to what could be requested.

So, when an order begins to be satisfied in the crossdocking system and there isnt an item or a group of items to satisfy that order, I need to check if there is any of those items in my warehouse and if it is I need to call them back to the crossdocking conveyor system to satisfy my order. How can I do this? I tried using decision points, it didnt work, now im trying to use Process Flow but I cant figure out what to do.


If anyone could help me it would be great. Thank you.

José Alves

Simulação - vASRS.fsm

FlexSim 21.0.3
asrsstorage systemrack storageorderscrossdock
simulacao-vasrs.fsm (325.6 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.

Joerg Vogel avatar image Joerg Vogel commented ·

How do you create your orders in your model? How do you set a demand to be fulfilled by stored items? How do you fulfill your orders?

0 Likes 0 ·
Eric M avatar image
0 Likes"
Eric M answered

Hi @Jose A10, I would use the same list that the incoming items are pushed onto and use a label called Priority to order the list. That way none of the pulling logic needs to change except for adding a query to order by priority. The incoming items will have a priority of 1 and the storage items will have a priority of 0 (set at DP9). The Queues will only pull an item off the racks if there are no other items on the incoming conveyor.

I made a few changes to make this happen and also improve some other parts of the model. I added a decide activity based on the Priority of the pulled item. If it's 1, there will be no change. If it's 0 (meaning coming from the rack), I created a small task sequence for the ASRS to transfer the item onto the conveyor. I added some labels to the item when it enters the Input queues and the ASRS to help with the task sequence logic. I also change the color of the items to blue when they reenter the main conveyor just to see which items are coming from the racks.

A couple other things I changed were transposing the Order table and changing when the items get pushed to the list originally (now when they enter the conveyor system instead of at the DP). Let me know if you have any questions.

simulacao-vasrs (4)_2.fsm


5 |100000

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

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered

You have already all data duplicated in your partitioned list. You pull from your partition an item to fulfill a demand. Because you have already partitions you need not any query clause. You need to set only the right partition value. Then you create a tasksequence to carry the item out of the rack system. You need the reference of the rack. This is item.up. If your item has got a different reference then you use this instead. That is all.

If you want it to do with a recommended practice you give the assigned slot free, when the item is loaded into an asrs.

You need some data from this warehouse system.

Object item = token.pulled; // or any other reference
// item is in your warehouse
Storage.Item itemOut = Storage.Item(item);
// the item in warehouse occupies a slot. 
itemOut.assignedSlot = NULL;

As simple tasksequence consists of:

  • Object or treenode reference for aTaskexecuter AS/RS vehicle in your aisle [TE]
  • item to load [item]
  • destination object [destination]
TaskSequence ts  = TaskSequence.create(TE,0,0);
ts.addTask(TASKTYPE_LOAD,item,item.up);
ts.addTask(TASKTYPE_UNLOAD,item,destination);
ts.dispatch();
5 |100000

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