question

Theodore S avatar image
0 Likes"
Theodore S asked Ryan Clark commented

How to acquire one resource OR another in process flow

Hello,

I'm trying to make a model where three part types are made and then tested. I'm trying to run an experiment to see what would happen if a test stand was added that only ran type one parts. The tricky thing is that I want type one parts to be able to be run on the general test stands and the one that is specific to them. How should I go about doing this? FlexSim12.9.21.fsm

FlexSim 21.2.4
process flowacquire resource
flexsim12921.fsm (354.6 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 @Theodore S, was one of Felix Möhlmann's or Joerg Vogel'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 unaccept and comment back to reopen your question.

0 Likes 0 ·
Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered

Two ideas of how to achieve this in process flow:

1: If it is ok that there is a natural priority given to each of the resources you use multiple subsequent acquire activities with max wait times set. If no resource can be acquired the token is send to next one. If no resource is available in any of them, the token enters a wait for event activity, which listens to something becoming available in either resource and then has the token try again.

1639125794252.png

2: Use a list instead of resources and create tokens to serve as representation of the test stations that can be pushed/pulled to/from the list. This enables you to assign labels to these "station" tokens and use a query to pull tokens with a certain value only or ordered by it.

In the attached model I assign the label "Type" to the tokens, where a 1 means only part1 should use that "stationt" and 0 means any part can use it.

In the "Pull from List" for part1 I put "ORDER BY Type DESC" as the query to give priority to the stations that can only be used by part1 (ordering in descending order of the label - "1" will be pulled before "0"). For part2 (part3 would be the same) the query is "WHERE Type == 0", meaning it can only tokens with the type label value of 0.

https://docs.flexsim.com/en/21.2/ConnectingFlows/Lists/WorkingWithLists/

Afterwards I push the previously pulled token to the list again with a "Max Wait Time" of 0 and the "Keep on List on early Release" option activated, so the token continues immediately and doesn't have to wait for the value to get pulled again.

1639125811346.png

Note: Do not delete the "station"-tokens, instead keep them in a dead end somewhere, otherwise the references on the list will become invalid.

flexsim12921_1.fsm


1639125794252.png (18.0 KiB)
1639125811346.png (5.8 KiB)
flexsim12921-1.fsm (364.1 KiB)
5 |100000

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

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered

In 3D logic this would be a matter of order of output port connections to test stations and activating Pull specific Type in specialized test station. If you want to get an larger output by specialized test station the output port number to this object should be of a higher rank near to output port number one. I have no answer for Process Flow.

5 |100000

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