question

Andrea F avatar image
0 Likes"
Andrea F asked Andrea F commented

Picking modelling

Hi everyone,

I am having difficulties to find a solution to his problem. My major issues are:

- i do not know how to send the transporter to pick a particular item from racks coming from the list that i have created. In this list all the items are pushed by racks.

- I have difficulties to model the picking of the operator of a single item from the deposit pallet and then build the order according to the orderstable

- I also do not know how to model this activity: the transporter if have to retrieve a pallet stacked in the middle, have to firstly remove the pallet on top, deposit them on the floor, pick the pallet and then put back the pallet on floor.

I attach my model here hope i was clear and i am asking for help in this

Sarner Holz Final Floor_1.fsm

FlexSim 19.1.2
warehousepickingpalletlogisticsstack
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

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Andrea F commented

It is a problem of subnodes hierarchy. I call pallets of items in a rack “containers”. The items in a container I call “products”. I do this declaration, because both are items in the scope of FlexSim.

Racks in FlexSim 19.1.2 are Fixed Resources and not part of a warehouse. All your racks store just containers.

You better transfer any product data into labels at the container. You can interrogate any data of any object in your Modell, but it is a bit difficult to build all relative paths to those objects and items. It is easier to store relevant data at the container and update the data there if any change happens.

if you need any products out of the rack you can transfer the container or the product. The transporter needs only the reference to the object to carry.

You get an order request for an attribute specified product. If you have all needed data reside inside the container, you can query your rack subnodes for this data. The result will not be the product but a container in your rack. You have to identify the cell by level and bay

rackgetlevelofitem

https://docs.flexsim.com/en/19.1/Reference/CodingInFlexSim/CommandReference/CommandGroups.html#rackgetlevelofitem

rackgetbayofitem

https://docs.flexsim.com/en/19.1/Reference/CodingInFlexSim/CommandReference/CommandGroups.html#rackgetbayofitem

If you want to load only a product and not the whole container, you have to address the product inside the container. Typically you remove the last product of the hierarchy of subnodes from the container.
It is structured in code literally:

  • reference of container point last subnode
Object product = container.last;

Other references to products are first or subnodes[num rank]. num rank is any valid order number of all products in your container. The number 1 is equal to first.

stacked containers are also a hierarchy of rack cell items. Once you have identified a container, in fact you queried a item in the rack, you know the level and bay of the cell. Then you need the rank of the container and the total content of containers in the cell.

rank of container in cell

https://docs.flexsim.com/en/19.1/Reference/CodingInFlexSim/CommandReference/CommandGroups.html#rackgetitemcellrank

total content of containers

https://docs.flexsim.com/en/19.1/Reference/CodingInFlexSim/CommandReference/CommandGroups.html#rackgetcellcontent

you can create a reference or pointer to each container by bay, level and rank

https://docs.flexsim.com/en/19.1/Reference/CodingInFlexSim/CommandReference/CommandGroups.html#rackgetitembybaylevel

As you said, if the container of ordered products is not last then you have to address in consecutive order any above container and transfer them until you can load the desired container.

· 7
5 |100000

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

Andrea F avatar image Andrea F commented ·
Thanks Joerg for the answer. I have already given labels to the containers and items in my model. For the first i gave pallet and the last item. I gave those labels when i first created the list for the palletization so before they were stacked in racks. Then racks push them to another list for the picking. Do i have do assign labels directly in the racks´tab?

Another problem is that i am working with floor storage so levels are intended as y-axis but i created a custom code to store them in z-axis. How can i get the level of the item or the container if rackgetitemlevel gets only the y-axis and not the z - axis?

Are you able to give an example of your logic please even in my model that i posted ?

Thank you

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Andrea F commented ·
Before I look into your model, stacking is a result of content in a rack cell. You know only a rank of a container and content of a cell. This means a container is n-th item out of n in a cell.
1 Like 1 ·
Andrea F avatar image Andrea F Joerg Vogel commented ·

Sarner Holz Final Floor_1.fsm

So from what i understood i have to update the "Take Pallet from Rack" process especially the destination in "Travel to Rack" activity with a custom code getting the z-position through rackgetlevelofitem and the y-position through rackgetbayofitem . But How can i process this through both racks in order that the transporter travel to the rack where the item is stored?

Then in the "Compose Order by Operator" process i apply the Object product = container.last; logic in the "Load Panel activity"
0 Likes 0 ·
Show more comments