I have imported a KUKA robot from a backup into Process Simulate. I have followed, what I belive, are the correct steps for importing the paths, modules and .dat files (from some training material). I have created the CELL program and the robot signals. But when I start the simulation and start the robot, when it goes into a subroutine in the main CELL Loop there is a REPEAT... UNTIL loop which is waiting for an IO change, but it locks the GUI.
IF REFLECT_PROG_NR==1 THEN
FOR I=0 TO PGNO_LENGTH-1
IF $IN[PGNO_FBIT+I]==TRUE THEN
I have tried it with a simple CELL program with the subroutine calls stopped, and I can see that the CELL program LOOP runs ok using the Simulation Monitor view without locking the GUI.
There are lots of these REPEAT..UNTIL loops in the program as it is the customer standard.
One thing I did note was in the Simulation Viewer the robot output was in the Main tab not in its own robot tab (it does not even create one). I do remember from some training that it should do.
Any help to fix this would be appreciated
Solved! Go to Solution.
I recommend to use "WAIT FOR (REFLECT_PROG_NR <> 0)" before the start of your IF condition.
As long as REFLECT_PROG_NR = 0 the pointer will stay at this command.
Instead of REPEAT you could use LOOP with ENDLOOP at the end.
Hi thanks for responses,
The REFLECT_PROG_NR is always 1 in this case... its just the customer spec with an option not to reflect program number back to PLC
But problem is there are a lot of these repeat... until loops throughout the robot program and these file are the customer specification tech packages.
I would have expected the robot programs to run on a seperate thread, not the GUI. I will have upto 16 robots in a simulation running at a time.
Bad luck. WHILE/ENDWHILE is protected against this lock (a time interval is waited at each loop in case no instruction inside the block took time - wait signal, motion,etc...), but REPEAT/UNTIL is not (yet) protected...
We will add it in next release. Until then, the workaround is to add an explicit wait time in the loop.
Process Simulate is not multithread.