We are having a little problem with our model, more specifically with our worker. How our model should work :
The worker moves to Workplace and processes 4 units in order to fill the buffer. He then goes to Workplace1 while one unit is being pushed to Station1. He then should move from Workplace1 to Workplace2 to get one unit from the Store and bring it back to Station1. There he should process both units together and push them into the drain. After that, the buffer pushes again one unit to Station1 and the worker should move again from Workplace1 to Workplace2 to get one unit from the Store, bring it back to Station1, process it and push it into the drain. This loop (Workplace1 -> Workplace2 -> Workplace1) should go on as long as there are units in the buffer that are being pushed to Station1.
Now, our problem is, that we can't get the worker to move from Workplace1 to Workplace2 to get one unit from the store. He just processes 4 units at Workplace, moves to Workplace1, processes the 4 units and gets back to Workplace.
Does anybody have any idea how to solve this problem?
Solved! Go to Solution.
First you have to define the destination of the MUs in the register Importer.
Second you have to move the MU, that it wants to go out. This is special for the store, the MU does not leave the store automatically. If you don't reorder the MUs you also can use a buffer instead the store.
I allow myself the liberty to come back to the problem. The simple model I attached in my previous post works just fine. However, if we integrate the solution to our worker problem into the more complexe model, it bugs again. We just can't get the worker to 1) fill the buffer with 4 parts, 2) go to the AssemblyStation and then go to Source1 to get one unit and bring it back to the AssemblyStation to process it with the part which is already present (pushed by the buffer).
If we disable the Importer on Station, the worker goes to source1 to get one unit and brings it back to the AssemblyStation, but doesn't assemble the parts and is stuck.
If we enable the importer on Station, the worker fills the buffer, then goes to the AssemblyStation and processes the parts, but without going to source1 to get the other parts.
Does anyone have an idea how to fix it? We looked at similar posts here in the forum ("Workers processing parts at the station", "Workers assignment order", etc.), but we just can't figure out how to solve it.
Thanks in advance,
I allow myself the liberty to come back at this problem, because we haven't found the solution yet. In the simpler model that I attached in my previous post, it works just fine. However, if we try to integrate it into the more complex model, it doesn't work anymore.
If we disable the importer at station, the worker goes to the AssemblyStation and then goes to Source1 to get one unit. But when bringing the unit back to the AssemblyStation, it bugs. The worker is stuck with the unit in his hand. Also, as we disabled the importer at station, the worker doesn't processes the units to fill the buffer.
If we enable the importer at station, the worker doesn't go to source1 to get one unit but simply skips this step.
Does anyone have an idea how to solve this? We saw topics in the forum with similar problems and tried to integrate the solutions into our model, but it doesn't work.
Thanks in advance,
Thank you both for your replies. We were able to reproduce it in another model. So this seems to work just fine.
The modifications you made in the WorkerControl code were very interesting @Steffen_B. It was indeed the part we were missing.
EDIT @simulator : Are you talking about " waituntil assemblyStation.occupied " ? When I disable this, the worker runs from 1 to 2 until the buffer finally pushes one unit to the AssemblyStation.
The problem we are facing now is that if we want the worker to start at Workplace - and not at Workplace1 - he adresses 4 units to fill the buffer (as wanted), but he doesn't move to Workplace1. What would you recommand to use as trigger to get the worker to move from Workplace to Workplace1 after adressing 4 units (and thereby filling the buffer) ?
@ " waituntil assemblyStation.occupied "
please compare v3 + v4 behaviours to see the difference.
Some times it might be easier to switch off the "automaticMediation" and work
with "worker.gotos" to achieve a certain worker behaviour than
to think of special ways / events to trigger a behaviour.