question

Shawn avatar image
0 Likes"
Shawn asked Shawn commented

Order picking in process flow

Hello,

I am trying to use the global table to pick boxes on the process flow. How can I do this operation :

when the transporter unloads the pallets, the Operators will go to 5 Queues for picking,and then go to help other queues picked until all racks are picked up, the Operators return to use the pallet jack and send a pallet of boxses to the shipping queue.

This is my model:
Warehouse B2B picking.fsm

At the same time, I also want my process flow to be merged together in a better way, is there any smart way to do it?

Regards,

Shawn


FlexSim 22.1.0
process flowglobal tableorder pickingzone picking
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

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

To be able to control the task distribution more easily, I would build the logic 'the other way around', from the viewpoint of the operators. Instead of the items acquiring an operator to move them, the operators look for items to transport.

That way you can set certain conditions in order for an item to be allowed to be pulled and order the transport tasks by priority.

In the attached model I use an item list to hold all pending items that have to be transported somewhere. They are pushed to the list in the transport reference field of the 'Use Transport' option. (Though you can of course push the to the list in other ways such as triggers or process flow). In addition to the default labels 'destination', 'priority' and 'preempt', the queues/combiners labels 'aisleNum' and 'strict' are also copied to the item. The aisleNum shows which isle the transport task belongs to and is later used to prioritize which items get pulled first by an operator. The 'strict' label will control whether an operator from a different aisle is allowed to pull the item or not.

1653470569107.png1653470603249.pngEach operator also has the 'aisleNum' label which specifies in which aisle they (primarily) work.

The 'strict' value is added as a label field to the list. The 'aisleNum' is used in an expression field that calculates the difference between the item's number and the puller's number.

1653470815101.png

To control the operator and instanced process flow is used. Each operator thus runs its own version of the process flow and can be referenced as 'current' throughout.

The process flow is quite simple in this case: Each operator pulls items from the list and transports them from their current location to their destination.

In the 'Pull Item' activity the list fields are used to distribute tasks:
- The operator can only pull items that can be transported by anyone (strict == 0) or that belong to their aisle (aisleNumDiff == 0).
- The tasks are ordered first by the priority (so single boxes have priority over full pallets) and then by the aisle difference (so operators will first move all items in their own aisle, then move to the closest one)

1653471064663.png

ProcessFlow_TaskDistribution_fm.fsm


· 21
5 |100000

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