question

Santhosh C avatar image
0 Likes"
Santhosh C asked Ryan Clark commented

Process multiple operation in a processor

Hi can someone guide me how to build a model with

1) 2 processors which performs operation 10 and operation 20 on a part (operation 20 is finished part)

2) 2qty of OP 10 tote and 2qty of OP20 tote are available. Part with its respective tote will be loaded to the processor by an AGV (OP10 quote should only be packed with OP10 part and OP20 tote should only be packed with OP20 part)

3) Condition: OP 20 fixture with part should always be sent to the processor whichever performed the OP 10 for that part.

I have tried to build a simple model and attached to this thread. Could someone help me to add the above mentioned logicSample model.fsm

FlexSim 22.0.0
multiple operarations in processor
sample-model.fsm (36.0 KiB)
· 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.

Ryan Clark avatar image Ryan Clark commented ·

Hi @Santhosh C, was Jeanette F'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 unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Jeanette F avatar image
0 Likes"
Jeanette F answered Jeanette F commented

Hello @Santhosh C,

To begin, I changed the input ports for the combiner so that the tote was being used to pack the box and not vice versa. The first input of a combiner should be the container.

Next I created process flow logic to control the flow of boxes to the combiner so that the box that was sent to the combiner had the same Type as the tote. The combiner will always accept a tote first so once this happens a token is created. The token will then look at the available boxes and pull the box with the same Type as the tote. The item is then moved to the queue that the combiner accepts boxes from.

1642629628847.png

I added a label to the totes called ProcessFinished that's purpose is to track how many times the tote and item have been processed. This label is incremented by the processor. The queue that receives items that have exited the processor will look at this label to decide to send it to the queue to be processed again or to the separator.

1642630058939.png

I also added in the AGV basic process flow template and logic. If you are unfamiliar with that please check out this resourceful YouTube video.

It is possible that I missed explaining something that I changed in your model. If you have questions about something that I changed, please let me know.

sample-model_2.fsm


1642629628847.png (13.0 KiB)
1642630058939.png (116.3 KiB)
sample-model-2.fsm (60.8 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.

Santhosh C avatar image Santhosh C commented ·

Hi @Jeanette F thank you. This is almost close to what I asked for. Can you modify the flow so that that all the boxes with tote come to the separator no matter partially/ finished part, and then the separator will decide to send the finished part to sink and partially finished part(OP10 completed) back to the same processor when it completed OP10 through combiner with the type 2 tote? Currently, in the model, you provide the box with a tote that goes directly from the outgoing queue(queue 7) to the incoming queue(queue 1) or outgoing queue(queue 9) to the incoming queue(queue 8) without coming back to separator and combiner.

0 Likes 0 ·
Jeanette F avatar image Jeanette F ♦♦ Santhosh C commented ·

Hello @Santhosh C,

Thank you for your patience.

I see where what I misunderstood. Thank you for clarifying. I had to recreate the model because the previous one started to act buggy and I couldn't figure out why.

In the following model the boxes have a label called CurrentProcess which keeps track of what Process they are currently in route to complete. This label is used to match up the box with the tote and by the separator when deciding if the box is finished or not. The totes have a label called Process which is the process that tote is used for and as previously mentioned matched up with the label on the box it contains. The totes also are assigned one other label called processor after the OP10 processing. This label is used by the combiner to decide where the box needs to go.

I created custom code on the combiner send to port.

Object item = param(1);
Object current = ownerobject(c);
/**Previously Used or Shortest Queue if Available*/
/**Send to the port corresponding to the shortest queue downstream that is available.*/

treenode tempobject;
int curmincontent =  1000000000; // this sets the integer to the largest possible value that an integer can hold.
double curminindex = 0;
Object ItemInTote = item.subnodes[1];
string Processor1 = Model.find("Processor1").name;

if (objectexists(ItemInTote.attrs.labels.subnodes["Processor"])){
string AssignedProcessor = ItemInTote.Processor;
if(AssignedProcessor == Processor1){
return 1;
}
else{
return 2;
}
}
for (int index = 1; index <= current.outObjects.length; index++) {
   tempobject = current.outObjects[index];
   if (opavailable(current,index) && tempobject.subnodes.length < curmincontent) {
curmincontent = tempobject.subnodes.length;
curminindex = index;
   }
}

return curminindex ;

Model_JF.fsm

Please review the model for other small changes to the process flow and labels. Please let me know if you have questions or if something needs to be revised.

0 Likes 0 ·
model-jf.fsm (61.0 KiB)