question

Jonathan avatar image
0 Likes"
Jonathan asked Jason Lightfoot edited

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

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)

FlexSim 22.1.4
rackwarehouse
1696620223236.png (339.4 KiB)
packouttoshipping.fsm (738.3 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

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 0 ·
1696629262240.png (4.8 KiB)
Jonathan avatar image Jonathan Jason Lightfoot ♦♦ commented ·
BoxType directly corresponds to LinerNum (1 = 1). In hindsight I could have simply made those the same label.


0 Likes 0 ·
Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Jason Lightfoot commented

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


· 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.

Jonathan avatar image Jonathan commented ·

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 0 ·
1696883981859.png (150.1 KiB)
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Jonathan commented ·

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 0 ·
1696884189763.png (23.3 KiB)
Jonathan avatar image Jonathan Jason Lightfoot ♦♦ commented ·

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 0 ·
packouttoshipping.fsm (748.2 KiB)
Show more comments
Jonathan avatar image
0 Likes"
Jonathan answered Jason Lightfoot edited

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


1697036840507.png (347.4 KiB)
packouttoshipping.fsm (745.6 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'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 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

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 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·
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 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Jason Lightfoot ♦♦ commented ·

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 0 ·
Jonathan avatar image Jonathan Jason Lightfoot ♦♦ commented ·

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 0 ·
Show more comments