In the workerpool you can define the skills of the workers as for example "skill1", "skill2" and "skill3".
Use the ImporterRequestControl of the Singleproc to determine which type of part is arriving and depending on the type set the requested skill (Singleproc.imp.setAlternativeServices) and import the services (Singleproc.imp.import)
As a general approach to such quite large problems: start with the smallest model that captures the essence. In this case maybe 2 workers, 3 stations and 1 product. In such a small model you can easily track the events and verify the correctness of your logic.
Now, for the workers. It looks like you have a preference for the most capable workers (you do not mention if this is refelected in their efficiency). You can can take the following steps:
a) define alternatives in the Importer tab>>Services for Setting-up and Processing. Your first alternative is skill 1, the second skill 2, etc. Make sure to name the alternatives correctly.
b) In the CreationTable of the WorkerPool you define Workers who possess these skills (so each Worker has either skill 1, skill 2, etc.).
c) Check the model: if everything is right, a station forst requests the services belonging to alternative 1, then alternative 2, etc.
d) In the large model: make sure that you use inheritance wisely, otherwise you have to do this for all your 150 stations!
Also see: Reference Help > Material Flow Objects > Shared Properties of the Material Flow Objects > Dialog Items of the Objects > Tab Importer > Services for Setting-Up and Processing
In this case you should specify the skills on a station basis, (like 10_4, 10_3 etc. for station 10, worker 23 then posesses skill 10_3, 13_3, etc.). It makes sense to use SimTalk to do this. The station number and worker number need to be identifiable to the relevant instances.
My previous reply still applies regarding the alternatives table.
Again, develop the principal logic in a tiny model first, then roll-out.
But i don't know how can I do that. How can I say to the program that I have a amount of workers with several different performance levels. Should I use a setCreation table? If yes, how can I do that.
You can use the constructor-method of the worker (will be called for each worker, if the workerpool creates the worker; Tools - Select controls - Constructor ) to write a table (user defined attribute of the worker) with row-index=machine name and the skill of this worker depends on the machines in the first column (integer).
Then you can create for the machine(-class) an entrance-control (before actions). Here you can do two things: read the content-list of the workerpool and from the worker the skill for the specific machine (temp.-table - enter worker and skill into the table, at the end sort the table by skill). Then you have to mark the "top"-worker for the job. The easiest way is by assigning a special job (e.g. service of the machine = machine-name) --> enter this job name in the service-table of the worker (e.g. on the second position). If the part enters the machine (after processing the entrance control), this special worker is requested by the broker. In the entrance-control of the workerpool then you have to delete the second job for each worker.
freelance simulation specialist
Can you please explain me a little bit more about how the "constructor" works? It's the first time that I heard about it .
Thank you for your help.
The constructor-method is called, if a object is created from his class. In your case the workerpool creates all worker from the workerlist. For each individual worker (if set) Plant Simulation calls the constructor-method. Normally you can use the constructor for initializing the object.
freelance simulation specialist