question

Steven Chen avatar image
0 Likes"
Steven Chen asked Patrick Cloutier commented

Stacking rule of rack

Hello,

I have one question and one wish about rack.

My question is how to pull items from rack only if desired amount of item is stored in rack. For example, a combiner is collecting 5 type-A items and 3 type-B items. The rack won't release items until all the 8 items are arrived at rack.

In attached model, I build a rack stacking logic using processflow and list. There are two types of items, type-A goes level 1~4, type-B goes level 5~10 and places at bay by order. I found it is easier to build logic with processflow and with the power of list. But it's hard to reuse the processflow code, because the general processflow links to queue1 and rack1 directly. I hope there will be a new event for rack like "OnChoosingCell" and the event function returns bay and level for incoming item to tell it where to place, if there is no proper cell for the item then the item should hold at upstream. So I can use the new event in fixed-resource processflow in order to reuse the logic.

rack-place-rule-en.fsm

FlexSim 18.2.0
FlexSim 18.2.2
processflowracklist
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

Patrick Cloutier avatar image
0 Likes"
Patrick Cloutier answered Patrick Cloutier commented

I seem to understand that you want to have many queues and many racks. If so, you could make the ProcessFlow more generic by listening to a group of queues instead of just queue1 (in Item Enter Queue1). And also, at the bottom of Item Enter Queue assign the name of the entering queue to a label with Assign Event Object to. You could also, at the same place, assign the name of the destination rack to a label.

Then you will need to have a field in your list which specifies which rack you want to pull from when you Pull From List. I'm honestly not too familiar with this part though.

Also, about your need for a "OnChoosingCell" trigger, you could put this logic either in the TriggerOnExit of the preceeding Queue or in the PlaceInBay/PlaceInLevel code of the rack itself.

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

Steven Chen avatar image Steven Chen commented ·

Thanks for your reply.

Queue group is good to solve my question.

Event PlaceInBay/PlaceInLevel are too late for executing the process flow and they only decide bay or level at one time and when the events happened it's no way to stop item from entering (if the condition is not satisfied). Seems OnExit of queue is the only way currently.

My first question is some kind like "batch pull", I tried to implement it by several pull-lists and wait timer. But the 1 second timer slows the model too much. I wonder whether there is a better solution?

batch-pull.fsm

0 Likes 0 ·
batch-pull.fsm (24.4 KiB)
Patrick Cloutier avatar image Patrick Cloutier Steven Chen commented ·

Not sure I understand what the model is doing wrong. If I remove the Max Wait Timer, the model behaves exactly the same as it does now. So do you need to repeat the loop or could you just wait?

What if the items don't arrive in Queue1 in sequence Type 1-2-3, then that logic won't work because it will be stuck in the loop.

I think instead of having the 3 pulls in series (one after the other), they should be in parallel so that they can be done independently of each other or in any order. Then after the 3 pulls, you need to wait for all 3 to be done to move items.

Also instead of having a timer you could be listening to items entering queue1 (Event-triggered Source).

I will try to prepare a model showing that.

0 Likes 0 ·
Patrick Cloutier avatar image Patrick Cloutier Steven Chen commented ·

Here is a model that does exactly the same thing in another way.

16570-batch-pull-no-list.fsm

0 Likes 0 ·