Please can you attach your complete packed station ? I like to see it. Thank you so much !
I have changed the target declaration to CONST and the motion is still stopped on the boundary of the world zone.
I tend to use PERS as I often assign values to the target s in RAPID you can not do this if they are declared as CONST.
Graeme,
What else did you do differently than what I was doing to get it to work? I was looking through and it seems I did everything pretty much the same as you did, but mine didn’t work…
Thanks,
SM
Hi Steve,
You are right I simply created the station from your backup and then imported the RAPID code we had already used (and configured the poweron event)- so not sure why it was not working.
Have you tried it in the real controller to see if it works there also?
Regards
Graeme
Graeme,
I just tried it on the real controller and it works brilliantly! I just don’t see why it wasn’t working for me! Thank you so much for all your help Graeme and everyone!
SM
However, is there a way to get it to where it will not ever enter the WZ, even while jogging? Like it works great when the path goes across the WZ, but I really need it to test for the WZ while it is jogging manually as well. Is this possible?
Thanks,
SM
World zones work both in Auto and manual/jogging.
So if you try to jog the robot through the cube in the above configuration it should also stop on the boundary?
It will work for jogging in the simulation, but when I tried it with the real controller and robot, it would still run through it when jogging in manual. It worked great when the program was running (i.e. the path went right into the WZ), but for some reason it didn’t carry over for the jogging… Any ideas?
Thanks,
SM
I am also getting the same error: it is not possible to add the world zone object. Another world zone with the same name is already defined in the system… Does anyone know what causes this error and how to fix it?
It also states " Error 10051: The task could not start the specified system routine ‘WorldZone_PowerOn’. The routine is either unknown to the system or the program is unlinkable. "
I’ll list my code below and things that I have done below:
- I did a restart the controller.
- I’m using wzstationary.
- I used wzdoset and the signals is ‘read-only’.
- I set up an event routine and connected it to my proc name of ‘WorldZone_PowerOn’ to be triggered when the system powers on.
Am I missing anything that anyone can think of? (Does the ‘WorldZone_PowerOn’ routine require a ‘return’ at the end? That is the only thing I can think of besides it needing to be in a special place in my MAIN proc as well?. If anyone has any suggestions I’m all ears!!!
VAR wzstationary wzInStation1Zone;
VAR wzstationary wzInStation4Zone;
VAR shapedata shBoxInStation1;
VAR shapedata shBoxInStation4;
PROC WorldZone_PowerOn()
! First test zone
WZBoxDef\Inside,shBoxInStation1, [-200,725,0],[200,300,600];
WZDOSet \Stat, wzInStation1Zone\Inside, shBoxInStation1, do_InStation1Zone, 1;
! second test zone
WZBoxDef\Inside,shBoxInStation4, [200,-100,0],[-210,-500,700];
WZDOSet \Stat, wzInStation4Zone\Inside, shBoxInStation4, do_InStation4Zone, 1;
ENDPROC
UPDATE:
I found you have to put the whole PROC call (WorldZone_PowerOn) within a SYSTEM MODULE!!! NOT a program module…
Wondering what the difference is between the two?
answer: This happens because the controller processes Power On event routines before loading standard program modules. If your routine lives in a standard program file, the system cannot see it at boot.