How to hand over a flow item from worker to worker

How to hand over a flow item from worker to worker

linda_n
Not applicable
75 Views
3 Replies
Message 1 of 4

How to hand over a flow item from worker to worker

linda_n
Not applicable

[ FlexSim 19.0.0 ]

warehouse-simulation-forum.fsmHi all,

I'm trying to model the activities of a warehouse. In this warehouse, order(batches) are first picked by picker and afterwards handed over to a packer (if the packer has the right skills to process the order). I've tried to model this in process flow, with some links to a 3D model. Pickers pull a pickjob from a list with finished orderbatches. The picking itself I modeled with a delay activity. When playing the model I see at 47 sec that Picker 2 is going to finish picking first with an orderbatch linked to token ID 16. Picker 2 brings the finished tote to the queue FinishedPickjobs and is released.

From this moment on I want a packer (if available) to get the tote from the FinishedPickjobs queue to pick up the order and bring it to one of the process stations. However at this moment something unexpected happens: not the job linked to token ID 16 is acquired by the available Packer but instead token ID 28, which is still in the pick process delay activity.

I want a situation in which Packers only pick up jobs that are actually finished and brought to the FinishedPickjobs queue by packers, but I don't understand what is going wrong. Can someone please have a look and tell me what I did wrong? Thank you in advance!

0 Likes
Accepted solutions (1)
76 Views
3 Replies
Replies (3)
Message 2 of 4

logan_gold
Community Manager
Community Manager
Accepted solution

The issue is how the tokens in the Tote Creation section of the Process Flow are ordered during the different Push to List activities. This is important because when things are pulled off a list, the default action is to pull the thing that was first pushed onto the list. Here is the list of events:

1. Picker pulls token id:28 off of "List: Pickjobs ready to be picked" and begins the picking part of the WIP section of the Process Flow. This causes token id:28 to go from the "Push to List: Finished Pickjob" activity to the first "Push to List: WIP" activity and be pushed onto "List: Batches in Pick Process".

2. Picker_2 pulls token id:16 off of "List: Pickjobs ready to be picked" and begins the picking process. This causes token id:16 to go to the first "Push to List: WIP" activity and be pushed onto "List: Batches in Pick Process".

3. Picker_2 finishes the "Delay: Picking" activity before Picker and gets to the "Pull from List: WIP, Pickjob finished" activity first. This causes Picker_2 to pull the first token off of "List: Batches in Pick Process". Since token id:28 was the first token pushed onto the list, it is the first token pulled off of the list. This means token id:28 goes to the "Push to List: Waiting For Packer" activity and is pushed onto "List: Batches Ready to be packed".

4. Packer pulls token id:28 off of "List: Batches Ready to be packed" and begins the packing part of the WIP section of the Process Flow.

To fix it, you will want each picking Operator to pull the same token off of "List: Batches in Pick Process" that it initially pulled off of "List: Pickjobs ready to be picked". Fortunately, we have the pickjob label on the picker token to help us with this. You will need to put a query in Query/Object/Array field of the "Pull from List: WIP, Pickjob finished" activity. That query will be:

WHERE Value = Puller.pickjob

This works because the pickjob label on the picker token (Puller) contains a reference to the token it pulled off of "List: Pickjobs ready to be picked" during the "Pull from List: Get Pickjob" activity. The query essentially says we only want to pull a token (Value) off of "List: Batches in Pick Process" that matches the token we first pulled from "List: Pickjobs ready to be picked" and stored in the pickjob label.

0 Likes
Message 3 of 4

JordanLJohnson
Autodesk
Autodesk

I think the issue is in the activity Pull from List: WIP, Pickjob finished. In the model you posted, any token on the List: Batches in Pick Process could be pulled, but I think you mean to pull the pickjob. You can pull the pickjob directly by putting this code in the Query/Object/Array field:

token.pickjob

That way, instead of pulling the oldest pickjob off the list, the picker will pull the token for his order batch.

.


Jordan Johnson
Principal Software Engineer
>

0 Likes
Message 4 of 4

linda_n
Not applicable

Thanks both! Both methods have the desired effect. Clear explanation and I learned something new

0 Likes