I'm having problems modeling a system were corrective and preventive maintenance occurs. When a machine fails (lifetime follows weibull), then emergency repair has to occur. I modeled this with workers, workerpool and a path etc.. since it takes time to get the repairman to the machine + the repairtime (=duration of failure). This works fine. Now I created a method that counts the number of failures, but when I enter this as an failure control, I keep getting the error that this failure control does not exist. I'm new to PS so maybe there are more settings??
Furthermore, there is the option to have preventive maintenance, when the lifetime of a machine (failure?) exceeds a certain threshold/time. There is a different repairman for this. Also I want to count the number of preventive maintenances, but I guess when I know how to count emergency repairs, I can count this too. A repairman who performs emergency repairs can also, afterwards (immediately), perform preventive maintenance, if necessary. I want to create a method that says something like this:
If the machine is failed, send emergency worker here (takes time). Update nr of emergency repairs by 1. Check if preventive maintenance is necessary somewhere. Yes?-> send worker there immediately (takes no time). Update nr Preventive repairs. Send worker back to workerpool.
If time threshold has passed, send preventive worker to machine (takes time), update a counter that counts how many times this worker is sent, repair machine, update counter preventive repairs, check other machines => same as above.
I am so stuck on this.
see this example:
If you assign a failure control, than you can read the name of the failure profile. Then you can set the necessary service for this failure.
To simplify you should decide, if you beam all or let them use FootPaths. The preventive Maintenance you can set as additional failure profiles (e.g. based on process time, regular interval, const. duration). Then the complete mediation can do the Broker.
You need to check the name of the failure control, may be you need to set a path (e.g. root.method) if you work with subframes. Normally it is only misspelling.
Thank you for your reply.
I managed to set the failures and the repair of it. There is a footpath that takes time, which is what I need, and the failure control was just a silly mistake. I now have a method set as failure control that counts all failures. But now, in this method, can I also check, after the machine is repaired, if there is also a machine that needs preventive maintenance? And then send the worker here, without him letting use the footpath, because it shouldn't take time, since the repairman is already "in the plant". I don't know the commands in SimTalk for the worker etc..
Also, for just preventive maintenance itself, can I make a method for this and assign it as en exit control for all machines? So it is checked often if the time exceeds a threshold.
I think, this not a good idea, but yes, you can do this.
There are some problems you have to solve: "beaming" is a setting of the workerpool. If the maintenance guys shold beam, they need an extra workerpool. You can fail a machine with SimTalk (see help failure, startFailure or failureProfile.fail). You can set the right service before fail the machine, so the broker can send the right person.
I did write a method that sets all the failures, that works. And in the init method I make all the emergency failures active and all the preventive maintenance are not active. However, when I define the failures in the method, I also want them to relate to the processing time. When I type <path>.FailureMode="processingtime" it gives me an error that failuremode is an unknown identifier. While the help says that this is the way to do it?
But how can I use simtalk to send workers to a station?
I will check out the example you send.
all the settings are related to the failureprofile, so the SimTalk command is:
to send the worker, you could try:
if you have activated the failure importer.
to send the worker to a workplace:
the goTo is for when the worker is already in a workplace and then send it to another workplace?
And it makes sense indeed that to send to worker in the first place, just fail the machine. The Mode thing is working now, thanks!
with goto you can also send the worker from the Workerpool to the workstation
here is the example, it runs from 10.1