question

Devdatta D avatar image
0 Likes"
Devdatta D asked Jason Lightfoot edited

pick up multiple items using transporter

I would like the transporters to pick up multiple items up to it's capacity from different racks in a warehouse. Is there a tutorial or an example model? I have added my current implementation to the site. Is there a better way to do this?


Model is called Warehouse_PickDrop_Multiple

FlexSim 22.2.1
warehousetransporters
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
0 Likes"
Jeanette F answered

Hello @Devdatta D,

Your process flow is fine. My only question is whether or not you should check if more items need to be picked after you unload considering the TE can be sent to unload just because it is full. That may not be needed but I had a hard time telling if the items in the array could be picked later if they weren't picked in their first array.

1661567839850.png

I will link a model that shows a basic way of loading multiple items.



1661567839850.png (33.4 KiB)
5 |100000

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

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Jason Lightfoot edited

You are creating a number of task sequences for the picks in series and then the unloads in series. You could instead create them as complete pick and unload tasksequences each with a BREAK task in the middle to allow the transporter to evaluate if it can start another new task sequence. There are disadvantages of this and you may be better creating a single task sequence for each rack containing multiple picks - see comments below.

The Break task type which allows the task executer to check its spare capacity and start another task sequence in the middle of the current one and is added by a custom task activity and selecting the task type - in this case 'break'

If you dont' want the forklift to drive into the rack and load it, another task type you can use with the custom task activity is the pickoffset type of travel which will make the task executer travel to collect the item using only selected component(s) of the offset - so in this case just travel the x component along the face of the rack.

This means your process flow can be simplified to this:

1661769689272.png


The pick offset settings would be:

1661769893419.png

There are no setting for the BREAK tasks, but you should set the transporter to break to new task sequences only.

You can run all the tasks sequences at the same time with these settings on the run-subflow.

1661769657397.png

Then you can set the flip threshold on the transporter to 170.

With these changes your transporter will enter then aisle, travel to each item and load it, travelling backward up the aisle to an item in an earlier bay. This is probably not what you want/need.

To fix that you should create a task sequence that visits the racks in the correct order based on route and picks from each rack in bay order. This means you should sort the items in the array in descending bay order in the case of this rack.

Also, you don't need to tell the TE to travel to network nodes but to the rack. The rack will be enough since the one way settings will tell it it needs to go to the first network node that is attached. Switch the TE to not travel offsets for load/unload tasks which will still allow it to travel the PICKOFFSET in the X direction and not perform its own movement when you give it the Load task.

Also I would like to point out that while you're using task sequences, you don't need to acquire and release the task executer since the task sequences themselves take control of the task executer - you just need a pointer to the te or dispatcher. You could issue multiple orders at once and have the tasksequences all queued and being broken to by the task executer's BreakTo Requirement. However, if you're using individual tasks activities outside of a sequence, then they will each compete when issued in parallel, and so acquire/release and issuing them in the correct order (not in parallel) is then needed.


1661769657397.png (22.8 KiB)
1661769689272.png (51.2 KiB)
1661769893419.png (17.8 KiB)
· 6
5 |100000

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

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·
I've uploaded the file with these changes to the folder Jeanette provided
0 Likes 0 ·
Devdatta D avatar image Devdatta D Jason Lightfoot ♦♦ commented ·
Thanks Jason. I will take a look at the models. I was not sure how to add break task. Is it just adding custom task and setting task type to Break?
0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Devdatta D commented ·
Yes - that's it. It might get you some of the way but I think the full solution is to explicitly manage the picks by rack and item sequence and for that you won't need the break task.
0 Likes 0 ·
Show more comments
Jonah K avatar image
0 Likes"
Jonah K answered

A simple model that demonstrates this is shown in this process flow:

1661555220019.png

Using a batch activity, which then releases all 10 tokens, will allow you to collect 10 items then release them to be dropped off. The resource of 10 items being allowed prevents the transport content from overfilling.

1661555653418.png

Here is the model layout. Since AnswerHub is still not allowing uploads, I will email you this simple model I used.


1661555220019.png (21.6 KiB)
1661555653418.png (98.6 KiB)
5 |100000

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