question

AmyTsai avatar image
0 Likes"
AmyTsai asked Felix Möhlmann commented

Managing Queue Overflow in a Job Shop Model

Hallo, I’m working on a Job Shop model where each product has its own specified batch size. In my model, products wait in the control flow until they reach their specified batch size. Once the batch size is met, the products move to the station_queue to wait for processing. For example, Product ELM100 can be processed at Stations 1, 2, and 3. However, the queue for Station 1 (station1_queue1) has a maximum capacity of 100 products. If station1_queue1 reaches its limit, I want Product ELM100 to automatically move to the queue for Station 4 (station4_queue1), as it can also be processed there.

Is this behavior possible to configure in FlexSim? If so, could you provide guidance or best practices on how to set this up?

Thank you for your insights and assistance! Jobshop Experimenter 23 SC1 Testing.fsm

FlexSim 22.1.4
queue logicqueu startegyqueuing system
· 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 @AmyTsai, was Felix Möhlmann's answers helpful? If so, please click the "Accept" button at the bottom of the one that best answers your question. 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 ·
Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered

I would suggest to use a list to distribute the batches among the queues/processors. You will need to store the information which queue can accept what types somewhere. In the attached model this was done in the form of a global table.

Add the queues as the initial content of a global list. In Process Flow, batched tokens pull a queue with enough free capacity to fit the batch from the valid ones. If no queue can be pulled, the token waits until an item exits a queue and then tries again.

item-distribution.fsm

Be aware, if different batch sizes use the same queue, this can lead to the issue of smaller batches getting moved first, blocking larger ones that came first from advancing, if a backlog develops. This can be solved by not allowing tokens that share a potential station with a waiting token to advance to the pull activity until the waiting token pulled a queue (essentially enforcing a FIFO order for the batches that use the same station).


5 |100000

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

AmyTsai avatar image
0 Likes"
AmyTsai answered Felix Möhlmann commented

I sincerely apologize for any misunderstanding earlier. As shown in the FlexSim file I shared, the model I’ve built is a Job Shop model with 34 parts. Each part follows its own predefined process route, specified in the router table. The cycle time for each process is also defined individually for each part in the time table. Additionally, the batch size for each product is determined using the batch size table.

For example, if we refer to the router table, the first product, ELM100R, has four process routes that can go to stations 9, 10, 14, or 30. My question is: For the first process at Station 9, the Station9_Queue1 serves as the queue where products wait for processing at Station 9, with a maximum capacity of 100 units. If ELM100R enters the first process at Station 9 and the Station9_Queue1 is already full (100 units), can the first process for ELM100R be reallocated to Station 3 or 4 instead?

I’d like to know if this logic can be applied to all products and processes in the model. If so, how can this be implemented?

Thank you for your guidance and support! Jobshop Experimenter 23 SC1 Testing.fsm


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

I don't really see the difference between this and what I provided in the example model. You can order the processors by priority when pulling, so the items would go to the default destination as long as there is space.

In the modified example below I have different values in the "TypesByStation" table, with higher value meaning that the station would be preferred over others. See the pull query that now orders by the "Valid" expression.

You would have one of these tables for each process the items have to go through.

item-distribution-2.fsm

0 Likes 0 ·
AmyTsai avatar image AmyTsai Felix Möhlmann commented ·

Thank you so much for your detailed explanation and the example you provided. I truly appreciate your time and effort in helping me with this.

Since I’m still learning FlexSim and finding it challenging to understand how to implement this in my model. Would it be possible for you to help me apply this method directly to the model I shared? I believe seeing it applied to my specific model would greatly help me learn and understand the process better.

Thank you again for your patience and support!

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann AmyTsai commented ·

Well, no, since I don't know what alternative processor can be used for each step or even know what all numbers in the Router table are supposed to represent (I see 16 stations in the model, yet numbers that are larger than that in the routing table.

I modified the example a little more to fit better with the framework you already have. It now also contains a Router table. Each entry is an array that denotes which stations the respective step can take place on. The order in the array determines the priority with which the station should be used.

1736763618395.png

As long as the entry for the next step is not empty, the item returns to the initial queue after processing. The batch activity thus now batches by both type and step. (When you enter an array into the "Group By" field you will get an error. But you can ignore that, arrays work fine as group identifiers.)

item-distribution-3.fsm

0 Likes 0 ·
Show more comments