ATTENTIONThis 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. |
flexsim.com |
#1
|
|||
|
|||
Rework on line
Hi all,
I have been asking some questions lately and have been getting the answers I need. Thank you. But I have another question. I am modeling an assembly line in which every processor works to the same takt time. When a part fails an inspection on the line, the line is shut down until the problem is corrected. Parts will pass 99% of the time but when it fails the line will be shut down until corrected at the station. I am not sure how to model the 1% failure and the line stopping for a certain amount of time. I am going to use (min, Max, and average) to show the time taken to correct the problem. Thanks again for your help. Derrick |
#2
|
||||
|
||||
Hi Derrick,
to stop all processors in the line add a stopobject command in the down function at mtbf/mttr-Tools for every processor. Resumeobject() must be set also for every processor at the resume function. For every processor and mtbf/mttr-function I use a unique id-parameter. If you have the inspection process at every processor, you need a mtbf/mttr for every processor of the line. The right parameters is some try and error for your 1% demand. You can start with constant expressions for first failure, mtbf and mttr. later you can use the duniform or any other statistical distributions for mtbf. Jörg |
The Following User Says Thank You to Jörg Vogel For This Useful Post: | ||
Derrick Serbonich (03-02-2009) |
#3
|
||||
|
||||
Derrick,
You will want to use the bernoulli() stochastic function. It is a function that you put in the pass percent and then it returns a value you specify based on whether the random variable is above or below the pass value. You will then want to use the stopobject code that Jorg mentioned in his post to stop the processors in the line. I assume that this will be code that you will put in the on process finish trigger. Where you will do the check and then if fail stop the line. You can send a delayed message to the processor that will resume the line. The one thing you will want to be careful of is that you don't send the message and then call stopobject on the object you sent the message to as this will cause the message to never get through. Make sure that you call stopobject and then send the message, this way the stopobject command has already occured and can't delay the message. Good Luck, Brandon
__________________
thats not normal. |
The Following User Says Thank You to Brandon Peterson For This Useful Post: | ||
Derrick Serbonich (03-02-2009) |
#4
|
|||
|
|||
Am i correct in thinking that the Bernoulli function will get me the 1% failure? How does the Bernoulli function work? Is the probability the prob of failing or passing? Will the time for first failure and MTBF be the same using the Bernoulli function? For stopping the line do I just use Stop Object with an Id of 1 and to resume use Resume Object with an Id of 1 also? Also if you have time a quick example showing what the MTBF/MTTR would look like for 6 processors would be good. Thanks.
Derrick |
#5
|
||||
|
||||
Attached is a model that shows you how to follow Brandon's suggestion.
It uses a global variable treenode array called ProcessorLine to reference each of the processors. It uses two user commands called stopprocessorline() and resumeprocessorline() that loop through the array and call stopobject() or resumeobject() on each of the processors respectively. The OnProcessFinish of each processor uses a bernoulli distribution to make a 1% chance that the part will breakdown. The mttr is also defined there. It sends a delayed message to itself after stopping the line to resume; the delay time of this message is the mttr. It is pretty straightforward how this model works. Hopefully you can customize this example logic in your own model to make it behave as desired. Global variables and user commands can both be found in the main Tools menu. |
The Following 2 Users Say Thank You to Phil BoBo For This Useful Post: | ||
Derrick Serbonich (03-02-2009) |
#6
|
|||
|
|||
Same technique but using port connections and downstream/upstream flags instead of the array. Assumes you want a whole line to stop downstream, upstream or both. Added the state, id and priority. Example passes the triggering processor as the id - useful for tracing stops.
Jason (beware not to use this on a looped system!) |
The Following 2 Users Say Thank You to Jason Lightfoot For This Useful Post: | ||
Lars-Olof Leven (03-04-2009) |
#7
|
|||
|
|||
The model that Phil made called Rework is what i am looking for. I understand the code but i have an older version of Flexsim than the one used to create that model. I can not use the line stopprocessorline/resumeprocessorline. I have been trying to use stopobject but can't figure out how it is supposed to work with a MTBF/MTTR table. Is there anything i can do to get my model to do exactly what his does with the older version?
|
Thread | Thread Starter | Forum | Replies | Last Post |
Cashier line ups | Davie Stomp | Q&A | 6 | 11-29-2007 01:24 AM |
Flickering yellow line during drag connections in Vista | Dr. Eamonn Lavery | Q&A | 0 | 11-09-2007 10:48 PM |