question

Steven C7 avatar image
0 Likes"
Steven C7 asked Steven C7 answered

Feedback of multiprocessor

I just started using FlexSim, and I'd like to model a simulation of flowitems that pass through a number of processes. Under the multiprocessor "Layout_Tack", upon process finish, a label is assigned to the flowitem depending on the global table "Probability". If the flowitem has a label of 1, it is sent to the sink, otherwise it is sent to the processor "Remove_Tack".

Realistically, the "Remove_Tack" process should be part of the multiprocessor "Layout_Tack" as a third process, since they all occur at the same work station. However, is there a way to specify that after a flowitem goes through the first two processes of the multiprocessor, assign a label upon process finish at that point, and continue to either the third process within the multiprocessor or send to the sink? If the flowitem goes through the third process, then it must go back to the first process again afterwards, continue until it is assigned a label that directs it to the sink. While that is ongoing, the multiprocessor "Measure_Cut" should not send any flowitem downstream.

I hope my question is clear!

probability-feedback.fsm

FlexSim 19.2.2
multiprocessorfeedback
· 4
5 |100000

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

Joerg Vogel avatar image Joerg Vogel commented ·

Your approach works, doesn't it? If you need it often in a larger model, then you can put all involved objects into plane as container and add this container as an user object into a user library. Then you can drag it into your model. I think that it isn't useful to enhance a single object with source code or process flow logic just to keep the number of objects low. If a structure of some objects results in the desired behavior, then use them. If you don't like the visual look, then place another object over the structure and hide several objects inside.

0 Likes 0 ·
Steven C7 avatar image Steven C7 Joerg Vogel commented ·

Thanks for your response @Jörg Vogel! Your suggestion of adding the involved objects into a user library is extremely helpful, as I plan to expand into a larger model later on. However, the current problem I'm trying to solve is that I want to restrict the flow of Measure_Cut items downstream to Layout_Tack if items are being processed in Remove_Tack. I'll try to write out my logic as follows:

Upon process finish in the Layout_Tack multiprocessor, if the Compliant label generated is 2, then Layout_Tack multiprocessor input port 1 should be closed, so it is forced to wait for item being processed in the Remove_Tack activity, as opposed to also accepting item from Measure_Cut in the mean time.

I hope that clarifies my question!

0 Likes 0 ·
Steven C7 avatar image Steven C7 Steven C7 commented ·

I did some more thinking, a solution that I think might work is for the Layout_Tack multiprocessor, under the pull strategy set a conditional port, so that it pulls from port 1 if the output value from inobject in port 1 (Measure_Cut) equals to the input value from outobject in port 1 (Sink1). This way, when an item is going through the feedback loop between Layout_Tack and Remove_Tack, the item is forced to wait in Measure_Cut. Let me know if you think the logic makes sense, and how to best implement it.

0 Likes 0 ·
Show more comments

1 Answer

Steven C7 avatar image
0 Likes"
Steven C7 answered

Issue resolved.

5 |100000

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