Batching Combiner items by order and length range: 3D model logic or Process Flow?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
I would like to ask about an evolution of the model I have been developing with Combiners to form pallets. In the following link you will find more context about the model, and I am also attaching the latest version of it.
Best practice for combiner output logic and incomplete pallets at end of production
At this point, I have already solved two previous issues:
- In the FloorStorage before the Combiners, I modified the Send To Port logic to send the pieces in blocks of the batch size. This way, the operator finishes completing one batch in a Combiner before switching to the next one.
- In the Combiner On Entry trigger, I added logic to handle the last partial pallet when the total number of pieces is not a multiple of the configured batch size. In that case, when the last piece enters, I dynamically modify the Combiner `Target Quantity` so that the partial pallet can be released.
Now I would like to add two new criteria to the pallet formation logic.
The pieces can belong to different orders. In my current model I have three orders, but in the real model there could be more or fewer. Also, the pieces do not necessarily arrive grouped by order; they may arrive at the previous FloorStorage in a mixed sequence. Therefore, the logic should be dynamic and should not depend on a fixed number of orders or specific order reference values.
The new logic would be that a pallet can only contain compatible pieces according to these two criteria:
- same order
- same length range.
At the moment, I have defined three length ranges:
- up to 3000 mm
- from 3000 to 6000 mm
- from 6000 to 12000 mm.
Therefore, if a pallet is being formed for a specific order and length range, pieces from another order or another length range should not be mixed into that pallet.
My main question is how to structure the control strategy for this grouping logic. Until now, the batching logic was relatively simple, because I only needed to group by quantity. But after adding order and length range as criteria, I understand that I first need to identify which pieces are compatible with each other before sending them to the Combiner.
Also, the logic for the last partial pallet would need to evolve. It would no longer be enough to detect the last global piece of the production run. Instead, I would need to detect the last piece of each order and length-range combination. That piece would then be the one that informs the Combiner that it should modify the `Target Quantity` to close the last partial pallet for that group.
The logic I imagine would be something like this:
- identify pieces by order and length range
- form batches only with compatible pieces
- do not switch to another Combiner until the assigned batch is completed
- detect the last partial batch for each order/length range combination
- dynamically modify the Combiner `Target Quantity` when the last piece of that group enters.
My question is whether this level of control is still reasonable to solve inside the 3D model, using labels, triggers, Send To Port, Pull Requirements, etc., even if it requires more code, or whether this type of batch formation logic would be more suitable for Process Flow.
I am not necessarily looking for the simplest solution, but rather trying to understand whether it is technically viable and maintainable to keep evolving this logic inside the 3D model, or whether it would be more appropriate to separate the batch formation logic and manage it through Process Flow.
Thanks in advance for any guidance.