question

Sheng_xin W avatar image
0 Likes"
Sheng_xin W asked Sheng_xin W commented

time-triggered process

I want my model to execute process flow every 5 seconds,

the current situation is the triggered when an object enters Queue 8,

I hope it can be modified to re-execute process flow every 5 seconds,

at present,I have tried sub-process and inter-arrival source without success,

attach the process flow and files I want to execute.

Thank for any help!

0627.fsm

1687872904078.png


FlexSim 20.0.10
repeated executiontime execute
1687872904078.png (41.1 KiB)
0627.fsm (76.2 KiB)
· 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.

Natalie White avatar image Natalie White commented ·
@Sheng_xin W, can you please clarify your question? Inter-arrival source should work fine. Why is that not working for you?

Also, do your tokens represent flowitems? Do you want to have flow items enter the queue every 5 seconds and create a token for each flowitem?

0 Likes 0 ·
Sheng_xin W avatar image Sheng_xin W Natalie White commented ·

Perhaps it's because I am generating tokens as the source in the 3D model, rather than within the process flow, which may be why it's not successful. However, it could also be due to incorrect settings on my part.


My goal is to initiate the process when an object enters queue8, allowing the object to acquire the NPI/PI label, and continue the process until all objects are processed. However, the current issue is that when there are no objects entering queue8, but there are still unfinished objects, the execution stops.

Thanks for your response !

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann commented ·
The process flow is currently being run through every 5s for each item until the tokens reach the lowest block that has no output connection. So it seems like it is already doing what you are asking.

Can you provide more detail in what way it should work differently?

0 Likes 0 ·
Sheng_xin W avatar image Sheng_xin W Felix Möhlmann commented ·

I wish for it to continue the process until all objects reach the endpoint (when all objects flow into the final queue), rather than pausing the execution when no objects are inputted. Currently, it seems that the process is triggered only when an object enters queue8.


Thank you very much for your response.

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Sheng_xin W commented ·

I still don't quite understand what your goal is:

Your descriptions sounds like the process flow should be executed once every 5s. But the calculation uses the DD label on the items.

So should it run only one instance or once for every item?

0 Likes 0 ·
Show more comments

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Sheng_xin W commented

The table updating or not has nothing to do with there being items in Queue8 or not. The Decide activities in your Process Flow send the tokens to the activities that update the table only if NP1/2/3 is less than 1.

As there is no connection back to the start from the lowest block, the tokens will be stuck there as soon as NP3 falls below 1. The fact that this happens for all tokens around the same time Queue8 becomes empty is coincidence.

1687937525530.png

To keep the tokens looping, add a connection back to the top. To stop the loop when an item enters one of the final queues, you could set a label on the item in the exit trigger of processor3. Based on that label the tokens are either send back to the top or to a sink.

0627_fm.fsm

Note that running this process flow every five seconds for more than 500 tokens at a time will severely slow down your model. Hence why I asked if having a token for each item is actually correct.


1687937525530.png (29.3 KiB)
0627-fm.fsm (77.9 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.

Sheng_xin W avatar image Sheng_xin W commented ·

Yes, running a large number of tokens every 5 seconds is my desired condition.

Thank you very much for providing me with this method. I didn't think of adding commands behind it to fulfill the condition.

Thank you for your suggestion!

0 Likes 0 ·