Modeling of an Inbound Dock

Modeling of an Inbound Dock

acacil
Participant Participant
407 Views
4 Replies
Message 1 of 5

Modeling of an Inbound Dock

acacil
Participant
Participant

Hi,

I would like to model an inbound dock, with two main parameters, the number of available dock doors and the size of the pallet area (number of pallet locations).

 

I would like your advise on what is the best way to model the area.

Pallets will get unloaded from the dock doors and placed in the pallet area (1-2-3-4-5-6-....). As pallet spots get occupied, adjacent pallet columns can be used if they are available.

 

acacil_1-1748360378150.png

Whats the best way to model a logic that selects the closest pallet column with an available location, and unloads the pallet into the furthest available spot?

 

I am also confused on whether I should model each pallet column as an individual queue? Or is there a better way?

Thank you all,

Lambert

0 Likes
Accepted solutions (2)
408 Views
4 Replies
Replies (4)
Message 2 of 5

Jacob_White
Community Manager
Community Manager
Accepted solution

Hi @acacil,

 

I am attaching a model that demonstrates a possible method for modeling having each door select which pallet column and then pallet slot in that column which is farthest away. In the model there are two example systems. A more basic setup that doesn't take the closest storage object into account but still stores each item in the furthest available slot. The second example uses lists to ensure that the closest empty storage object is selected, and the pallet stored at the farthest available slot. The model works this way by utilizing the list as a simple way to select whichever storage object is closest to the queue where the incoming pallets arrive. Once the token that represents the pallet has found the nearest storage object, it uses a query on the find slot activity to search for the same storage object and then find the farthest empty storage slot from the queue. If the storage object is full, the pallet token moves the storage object onto a new list called "Full Storage." The token is then able to select the next closest storage object from the list and then find a fitting storage slot. I have also created a little bit of logic that checks for items leaving the storage slots, and if they are on the "Full Storage" list they are returned to the "Available Storage" list. 

 

 

Also, I would suggest using floor storage objects to represent the different pallet areas that you are trying to model. It is easier to work with fewer objects within the model. One floor storage can represent multiple different storage locations, where a queue can only act as a single location.

0 Likes
Message 3 of 5

acacil
Participant
Participant

Hi @Jacob_White , thank you so much for taking the time to prepare this for me. It is extremely useful.

One last question if I may. Is there a possibility to dynamically change the number of pallet columns, and the number of pallets per column? I would like to vary the size of the overall pallet area via parameter.

Thanks again for your really valued support.

0 Likes
Message 4 of 5

Jacob_White
Community Manager
Community Manager
Accepted solution

Hi @acacil,

Here is a model that shows a way to set up the number of pallets and and pallet columns. It uses a group of the single initial floor storage object, and then parameters to control the number of floor storages created, as well as the number of levels (pallet columns) and even a way to increase the width of the floor storage if desired. 52104669-8756-456c-a27c-7feb7baf2af5.png

This first picture is the parameter for the number of Storages to be created. Some key information is that the reference here should be the group that holds the initial floor storage. Within the On Set code you can change the X-step which sets the distance between the created storage objects.

 

8823a70c-d13a-4fbd-ab6e-6f53c0542159.png

This parameter sets the number of levels (pallet columns). You can easily change the upper bound to create a higher or lower max number of levels. The custom code used is shown in the image below. This is the same code that fires when you manually change the storage object dimensions through the properties of the storage object. The reference must be pointing to the initial storage object within the group. That means that whenever the model is reset, all storage objects that reference off of the initial one also will be updated to have the same dimension.

07fc9e39-5762-480b-8cf9-5423e2291f45.png

NumBays parameter.png

 This last image is the NumBays parameter. The setup is the same as the NumLevels parameter, however the custom code is slightly different. 

 

Some notes. If you will use this in conjunction with the other model I shared, you will need to set the initial storage object to its max dimensions and set the labels for each row prior to running the model. This will ensure that the correct labels are all set no matter the size of storage object you set within different scenarios. 

0 Likes
Message 5 of 5

acacil
Participant
Participant

Amazing!!! I will try and put both things together.

You have been super helpful, thanks again.

0 Likes