question

Pert P avatar image
0 Likes"
Pert P asked Felix Möhlmann commented

How to create Process flow to find Floor Storage specified?

I have many floor storage in the model, I don't know how to create process flow to read specified floor storage on global table and then go follow data on global table.Demo Order Picking.fsm

1645888380774.png


FlexSim 22.0.1
processflowwarehouseorderpicking
1645888380774.png (436.5 KiB)
· 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.

Jeanette F avatar image Jeanette F ♦♦ commented ·
Hello @Pert P, Can you update your global table with a column for the floor storage assignment? How you are wanting to specify the floor storage will change the answer I can provide you.
0 Likes 0 ·
Pert P avatar image Pert P Jeanette F ♦♦ commented ·

demo-order-picking.fsm I updated column FloorStorage for determine where floor to go, but How to set flowprocess read this column to go to floorStorage that I want

0 Likes 0 ·

1 Answer

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

If you only know the number of the storage like in your model updated model there are numerous ways to get a reference to the correct storage object from it.

If the number is just added to an otherwise common name you can use the "Model.find()" command, type in the common part of the name ("FloorStorage") and then add the number to the search string ( + string.fromNum() ).
A, in my opinion, more elegant solution would be to add the storage to a group and have the number in the table refer to the index of the object inside the group.
If possible, you can also directly enter the name of the storage object (or better yet a pointer to the object) into the table and use the "Object By Global Table Lookup" option in the "Assign Labels" activity.

1646293065224.png

Any of these will give you a reference to the correct floor storage which you can use in the find item query to only look for items in the respective storage (WHERE item.slot.storageObject == $1.labelName)

Finally, you could also define an address scheme for the storages and use the aisleID and/or zoneID to uniquely identify them. In that you wouldn't need a reference to the object but would instead just look up the ID from the table and use it directly in the query (WHERE item.slot.aisleID == $1.aisle). If you use this, be sure that the type assigned to the aisleID (letter, number) matches the data type entered into the table (string, number).

demo-order-picking-fm.fsm


· 22
5 |100000

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

Pert P avatar image Pert P commented ·
Thank You so so much for your help.
0 Likes 0 ·
Pert P avatar image Pert P commented ·

If I want to batch order Row 1 2 3 on Global Table to pick them all in one tour, How to edit process flow?

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦ Pert P commented ·

Then you need to get the array of items you want to pick and then perform successive loads before you perform the unloads. A simple way to do multiple loads and unloads is to call a subflow and from the items array, write each item onto the child token the runsubflow creates. There are many examples of this on the Answer site including some that create a S picking path through multiple aisles.

1 Like 1 ·
Pert P avatar image Pert P commented ·
Another Question, I added new floor storage is FloorStorage7 and added it into group already when I set on table to go to Floor7. FlowProcess Chart is not working


0 Likes 0 ·
Pert P avatar image Pert P commented ·

demo-order-picking-fm_1.fsm

I added FloorStorage7 is a new location on model and I added FloorStorage7 in Storages group already but when defined in Order (Table) process is run out of working. I wanna know why and how to fix it

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Pert P commented ·

The 'Find Item' activity is currently set up to use the aisleID to identify the correct storage. The ID is not set on the new floor storage yet.

1653062837699.png

You can also change the query in 'Find Item' to use one of the labels with a direct reference to the floor storage.

WHERE item.slot.bayID == $1.ItemRow AND item.slot.levelID == $1.ItemColumn AND item.slot.slotID == 1 AND item.slot.storageObject == $1.StorageFromNumGroup 
0 Likes 0 ·
1653062837699.png (8.7 KiB)
Pert P avatar image Pert P Felix Möhlmann commented ·
It's working. and I need know that why operator doesn't walk on path?
0 Likes 0 ·
Show more comments
Pert P avatar image Pert P commented ·
I have one question. If I want to group of rows on table include 2 rows are an order 1 and let operator pick two items on order 1 in 1 tour when finished on order 1 go on other order.
0 Likes 0 ·
Pert P avatar image Pert P Pert P commented ·
How to do like thet


Thank you so much if you have any sample to me.

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Pert P commented ·

You could split the process flow into a load section which loops until the next row is not part of the current order. Then the operator unloads all items and the token moves back to the start of the process flow.

1653809662102.png

demo-order-picking-fm_1.fsm

0 Likes 0 ·
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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