question

Oscar C13 avatar image
0 Likes"
Oscar C13 asked Felix Möhlmann answered

Create object in specific position of rack

Hi,
I have been observing that it has a been fairly frequent question but i did not quite understand the answers.
I made a schedule to obtain an initial stock based on a model that you have attached to this forum. I would like know how I can do that in the lowe level there can only be cylinders, and that these only appear there.
Bays.fsm

FlexSim 21.2.1
rackstocklevel
bays.fsm (42.2 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.

1 Answer

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

There are two main ways you can achieve this.

Option 1: Use the Slot Assignment Stratety "Matching Labels"

First, open the "Storage System" properties in the toolbox. In the "Slot Label" tab, create a new entry with the label name that will be used to match items to different slots in the rack.

1635414578760.png

Next, use the "Paint Slot Labels" tool in the library to assign different values of this label to each slot of the rack. In your example you might assign the values "Cylinder", "Box" and "TestTubes". Each slot can only be assigned a single value per label, although you could define multiple labels.

1635414717533.png1635414747419.pngNow, change the "Slot Assignment Strategy" of the rack to "Matching Labels" and adjust the condition to match up with your chosen labelnames.

1635414882020.png

All items will now be sorted into the slots according to the painted labels.

Problems with this method are:

- There is no easy way to combine this with random placement
- When "force"-moving the items into the rack, an error will be shown when the respective slots run out of space (if "Slot Must Have Space" is checked).


Option 2: Assign slots with the "Find Slot" activity

Since you are moving the items into the rack via a process flow, you can use the "Find Slot" activity to find and assign a slot to the item before it is moved into the rack. If an entering item is already assigned to a slot, the slot assignment strategy of the rack will not be evaluated.

In your case, you could use the query "WHERE slot.levelID == 1" to filter for slots at the bottom level for the cylinders and "WHERE slot.levelID > 1" for the other items. To keep the random placement, you can add "ORDER BY RAND() ASC" to the query, which will order (and thus assign) the eligible slots randomly. These query strings can also be added via the corresponding dropdown menu.

1635415486362.png

Both options are demonstrated in the attached model.

bays_1.fsm

Note: Since there are two racks in the model, I also specifed that the slot should be inside "Rack3" in the Find Slot activity with "slot.storageObject == $1.Destino". "$1" is a placeholder for "token"; this could also be changed in the repsective field in the Find Slot activity.
I also added the requirement that the slot must have space "slot.hasSpace($1.Item)".


1635414578760.png (7.1 KiB)
1635414717533.png (4.5 KiB)
1635414747419.png (37.6 KiB)
1635414882020.png (4.5 KiB)
1635415486362.png (20.5 KiB)
bays-1.fsm (51.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.