question

Max U avatar image
0 Likes"
Max U asked Felix Möhlmann commented

Combine item by sequence or item name

Hello,

I want to combine a main part with a sub part (sub part 1 or sub part 2). The usage of one of the subparts depends on the sequence number or the item name (both are distinct and given in the source). Now I want to combine the main part with the right sub part in the right sequence. Test_Combiner.fsm

FlexSim 19.1.2
combinersequenceitem matchingitem name
test-combiner.fsm (20.8 KiB)
5 |100000

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

Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Felix Möhlmann commented

The entry trigger of the combiner offers the 'Update Combiner Component List' option. In it, you specify a table that holds information how many items from input port (2-N) (rows in the table) the combiner should receive depending on the 'Type' label of the container item (columns in table).

So you would have to copy/rename the 'Sequence' to 'Type' and define the table as needed.

test-combiner_1.fsm


test-combiner-1.fsm (287.7 KiB)
· 2
5 |100000

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

Max U avatar image Max U commented ·
Thanks for your help! This is a possible solution for me. Is there a possibility to solve the problem more smooth (in my full model I have about 20 combiners)? e.g. combine orders with matching item names.
0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Max U commented ·

That is possible, though I would use an instanced process flow to model the functionality and use a queue as a stand-in for the combiner. This ends up being easier than trying to work around the requirements of the combiner, in my opinion.

The main parts (pallets) are still just send to the combiner queue (cq) as before. The max. content of the cq is set to 1. The other queues don't send their items directly to an object but push them to a global list instead. The output connections are used to reference the cq as the list partition. That way the cq can later only pull from connected queues.

The list is set up with a 'name' field that simply returns the name of the value that is pushed to the list (item).

1652947874757.png

The process flow reacts to a pallet entering the cq. It then pulls the item with the matching name from the global list, moves it into the pallets and waits for a pre-determined process time. Afterwards the output of the cq is opened and the pallet can leave.

The output is closed again in the 'On Exit' trigger of the cq (in addition to closing it 'On Reset', so it's closed when the model starts).

1652947807364.png

You can link as many of these combiner queues to the process flow as you want. They will all run the same logic.

1652947885369.png

custom_combiner_fm.fsm

0 Likes 0 ·
Max U avatar image
0 Likes"
Max U answered Felix Möhlmann commented

Thanks! That looks a lot better. But now it is not possible to assign one or sometimes two different subparts to the main part or did I miss anything?

· 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.

Felix Möhlmann avatar image Felix Möhlmann commented ·

The token has a reference to the main part (pallet) through 'token.pallet'. If the information which parts should be added is available as a label on the pallet you can customize the logic to pull more than one item or based on different criteria than the name.

For example the quantity of pulled could be given directly as a label on the item.

1653028089656.png

If you haven't worked with lists before, I'd suggest you have a look at the tutorial about them.

https://docs.flexsim.com/en/19.1/Tutorials/ProcessFlow/Tutorial1UsingSharedAssets/1-1UseListResource/1-1UseListResource.html

1 Like 1 ·
1653028089656.png (24.8 KiB)