This FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices.
This is an example for a cycle production line. If the process time for a specific item takes longer than the global cycle time (standard 60 s) a buffer station is included where for this additional process time the process gets finished.
Because an operator is necessary to do the processes this operator has to finish the process at the buffer station (ProcessorBuffer) and returns than to his original process (ProcessorB). Because of the global cycle time he might not have enough time to finish the original process. This might block the whole line.
In other words the order of the items in combination with the buffer processor might not block the line even if a single process time is higher than the global cycle time. That the idea of this concept.
Three different items arrive in the system (Arrvial Schedule on the Source). The process times for these items are defined in the Global Table "ProcessTimes". The global cycle time is defined in the ModelControlGUI.
Some code is in the User Events, where the UserEventGlobalCycleTime takes care of controlling the output of the Processors to have the global cycle mechanism.
The ProcessorB has behind him the ProcessorBuffer where the additional process time can be worked on this item. In general in the ProcessorB is calculated if there is any additional process time. If there is such a time this time is written in a label and used on the ProcessorBuffer as ProcessTime.
The tricky bit in this model was to figure out, when the OperatorGreen has finished an additional process on ProcessorBuffer and starts to work on the next item on ProcessorB. Because this situation might give a new additional process time for this actual item.
To have an event at this point in time the operator is also used for Setup even if there is no setup and the setup time is very small (0.000000001). But this combination fires the trigger OnSetupFinish where now the additional time can be calculated.
One other special thing is included in the model. The transportation time to the ProcesssorB is calculated and goes into the calculation of the additional process time. This means that the rework starts after the global cycle time and not after the transportation to the ProcessorB. In this way there might be the chance that the additional process time is over when the transportation is finished and therefore the operator can start working on the next item.
To explain all the code would be a lot of work, so hopefully the above hints are enough to figure out how the model works. All the code is documented and hopefully helps to understand it.
If a process is done on a Processor the processor turns green and stays green until the process is done. Gray color means that the process is finished, but not given further before the Global Cycle Time is over.
The standard is that itemtype 2 (color lime) needs some additional time on ProcessorBuffer. Itemtype 2 (color orange) has a short process time to catch up again.
There is a model control GUI to give access to some parameters and also shows some results of the model.
Attentation:
Do not delete or rename the object Logo_FlexsimD, because otherwise the model will not work correctly. Also do not rename, delete or rerank other objects.