question

Adrian M avatar image
0 Likes"
Adrian M asked Adrian M commented

How to Load, Process, then Unload per each station?

Hello,

I'd like to have my operator load the object then unload the object onto the station and process the object. Once the object has been processed, I would like the same operator who loaded, processed, and unloaded the object onto the station to load the object and unload the object onto the queue.

All these steps need to be completed with the same operator:

1. Load

2. Unload

3. Use Processor and complete the Process Time defined (while being used the state needs to indicate processing and when it is not used the state needs to indicate idle or equivalent)

4. Load

5. Unload onto the queue

Operator Load Process and Unload.fsm

FlexSim 23.0.2
logicprocesstimeprocess
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

Regan Blackett avatar image
1 Like"
Regan Blackett answered Adrian M commented

If I am understanding the behavior you want correctly, I would treat the whole process of traveling, loading, unloading, and processing as one complete task sequence rather than trying to break it up into multiple task sequences as you are now. I think you can also do away with the List to keep track of your items, as the Batch activity can do that for you instead. This might help reduce some of the complexity.

Changes I would make:

  1. Uncheck the Processors’ Use Operator(s) check boxes. We can handle this part of the process in the Task Sequence created by Process Flow.
  2. Remove the List and all ‘Push to List’ activities from Process Flow and the Toolbox. No need to have the Queues or Processors do any Pushing, you could set ‘Send to Port’ properties to ‘First Available’ instead.
  3. Remove the Dispatcher object.
  4. In your Resource, set the ‘Reference’ to the Operators’ Group.
  5. In your Event Triggered Source set the ‘Operation’ column to ‘assign’ on the row for the ‘Entering Item’ and choose a label name, like ‘item’.
  6. In your Batch activity click the ‘+’ button under the label aggregation options, set the ‘From Label’ to the label assigned in the Event Triggered Source and set the ‘To Label’ to something else like ‘itemArray’. This will put a reference to the items carried by each token of the batch into an array on the token that results from the activity.
  7. In your Create TS activity, set the ‘Wait for Finish State’ to ‘utilize’ (optional, only if you need State data to be represented in a nice way for your outputs).
  8. In your Run Subflow activities, click the ‘+’ button at the bottom of its properties to add a label to the Child tokens. Call the label something like ‘Rank’ and then from the ‘Value’ drop down menu choose ‘creationRank’. This will preserve which child is which in the subflows.
  9. For your Load and Unload tasks use the expression ‘token.itemArray[token.Rank]’ for the ‘Item’ property. This will allow you to reference a unique item in the Array of items created by the Batch activity.
  10. Remove the all the ‘Finish TS’, ‘Release’, and ‘Acquire’ activities after the subflows.
  11. Remove the Batch activities going forward.
  12. I think you can also do away with the Queues between each processor, you may as well let the Operator take the items directly to the next Processor. Align your Task Sequence activities with Load/Unload destinations to do so.

Keep the ‘Finish TS’ and ‘Release’ activity after your last subflow, and that should be it.

This approach should work fine if the Processing time is meant to be for the whole of the Batch rather than individual flowitems. Remember that the Process time event will be evaluated for each individual flowitem that arrives, so if you put a distribution in for the Process Time, some of the timing of the Process Flow activities could be affected.

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