Showing results for 
Search instead for 
Do you mean 
Reply
Solved! Go to solution

Waituntil ignored

Hello,

I'm new to working with SimTalk and am having trouble correctly using the waituntil statement. I need the workers to pick up the part off the pallet on their respective unload station and carry it over to the pallet on their reload station. The problem I'm having is getting the workers to wait until a pallet arrives at Reload before dropping off their part. I've tried placing waituntil statements in many different Entrance and Exit Controls to see if any work, but have had no success. Am I incorrectly using the waituntil statement or is it just not in the right place? I'm practically learning this software on my own so it's probably something simple.

 

I've attached the file saved with the error message shown for clarity.

 

Thanks

4 REPLIES
Solution
Solution
Accepted by topic author kg21em
‎09-06-2016 10:11 AM

Re: Waituntil ignored

Hello kg21em,

 

it is a good question. We need to synchronize the arrival of the container and the worker.

At first you have to prevent that the worker unloads the part when no container is on the station Reload:

Therefore we perform

 

var Worker:  object := ?.cont

if Worker.occupied

                reload.entranceLocked := true

end

in the entrance control of the Workplace.

Now no container can enter the station Reload.

In order to catch the event of arrival of the container we use a sensor at the end of the line Line3 before Reload.

Here we must stop the container, wait for the worker with a part, load the part onto the container, sent the worker back and open the station Reload:

 

Reload.exitLocked := true

waituntil workplace1.occupied and workplace1.cont.occupied prio 1

var worker:  object := workPlace1.cont

worker.cont.move(@)

worker.goto(Workplace)

Reload.entranceLocked := false

Reload.exitLocked := false

 

The attached model is for Plant Simulation 12.2

 

Regards,

Peter

Re: Waituntil ignored

Thanks for the quick response!

 

I've added your solution in to affect the second worker as well, but this has created a second problem. It seems that some containers will get stuck at Reload2 and end up containing more than just one part.

 

I've attached the updated model.

Solution
Solution
Accepted by topic author kg21em
‎09-06-2016 10:11 AM

Re: Waituntil ignored

[ Edited ]

Hello kg21em,

 

the problem at ReadLoad2 is completely different problem. The worker should unload.

 

We must catch the event of a ready pallet a station Unload2. Therefore we use the exit control of Unload2.

I will not use the exit behavior Carry Part Away.

In the init method we initialize a variable Worker4Unload by the responsible worker:

Worker4Unload := WorkerPool1.cont

 

In the mentioned exit control we must stop the container.

Then we must wail until the worker is free.

Then the process can continue:

 

var part: object := @.cont

part.destination := Reload2

part.move(Worker4Unload)

@.move

 

Regards,

Peter

Re: Waituntil ignored

Thank you for all of the help! It works great now.

 

I've attached the latest update with the process fully working for anyone interested. It's still a bit messy as the proccessing time of certain stations needs to be changed.