question

Ramesh Yadav avatar image
0 Likes"
Ramesh Yadav asked Eric M commented

How to give priority for rework part and use different process times in processor

reworkpriority.fsmI am a Student and just started learning flexsim. I want to create 4 items (20%, 30% 40% 10%) distrubuted, these items will be created and wait in queue1 and follow each type processor(item 1 to processor 1) then they will again waits in queue2, after testing only 90% will be send to sink and remaining 10 will be send back to queue1 for rework. Rework part needs to given preference over others in queue. and Processor will take uniform (100, 120) sec for normal part and Uniform (120, 130) sec for rework parts.

Please help me whether I Have created this model right? Please give me your valuable suggestions.

FlexSim 7.5.4
processorreworkprocess time by caserank in queue
reworkpriority.fsm (17.4 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.

1 Answer

Adrian Haws avatar image
0 Likes"
Adrian Haws answered Eric M commented

Ramesh,

Your model looks great. There are just a couple small changes that you need to make for your model's logic to work correctly.

In the "Process Time" for each processor, you have chosen the option for "Values By Case", which works for what you're trying to do. However, instead of calling the case getlabelnum(current, "l==1") you would want to use something like getlabelnum(item, "l") == 1. The parameter value "current" refers to the processor itself, not the item in the processor.

Another thing worth mentioning is that you are actually setting a label "I" to be equal to 1 for all items (in the FlowItem Bin), and incrementing that label value to a 2 for rework items. Either you will want to only set that label on rework items and make it a 1 or you'll need to change the case value above to be getlabelnum(item, "l") == 2, since that's the label value on the items that need rework.

One last thing to consider is that there is a chance for that 10% of items that needed rework to be sent back a second time for more rework. One thing you can do to prevent this is to change the "Sent to Port" option in Queue8 to be "Port By Case". Then set the case to be getlabel(item, "I"), then Case 1 for Port 1 and Case 2 for Port 2 (that is, if your label value for rework items is still 2). Then add a connection from Queue8 to a new processor with the same process time as Processor9, and connect the new processor to the Sink.

· 6
5 |100000

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

Ramesh Yadav avatar image Ramesh Yadav commented ·

Adrian sir,

Thanks for your suggestion. Actually I have a doubt here, I want processor should use uniform(100,120) sec for normal parts and suppose its rework part then it should use uniform(120,130).

So I used values by case here. Now if I will make getlabelnum(item,"l")==1 as a default case, and for this use uniform(100,120) sec in 1 case. and in second case uniform(120,130). Whether my logic is correct in this case. Whether the program identifies that its rework part and it should use uniform(120,130) sec there.

0 Likes 0 ·
Adrian Haws avatar image Adrian Haws Ramesh Yadav commented ·

@Ramesh Yadav

There are a couple options to execute this logic. First, you can make it so that unless there is a specific label value the default process time will be utilized. This option can also be used if you only set the label on the rework items (if you do that and set it to 1, then you would replace the 2 with a 1 in the Case Function).

The second option would only work if you have the "I" label on all items and set it to 2 for rework items. You can just have it look at the label value. If the label value for "I" is 1, then Case 1 will be executed. If the value is 2, then Case 2 will be executed.

1 Like 1 ·
Ramesh Yadav avatar image Ramesh Yadav Adrian Haws commented ·

Thanks Adrian sir, now model is working fine. Its really good to know second way. It will help me in future also.

I have also incorporated "port by case" logic after Queue so that rework part wont go back again for rework in queue.

Thank you.

0 Likes 0 ·
Show more comments
Eva R2 avatar image Eva R2 commented ·
Hi. I am working on a similar concept and was wondering how the reworked items then become priority back in queue 1. I would like the reworked items to be processed first (in my case, by any operator) and I am not sure how to make that happen.
0 Likes 0 ·
Eric M avatar image Eric M Eva R2 commented ·
HI @Eva R2 good question. It's generally best on this answers site to post a new question so we can get more specific information about your model and version and things (although looking for solutions in previous questions is great!). Would you mind posting a new question describing what you're wanting to accomplish? Thanks!
0 Likes 0 ·