question

Kauan santos avatar image
0 Likes"
Kauan santos asked Jeanette F commented

How to use the same list for two outputs

Hello,

I have a simulation that I would like to be using a priority list, in this case in my source 1 I have 3 different types of products that each product goes to one side, I would like to create a list when my models enter processor31 and using the FIFO method in the same order that they entered processor 31, they exit processor30 and processor39. Just to make it clearer, processor31 ends up dividing the products into two parts, but at the front these products come together. The idea is to use a priority list so that the output is the same as the output.


1719497124577.png


arquivonovo.fsm

@Felix Möhlmann

FlexSim 23.1.0
proces flowlist pull from listfifo
1719497124577.png (510.3 KiB)
arquivonovo.fsm (8.7 MiB)
· 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.

Jeanette F avatar image Jeanette F ♦♦ commented ·

Hi @Kauan santos, was Vothan Salomão's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always comment back to reopen your question.

0 Likes 0 ·

1 Answer

Vothan Salomão avatar image
0 Likes"
Vothan Salomão answered Felix Möhlmann commented

Hello, Kauan! How are you? Reviewing your model, I noticed that you are using dispatchers to manage tasks. To achieve the desired outcome more efficiently, I recommend replacing the dispatchers with task sequences in ProcessFlow. This will make it easier to create a task list following a FIFO (First In, First Out) rule, ensuring that tasks are executed in the same order that products entered processor31.

You can then set up task executors to process the items following the order of the list, from oldest to newest. This approach ensures that even after the products are split into two different streams at processor31, the final products are reunited and exit the outputs in an organized manner and as they entered, maintaining consistency throughout the process. If you need more details on how to configure this in ProcessFlow or have any other questions, I'm here to help!


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

Apart from using Process Flow, you could also store the order of items in global variables as an array. Then activate the "Pull" behaviour on Processor 31 and 39 and set the requirement so that they can only pull the item at the front of the array.

You'd have one array for items on the left (pushed to the array when entering one of the processor that get fed by the TE) and one for items on the right. Then finally one more array that contains all items and is used by Processor62.

I wasn't sure what Processor61 is supposed to do (receives items from 39 but sends them nowhere), so I removed it do demonstrate the logic.

arquivonovo(1).fsm

0 Likes 0 ·
arquivonovo1.fsm (8.7 MiB)
Kauan santos avatar image Kauan santos Felix Möhlmann commented ·

Thank you very much for your help @Felix Möhlmann @Vothan Salomão , but I ended up having a few doubts. When I run the simulation I notice that at a certain point the processor39 crashes and I don't understand why this is happening. @Felix Möhlmann can you explain why?

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Kauan santos commented ·

The pull between the 'outer' and 'inner' processors also needs to be controlled more tightly. Currently the priority is governed by the port rankings, meaning when most inner processors are full, some never get pulled which then leads to a deadlock because the next item that 31 or 39 would need to pull are still stuck in the inner processors.

I switched the pull logic to use a list instead so the outer processors always pull the longest waiting eligible item.

arquivonovo2.fsm

0 Likes 0 ·
arquivonovo2.fsm (8.7 MiB)