World Zone Error
I am new to RS and ABB, and I have gotten some great help on World Zones recently, but now I am running into another issue. I have a defined world zone, but every time I try to run my program, I get an error: Event Message 50183, Robot outside work area. Description: The robot has reached the World Zone object. Actions: Check the reason of the world zone. Use the joystick to move the robot out of the world zone if needed.
The problem is, is that it throws up that error anytime I try to start my program, no matter the position or placement of the TCP on the robot.
Attached is a text file of my code. I have changed the WZBoxDef to both Inside and Outside and I am getting the same event message. Any ideas to help me solve this problem?
Thanks,
SM
Best Answer
-
Hi
sorry for the delay...
Attached a is a zipped pack & go ( go to share on the file tab and unpack & work) of the station I created from your backup - and them added the world zone code.
The test program stops the robot at the edge of the world zone.
Regards
Graeme
6
Answers
-
If I'm reading it correctly -- you are defining the zone as everything "\Outside" of the tiny ~1 inch box -- Is that what you're wanting to do?
0 -
I want to do it such that when the robot enters the WZ, it will stop everything. But that error pops up no matter where the TCP is. Is it something to do with like my declaration or something? I created a POWER_ON Event and linked that to my zone_output routine and everything like you said, but it won't give me any options for the "Task" except TROB1. Did I need to choose this Task?
Thanks,
SM
0 -
Does it error when you say that you are defining the "\Inside" instead of "\Outside"?
0 -
It doesn't specify. The only thing the error says is: Event Message 50183, Robot outside work area. Description: The robot has reached the World Zone object. Actions: Check the reason of the world zone. Use the joystick to move the robot out of the world zone if needed.
0 -
So you changed your code to "\Inside", cycled power, and you get the same error?
0 -
Yes. I don't know what to do to fix it... It's gotta be something small but I'm just not sure what it is...?
0 -
Could be that the zone is too close / inside the base of the robot and the software knows it's not in the work envelope of the robot.
0 -
But it isn't? I mean you can look at my code and the declaration isn't that close to the robot. I just now noticed that the WZ does reach to outside the working envelope of the robot. Could this be the problem?
0 -
I am looking at your code -- the tiny box you're defining is most likely inside the base of the robot -- about 1/2 inch out from the world coordinate system. Change your X numbers to something more reachable like a foot or two out in front of the robot (depends on the model robot you're using) and try again. No, the world zone can be outside the limits of the robot.
0 -
My units are in inches though I believe? Unless they are always in mm no matter what your units are set for?
0 -
So the weirdest thing I just found out. I started from scratch, built a whole new program, new world zone, new path, new event routine, etc. Now it wasn't picking up the world zone at all, but it wasnt giving me the error mentioned previously. So I was messing around with it to try to get the program to recognize that a world zone was there, and so I proccalled the "zone_output" routine from the main routine, and tried to run it. I got that error again. I then deleted that proccal out of my main routine and still got the error, but after I restarted my controller that error went away. However, my program still won't recognize that there is a world zone there... So I am back to square 1... I don't understand why it won't recognize there is a world zone there. I did everything like I was told, declared my variables, created a POWER_ON event routine, etc... Is there anything I am missing?
Thanks,
Stephen
0 -
"My units are in inches..." -- no relation to the display units on RobotStudio -- world zone RAPID code is always millimeters.
0 -
I have changed only the values for the corners of the box (as shown below) to the code you posted earlier.
PROC zone_output()
VAR shapedata volume;
CONST pos corner1:=[1000,-500,0];
CONST pos corner2:=[1500,0,500];
WZBoxDef\inside,volume,corner1,corner2;
WZLimSup\Stat,object,volume;
RETURN ;
ENDPROC
This allows the robot to run outside the box but as soon as it tries enter the box it stops and gives the 50183 error.
It does not stop when jogging using the virtual FlexPendant.
I tried using outside instead of inside and I get the inverse situation where the robot can only move inside the box - again stopping at the edge of the box.
0 -
Thanks alot for the help, and I feel I am getting closer, but for some reason it still throws up the error when I try to start my program, no matter where the TCP is. I set better corners per soup's suggestion (I was assuming RAPID was in inches like RS). I was hoping that was what was wrong but it still is putting out the 50183 error. So I started from scratch, again. Same error.
Maybe it is something in my Event Routine? Attached is what I currently have for my Event Routine. Am I supposed to say yes to the Tasks or choose something from "Task"? (my only options are "blank" or TROB1)
Thanks
sm
0 -
-
Still not working lol... Could it have anything to do with that this is a brand new controller and robot? Meaning is there some other stuff I needed to do first before I try to do a WZ?
So let me go step by step to check and make sure I have everything...
1. Start a station with backup of real controller, or connect directly to real controller (in my case IRC5 Compact)
2. Create an Event Routine linked to POWER_ON and choose a routine that will be called out in the code:
-
3. Define a World Zone (name the routine the same as what was called out in the Event Routine):
4. Define some random points that cause the robots TCP path to enter that world zone:
MODULE MainModule
CONST robtarget p10:=[[461.29,144.16,221.59],[0.29728,-0.143906,0.942789,0.0454265],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p20:=[[422.52,-233.55,218.06],[0.287825,0.238498,0.924538,-0.0741974],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p30:=[[422.52,-233.55,538.15],[0.287814,0.238489,0.924544,-0.0741978],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p40:=[[433.25,226.30,534.73],[0.289204,-0.227574,0.927106,0.0710358],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
!CONST robtarget p50:=[[373.93,0.03,630.05],[0.707179,-3.9492E-05,0.707034,9.98114E-06],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Home:=[[373.93,0.03,630.05],[0.707179,-3.9492E-05,0.707034,9.98114E-06],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
!CONST robtarget p60:=[[373.93,0.03,630.05],[0.707179,-3.9492E-05,0.707034,9.98114E-06],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR wzstationary object;
PROC zone_output()
VAR shapedata volume;
CONST pos corner1:=[279.74,353.08,101.45];
CONST pos corner2:=[368.5,-355.72,533.53];
WZBoxDef\Inside,volume,corner1,corner2;
WZLimSup\Stat,object,volume;
RETURN ;
ENDPROC
PROC main()
Path_10;
ENDPROC
PROC Path_10()
MoveJ Home,v200,z5,tool0;
MoveJ p10,v200,z5,tool0;
MoveJ p20,v200,z5,tool0;
MoveJ p30,v200,z5,tool0;
MoveJ p40,v200,z5,tool0;
MoveJ Home,v200,z5,tool0;
ENDPROC
ENDMODULE
5. Apply and synchronize to station, or just apply and release write access to the controller and test and the robot should stop once it reaches that zone.
However, this is not the case. The virtual robot is not picking up the WZ.
Graemepaulin, in regards to your previous post, I got an error saying: "RAPID symbol 'main' in 'T_ROB1' was not found. What does that mean?
Thanks for all the help and patience with me,
SM
0 -
Also does it matter if I am in Manual mode for the real controller rather than Auto?
Thanks,
SM
0 -
6. Cycle power on the controller so the POWER_ON event routine is called.
0 -
How do I do that?
Thanks,
SM
0 -
Turn the Power Switch on the front of the controller from "ON" to "OFF" -- wait 30 seconds -- turn it back to "ON"
0 -
Do this before or after I apply my program to the controller? Because I already had the program on the controller, I turned it off when I left yesterday, and when I came back in today and started it all back up, of course my program was still on the controller. Still didn't work?
Thanks,
SM
0 -
Cycle power after you add the zones definition procedure and the POWER_ON event routine to call the zones definition procedure. And, cycle power whenever you edit the zones so they update. You really don't need a path program, since the zone restrictions will be active in manual mode too. I'd make sure the robot is clearly outside the zone, cycle power, jog the robot into the zone. What error are you getting? -- still 50183?
0 -
In your above code you have a 'main' routine - but did you have one when you got the "RAPID symbol 'main' in 'T_ROB1' was not found" error?
0 -
Soup, I will try cycling the power again and seeing if that fixes it. Yes, it is still the 50183 error. Actually yesterday it wasn't even picking up the WZ at all.
Graemepaulin, yes I did have a "main" routine when I was getting the "RAPID symbol 'main' in 'T_ROB1' was not found" error. That's why I didn't understand what it was saying... Any suggestions?
Thanks,
SM
0 -
Soup,
I cycled the power and tried both jogging and running the path through the WZ and it did not recognize that a WZ was there... Is there anything else that I am missing or that you guys recommend I try? I just don't understand why the code works for y'all, but not for me... It must be something small that I am missing, but isn't super obvious... I tried calling out the zone_output routine in my main routine, but I got an error saying: Event Message 40672. Description: It is not possible to add the world zone object. Another world zone with the same name is already defined in the system. Program Ref. /MainModule/zone_output/WZLimSup/17. Actions: Check the name of the world zone.
Any ideas on that? Should I possible try doing a temporary WZ and just using power on to setdo the temporary on/off? Would doing it this way still be functional for what I am needing to do?
Thanks for the help,
SM
0 -
"Actually yesterday it wasn't even picking up the WZ at all." -- how can you tell / explain what you mean by this.
0 -
It was doing the same thing today. Basically I can jog the robot into the WZ and nothing happens (meaning I can continue jogging the robot in and out of the WZ and the controller doesn't recognize that there is an active WZ). It will just continue either following the path right through the WZ or I can jog it in and out and around the inside and outside of the WZ. I need the robot to stop as soon as it reaches the WZ, and that's not what is happening.
Thanks,
SM
0 -
So, when do you get the error message?
0 -
Well I am not getting the error message now. Now the problem is that it is not recognizing the WZ at all... Any suggestions on what else to try? Should I possible try doing a temporary WZ and just using POWER_ON to setdo the temporary on/off? Would doing it this way still be functional for what I am needing to do?
Thanks,
SM
0 -
Please attach a backup of the controller as it stands currently - I will then create a system from this and see if I get the same issues as you.0
Categories
- All Categories
- 5.5K RobotStudio
- 395 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 310 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 785 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 4 Job listings