How do I pick several parts off a pallet in a specific slot on a rack?

How do I pick several parts off a pallet in a specific slot on a rack?

jonathan_s3
Not applicable
62 Views
16 Replies
Message 1 of 17

How do I pick several parts off a pallet in a specific slot on a rack?

jonathan_s3
Not applicable

[ FlexSim 22.1.4 ]

PackoutToShipping.fsmIn my model, I have a rack with 4 slots. Each slot has a pallet with a label "LinerNum" that will correspond to a part that the packaging operator is wanting to pack.

Flow:

Conveyor workstation receives an unboxed part with a label "OrderNum"

Operator pulls the appropriate LinerNum part from the small rack next to them. It has 4 slots that each correspond to a specific LinerNum.

That liner in consumed in the process and the part continues down the line.

When a slot in the small rack is depleted, the dispatcher sends an operator to the main liner rack. The operator pulls 30 liners from the pallet in the slot that corresponds to LinerNum and loads the 30 liners into the small rack. The normal processing then continues.

1696620223236.png

Model is attached. Software version 22.1.1 (only 22.1.4 was available in the list)

0 Likes
Accepted solutions (1)
63 Views
16 Replies
Replies (16)
Message 2 of 17

jason_lightfootVL7B4
Autodesk
Autodesk

From where are you hoping to determine the LinerNum from the OrderNum? Currently the item at the processor only has these two labels:

1696629262240.png

0 Likes
Message 3 of 17

jonathan_s3
Not applicable
BoxType directly corresponds to LinerNum (1 = 1). In hindsight I could have simply made those the same label.


0 Likes
Message 4 of 17

jason_lightfootVL7B4
Autodesk
Autodesk
Accepted solution

Here's an implementation in your model.

It uses this process flow for the LinerRack to create the initial stock and detect when a slot is empty:

1696883290782.png

It uses this process flow for the station to consume the liners and stop the station if the correct liner is not present:

1696883340675.png

I've change the model so that all Liners also have the LinerNum label.

Where possible, I would avoid having pure numerics as the object names - so instead of "1" use "Pallet1".

Let us know if you have questions. Model attached.

packouttoshipping_jl.fsm

0 Likes
Message 5 of 17

jonathan_s3
Not applicable

I'm running your model but whenever the second packing station finishes the box jumps off the conveyor to the side and stops.


1696883981859.png
0 Likes
Message 6 of 17

jason_lightfootVL7B4
Autodesk
Autodesk

Sorry - the MoveObject still had the default entry - token.item - instead of token.Liner.

Change it to this:

1696884189763.png

I uploaded the model again with the change.

0 Likes
Message 7 of 17

jonathan_s3
Not applicable

Thank you. You didn't happen to change anything with the floor storage did you? On the second box to enter the storage on the forklift it throws an exception for no slot assigned.
Latest model:
PackoutToShipping.fsm

0 Likes
Message 8 of 17

jason_lightfootVL7B4
Autodesk
Autodesk

No I didn't - but your slot assignment strategy is using the general storage system's findSlot() method without specifying the storage object so it will find bay1/level1/slot1 on another rack as the second choice.

You should probably alter that to only find slots on the current object:

storageItem.assignedSlot = Storage.system.findSlot("WHERE slot.slotItems.length < 1 AND slot.storageObject=$1 ORDER BY slot.levelID ASC, slot.bayID ASC",0,current);

Another tip - since the operators have limited places to travel I would remove the Astar and use network nodes - at the moment Astar navigation is slowing your model down significantly, accounting for 90% of the time.

0 Likes
Message 9 of 17

jonathan_s3
Not applicable

Working storage code:

Storage.Item(item).assignedSlot = Storage.system.findSlot("WHERE slot.slotItems.length < 1 AND slot.storageObject=$1 ORDER BY slot.levelID ASC, slot.bayID ASC",0,current);


The beginning storageItem needed to be Storage.Item(item).


Thank you. I'll read up on navigation nodes. I've not used them before.

0 Likes
Message 10 of 17

jason_lightfootVL7B4
Autodesk
Autodesk
Yes - sorry, storageItem is already defined with the default parameter header for that code - not sure why yours was different.
0 Likes
Message 11 of 17

jonathan_s3
Not applicable

I'm getting exceptions thrown (using the nav nodes as suggested). I'm not sure how to diagnose or fix them as the message isn't very helpful.

Additionally, in the area with 10 pallets, the forklift keeps wanting to travel to the nav node that's not on its assigned route in order to get to the pallet that's closer to that node. If I move its node closer then the person wants to go to the forklift node. How do I keep only the objects assigned to a route on that route instead of wanting to go to the node nearest their destination?

Current model:

PackoutToShipping.fsm1697036840507.png

0 Likes
Message 12 of 17

jason_lightfootVL7B4
Autodesk
Autodesk
I'm guessing you've set the them to use the navigator for offset travel and the implementation of offset travel on the Network Navigator has a bug that prevents it from understanding that the networks are distinct. I'll check your model next.
0 Likes
Message 13 of 17

jason_lightfootVL7B4
Autodesk
Autodesk

Yes - as I expected you should change the Task Executers to use their own travel offsets.

There's also an exception due to the fact that the linerRack is a fixed resource and has a processfinish event that fires after we've removed and deleted a liner. To avoid that issue and retain that function we should add a zero time delay 'breathe' activity after the findItem activity that's waiting for a liner. This allows the processFinish event to pass before we remove the item. There will be other ways of getting around this too.

1697038305406.png

packouttoshipping_netnodes.fsm

0 Likes
Message 14 of 17

jason_lightfootVL7B4
Autodesk
Autodesk
I see now that the time to change shapes and size on PackingStation1 processFinish is taking almost 10 times longer than the time to find a liner using the storage system query. I'll bring this up somewhere in case that needs investigating.
0 Likes
Message 15 of 17

jason_lightfootVL7B4
Autodesk
Autodesk

We took at look at this and it seems the applyshapefactors() call is taking the time. Here's a version that streamlines the shape changing a little for more speed.

packouttoshipping_netnodes_faster.fsm

0 Likes
Message 16 of 17

jonathan_s3
Not applicable

It's throwing a task sequence error later on in the model. It was doing this before your last change.


packouttoshipping-netnodes-faster.fsm1697045822825.png

0 Likes
Message 17 of 17

jason_lightfootVL7B4
Autodesk
Autodesk

Yes - this is because the pallets are empty in the feed rack. They need to be removed and replaced.

The intention was just to address the initial question and implement enough to draw down the liners and trigger the resupply to the adjacent rack. The same principles need applying further up the supply/logistics/material handling chain.

0 Likes