question

Tom S4 avatar image
0 Likes"
Tom S4 asked Jeanette F commented

Object post-processing (cleaning) after item is released

The process that I will be modeling has many operations, but most can be condensed into setup, processing, and cleaning. The setup and processing operations are straightforward with the built-in processor: item enters --> setup time --> processing time. However, I want the item to exit before the processor goes down for cleaning. So the object is down for cleaning while the item continues on. I would also like an option to use operator(s) for this cleaning activity.

I've modeled this dozens of different ways in the past, but have always had issues. For example in processflow: on exit --> stopobject(...) --> delay --> resumeobject(...). This works, but as the model becomes more complex it gets tricky. If the object is stopped with a time table while being cleaned, my delay in processflow will continue and it will not track the cleaning state properly.

This is a problem I have frequently so I figured I'd ask the experts here. I have not used object flows before but I'm thinking there might be a good solution there. What is your preferred way to handle this in an easily scalable way? Thank you.

FlexSim 23.0.12
object process flowequipment cleaningpostprocessing
· 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 @Tom S4, was one of Jason Lightfoot'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 comment back to reopen your question.

0 Likes 0 ·
Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Joerg Vogel commented
stopobject has a parameter of StopID which distinguishes between different stop calls. Please refer to reference manual method stop.
· 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.

Tom S4 avatar image Tom S4 commented ·
Hi Joerg, thanks for the response. I'm looking to see if there is any advice for implementing a post-processing step with similar functionality (duration, operators, preempting, etc.) as built-in setup/process of the processor, except that it can be done after the item exits.

I'm aware of how StopID is used, but was wondering if there is a more straightforward way to handle this without manually managing stop requests.

I could almost solve this with a multiprocessor, except that I need the item to exit prior to post-processing.

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Tom S4 commented ·
@Tom S4, There is not an inbuilt mechanism in processor class objects for post processing. A processsor can always create a copy of an item by code and that is released by command. But that involves a similar invasive event management as any other approach.
  • stop input and resume input by delayed message
  • process a second always same item differently in a processor
  • delay events of objects, here event receiveitem
  • multi-processor event : exchange event parameter object item by a surrogate item reference, while releasing true processed item.
  • create additional events for an surrogate item to keep an processor busy, while the primary item is already in state being released.
  • ..


0 Likes 0 ·
Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered

Use the processor's delay time and then in your process flow detect the process finish instead of using a delay activity. That way any processor stop will delay its processfinish. Less elegant would be to record the token against the processor (as a label) and when the stop/resumes occur check to see if it should also stop/resume a counpart token - but this is a bit messy.

5 |100000

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