question

mary avatar image
0 Likes"
mary asked Jason Lightfoot commented

Control buffer

Hi everyone,

I have a model where there are 3 series of Queue(Queue1_series,Queue2_series and Queue3_series). whenever a part enter in Queue3_1 I am creating its parts in Queue3_1 series. Ex. Part P1 enter it create 3 parts in its Queue3_series and move to next buffer same with all parts. I want control the buffer when one part is present in 1 series of Queue other part should not mix up. it has to wait with its part.

when P1 part enter in Queue3_1 it should create its respective part and move to Queue2_series to Queue1_series and to Processors if available with it part. When next part enter Queue3_1 it again create part. If the processor available process or wait in Queue1_series or if Queue1_series has part already wait in Queue2_series if Queue2_series part there wait in Queue3_series so on. The part should go in sequence not mix up.

Note: P1 create its part in Queue3_2,Queue3_3 and Queue3_4. P2 create its part in Queue3_2 and Queue3_4. P3 creates its part in only Queue3_4.

control buffer.fsm


FlexSim 20.0.10
task sequencebuffer
control-buffer.fsm (33.1 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·
As a student, making your post private once you have an answer seems wrong - can you explain your purpose in doing this?
0 Likes 0 ·

1 Answer

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

You can expand the example model I posted on your other question to loop through the same logic multiple times until the item arrives at the processor.

buffer1_3.fsm

The differences to the previous model are as follows:

- The process flow resource now refers to a group that the contains Queue1_1, Queue2_1 and Processor1 (the objects the "main" item moves to). Before the parent token acquires a resource, a label is set to determine which object it has to acquire. This is always the next downstream object ("item.up.outObjects[1]").

1666873541994.png

1666873554752.png

- After it has pulled the object and moved to it by opening its input, we then check if the token has acquired more than one resource. If this is the case, the oldest one is released, so the next batch of items can move up to the previous row of queues.

- Afterwards both the parent token and its child tokens check whether the respective item is now inside a processor. I do this by checking if the name of the item's container includes "Processor". If not, the tokens loop back to acquire the next row. If it is on a processor, it continues to the Batch activity as before.

1666873728705.png

All queues except for the Queue3s also need the On Entry and On Reset triggers that close their inputs.


1666873541994.png (8.5 KiB)
1666873554752.png (2.8 KiB)
1666873728705.png (59.9 KiB)
buffer1-3.fsm (47.2 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.

mary avatar image mary commented ·

@Felix Möhlmann I tried but it is not moving to second buffer can you look into this.

sample.fsm

0 Likes 0 ·
sample.fsm (46.4 KiB)
Felix Möhlmann avatar image Felix Möhlmann mary commented ·

You have to switch the Release activity inside the loop to "First acquired", so the token releases the previous queue, not the one it just moved to.

1666949340975.png

0 Likes 0 ·
1666949340975.png (14.6 KiB)