question

harish.varma avatar image
0 Likes"
harish.varma asked Aditya Ganesh Kamath commented

How to perform batching using combiner for several itemtype's, quantities and batch sizes?

Arrival Sequence:

Part Name ItemType Quantity BatchSize

aa 1 6 2

bb 2 8 5

cc 3 30 6

Items are sent to the combiner based on arrival sequence. First, 2 items of type1 are sent to the combiner, are batched and sent to the upstream processor. Quantity column get updated to 4. This process repeats until the quantity column for type1 reaches zero. Next, 5 items of type2 are sent to the combiner, are batched and sent to the upstream processor. Quantity column get updated to 3. Since, for the next step to occur, 5 items of type2 are required for batching, but are not available (Quantity has only 3 items), So only 3 items of type2 will be sent for batching. Quantity column gets updated to zero. Now, 6 items of type3 are sent to the combiner, are batched and sent to the upstream processor. Quantity column get updated to 24. This process repeats until the quantity column for type3 reaches zero.

Please help me simulate the scenario. When I use the combiner, batching does not occur as desired.

Thanks.

FlexSim 7.7.4
combinerbatcharrival sequence
· 1
5 |100000

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

harish.varma avatar image harish.varma commented ·

Arrival Sequence Table:

0 Likes 0 ·
capture.jpg (16.1 KiB)
Regan Blackett avatar image
2 Likes"
Regan Blackett answered Brenton King commented

For very intricate and custom combine operations like this, I feel it is easiest to tackle them with the ProcessFlow tools (requires v7.7 or later). The parts of this scenario that are tricky is making sure the combiner pulls the right things, in the right order and the right quantity; something the standard combiner object has a hard time, which (without some heavy code writing) really wants to pull a fixed number of things from wherever it can as soon as they become available. ProcessFlow in conjunction with the new List feature gives us a little more control over this sort of thing. In my attached model I've tried to replicate your scenario, give it a look and let me know in the comments if this is what you had in mind.

In my attached model, I have objects that do pretty standard behaviors (Queues, Sources, etc) but my Custom Combiner object isn't a Combiner at all; it's a Shape object that I will cause to be the location for all my combining operations. It's logic will actually be controlled by a series of Process Flow activities.

Queue4 is adding the flowitems it receives to a List and organizes them by itemtype (Partitions).

I start by creating a Process Flow Token when my Pallet source creates a pallet. The Token gives me a logical entity that I can send through Process Flow activities to control the Combining.

I create a label on the token that lets me know if it should be pulling types 1, 2, or 3. Once the pallet is in my "Combiner" I do a Pull from list where I am looking for the 'Request Number' of flowitems based on what type I'm looking for in the sequence.

If my sequence label says to pull type 1, my Require Number will be 2. The 'Require Number' here is a minimum amount the Pull will accept if the 'Reqjuest Number' can't be met. I've also told the Pull to use a Maximum Wait Time, where I've put in that there is No Waiting time (zero time), which means if the needed components for the Pull are not present in the Queue then give up on trying to Pull.

Giving up on the Pull is my signal that we must need to move on to the next type int he sequence, so if I can't pull rather than going to the processor for a process time, increment my sequence label and try to pull again using the new type. Basically it does that over and over until it's pulled everything out of the queue.

After each pull you will notice I move the pallet out to the processor and send it back to the combiner for the next round of flowitems for each sequence. This lets me make sure the Combiner is still assigned to the pallet until it's totally packed.


custom-combiner.fsm (30.1 KiB)
· 1
5 |100000

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

Brenton King avatar image Brenton King ♦ commented ·

Great model Regan! This is exactly how I would have tackled this problem.

@harish.varma, if this is difficult to understand, please ask more questions and we will try our best to help explain more. This is an advanced concept but very powerful if you can wrap your head around it :)

0 Likes 0 ·
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Aditya Ganesh Kamath commented

The Combiner is a specialized object with one flaw. The first item has to be from port one the other batched items are coming from higher ports. The pulling is a suitable approach. I would place a queue in front of the combiner and connect the combiner with two object connections from it. The batching is depending on your recipe. The Components List contains the total amounts of the current recipe minus one, because the tote or palett item is coming through port one and doesn't belong to the batched items component list. In the Pull requirement I write the logic to fetch items which are in the recipe. If the tested item match the recipe I pull that item with return 1 otherwise with return 0 - standing for not to pull. The pull requirement tests every receivable item from the input ports. Return 1 stands for the tested item is a correct item to pull. Better would be to call this as return true.

But it is necessary not to test only the matching of items in the order of the recipe list. You have to pull at every test cycle all possible items left on the list, because when all receivable items are tested, they won't tested again until an item enters the queue again. Therefor you have to update a list or table which contains the items left to pull and use this in the pull requirement.

The exchange of the recipe is a method you find in the pick list template "update Combiner Component List".

· 1
5 |100000

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

Aditya Ganesh Kamath avatar image Aditya Ganesh Kamath commented ·

Could you please post an example of the code you would write in the Pull section?

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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