Picking processes

All topics specific to modeling questions in Enterprise Dynamics
fabian
Posts: 7
Joined: Thursday 14 June, 2012 - 08:38

Picking processes

Post by fabian »

Hello,

I would like to model a picking process in a warehouse (single order picking as well as multi order picking, but that's not relevant for now).

I don't achieve that an adv. transporter goes to Queue1, loads 1 product, goes to Queue2, loads 1 product, goes to Queue3, loads 1 product, then goes to Queue4 and unloads.

What atoms are needed to let him do so? Do you have a small example model available showing a picking process?

Thanks in advance,

Fabian
marlies
Posts: 301
Joined: Monday 17 January, 2011 - 09:28

Re: Picking processes

Post by marlies »

Hi Fabian,

You can do this by using the settings in the tab Load of the Advanced Transporter. See attached example model. Please check the following locations:

- In the exit trigger of the sources I assign a label Order to each product equal to the number of exited products of the source (all 1st products get Order number 1, the next Order 2 etc.)
- In the load settings of the transporter I use this label to determine which products will be loaded. The load quantity = 3. The load restriction is that all 3 products to be loaded need to have the same label value for the label with the name Order.

In this way the transporter will go to the different queues and load a product at each.

Regards, Marlies
Attachments
20120614_OrderPicking.mod
(53.51 KiB) Downloaded 293 times
fabian
Posts: 7
Joined: Thursday 14 June, 2012 - 08:38

Re: Picking processes

Post by fabian »

Thanks Marlies,

in the meanwhile I came up with the solution attached - not as clear as yours, but also working ;)

But let's stay with your exmaple: Let's assume load quantity was not 3 but 6, 3 from Queue1, 2 from Queue2 and 1 from Queue3 and I want him to pick the entire quantity per Queue at once and not go back and forth per product.
Do I have to assign this via load quantity setting at the transporter? What's the command?

Thanks again!!
Fabian
Attachments
node test - picking.mod
(45.88 KiB) Downloaded 264 times
fabian
Posts: 7
Joined: Thursday 14 June, 2012 - 08:38

Re: Picking processes

Post by fabian »

edit: it seems to me as if the dispatcher would have to let the transporter know to consolidate picking per queue?
marlies
Posts: 301
Joined: Monday 17 January, 2011 - 09:28

Re: Picking processes

Post by marlies »

Hi Fabian,

Yes, editing the parameters of the dispatcher is the right direction! I changed the example model a bit, to give you some more ideas how you could model this. I needed quite some 4Dscript to do this, hope that this is not a problem for understanding the model.

What I modeled is:
- I added an extra source and queue that is generating OrderLists with 6 lines. Please check the entrytrigger of the orderlist queue. You can double click the order atoms to find out the actual contents of the list.
- I added an initialize to initialize an important label on the transporter.
- I changed the entry and exittrigger of the transporter. The idea is: first pick up a list at the order list queue, then visit the other queues in the order that has been defined in the table of the orderlist. Set a label NextIc according to this list.
- The dispatchto of the dispatcher has been changed. It checks if the label QueueId of the product to be picked equals the NextIC label of the transporter.

I added comments in all the triggers to explain the functionality of the code.

Hope that this gives you a better idea how you can model the order picking!

Regards, Marlies
Attachments
20120614_OrderPicking1.mod
(68.31 KiB) Downloaded 296 times
fabian
Posts: 7
Joined: Thursday 14 June, 2012 - 08:38

Re: Picking processes

Post by fabian »

Thanks Marlies.

Isn't there an easier way to let the transporter distinguish different load quantities, e.g. using labels?

If you don't mind having a quick look at the model attached:

- I used labels assigned to the products by Queue2 and Queue4 to let the transporter know where to unload the products (Queue3 or Queue5), what works.

Isn't there a 4D Script expression that could use the same labels for load quantities?
If the label of the (first) product loaded is A, load 1, if the label is not A (=B), load 3, or something like that.

As you can see in the Load quantity setting I tried to solve it using a if-command, but that did not work.
Do you have any idea for that?

Thanks a lot for your strong support!

Fabian
Attachments
stapler4.mod
(21.07 KiB) Downloaded 257 times
fabian
Posts: 7
Joined: Thursday 14 June, 2012 - 08:38

Re: Picking processes

Post by fabian »

fabian wrote:
Isn't there an easier way to let the transporter distinguish different load quantities, e.g. using labels?
and also different load times :)
marlies
Posts: 301
Joined: Monday 17 January, 2011 - 09:28

Re: Picking processes

Post by marlies »

Hi Fabian,

Depends on what you want to achieve. I used the "complicated" way to make sure that the products will be loaded at different locations but in a predefined order. If you don't need that, it can be done easier.

I updated your model a little bit. Some remarks on the code:
* when you want to check on a label that contains text then you should use the command:

Code: Select all

CompareText(label([labelname],i), [A]) 
You did use this in the sendto statement, but not in the code to determine the load quantity. (NB. the commands ddb and label do the same).
* in the calculation of the load time and the laod quantity I made use of the reference i (involved atom) to refer to the loaded product.
* I defined a load restriction, saying that loaded products need to have the same label Text in label with name Label1
* As you will see Stapler4.mod the model gets blocked. This is because it needs to load 3 products which are not available yet.
* In stapler5.mod I solved this by adding a server in between the queues that batches 3 products and then releases them for the next queue. This is just 1 solution. You could achieve this control in several ways, but that will depend on what you need to model.

Hope this gives you some ideas to continue.

Regards, Marlies
Attachments
stapler5.mod
(23.23 KiB) Downloaded 293 times
stapler4.mod
(21.07 KiB) Downloaded 262 times
fabian
Posts: 7
Joined: Thursday 14 June, 2012 - 08:38

Re: Picking processes

Post by fabian »

Hi Marlies,

thanks to your great support I could already achieve a larger model.

One, hopefully final :P , question I have is:

Our operation times are 10 hours a day, but after 8 hours -for the last two hours of the day- we stop receiving parts as well as we stop picking but just process materials that are still in the process areas (to let the process areas clear a little bit for the next day). These process areas are "WE-Zone" (receiving area) as well as "Verpackung1_Mandant 128" and "Verpackung2_Mandant 302" (packaging areas). The storage itself is represented by "Regal 1-10".

To simulate, I would like the sources in the very top of the model to stop generating containers/products (like we stop taking in material) as well as to stop the Regale 1-10 to give products to the transporters (like we stop picking) every 8 hours for 2 hours. During these 2 hours, transporters should just transport processed material from the Materialbahnhofe 1-10 to the storage (if there is any material), as if Dispatcher would not use every in-channel during there 2 hours.

Is there any way to do so?

Thanks a lot in advance & have a great week,

Fabian
Attachments
tableau reference entwurf.xlsx
control panel for model file
(14.19 KiB) Downloaded 276 times
Gesamtmodelmittabelleverknuepfungen9.mod
(206.47 KiB) Downloaded 271 times
marlies
Posts: 301
Joined: Monday 17 January, 2011 - 09:28

Re: Picking processes

Post by marlies »

Hi Fabian,

You made a nice model so far!

Some remarks and suggestions:
- Instead of using sources, you could make use of the atom Arrivallist (can be found in the category Time). With this atom you can define arrivals with a specific time.
- Another option could be to change the sendto of the sources. I implemented this as an example. After 8 oclock, the products will be send to a sink.
- The queues can be controlled using an availability control (can be found in the category Availability). At 08:00 i set a label at the queues. In the exittrigger of the queues I check if the label is true. In that case I close the output of the queue.
- The initialize atom gives errors on reset. Apparantly there are some wrong names used.
- The model is getting a bit slow. I saw that you make a lot of use of the atombyname function. This function is rather slow (it compares names based on the text) and can be done easier. For example: the table atom has an option Create Alias. When you select that option the atom will generate a reference (refMastertabelle1) that you can use to refer to the atom directly. I implemented this as an example in your initialize atom, but it would be really good to replace the atombyname function in the transporters as well!! Please check the triggers of the control atom and the code in the initialize atom I added to find examples for quick referencing!

Regards, Marlies
Attachments
Gesamtmodelmittabelleverknuepfungen10.mod
(214.62 KiB) Downloaded 283 times
Post Reply