Error recovery for Motion Supervision
soongv
✭
Like the concept of Error recovery (Error handler)
What I try to do is when the robot hits an object, the robot automatically retracts back along the safe and previous path. Then, it can perform the next operation without stop program executing.
Thank you.
0
Comments
-
Hi,I did something similar once with a S4 system. In that system I had a semistatic background task that trigged a TRAP on the error MOTION_ERR,TYPE_ALL (IError MOTION_ERR,TYPE_ALL,xxxxxxxx;).In the TRAP i reseted the error, turned the motors on and started the program execution. This worked fine in S4, so I'm sure it will work in an IRC5 system also.Best regards,
Anders Spaak
ABB Robotics0 -
I did a test using the IError instruction. This interrupts on a collision detection Error. It is a movement up and down. when there was a collision When restarted it would turn pulse a light and do other movement.VAR intnum intno1 := 0;
PERS bool bCollision := FALSE;
VAR bool bVldPath := FALSE;
CONST errnum a_errno1 := 2;
!
PROC main()
IF bVldPath THEN
bCollision := FALSE;
IDelete intno1;
CONNECT intno1 WITH tColl;
IError MOTION_ERRErrorId:=204, TYPE_ALL, intno1;
!ISignalDI Single,diTool_1_Empty,1,intno1;
MotionSupOnTuneValue:=35;
MoveL [[1495.88,-81.48,1091.5],[0.0504659,-0.706454,-0.012259,-0.705852],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]],v500,fine,tCutter;
MoveL [[1495.88,-81.48,680.93],[0.0504638,-0.706455,-0.0122546,-0.705851],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]],v500,fine,tCutter;
WaitTime 2;
ELSE
PulseDOHighPLength:=1, doAmberBeacon;
MoveL [[1495.88,-81.48,1091.5],[0.0504659,-0.706454,-0.012259,-0.705852],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]],v500,fine,tCutter;
MoveL [[1513.59272578952,-280.401165442234,1080.70049611284],[0.0504658649220911,-0.70645350895712,-0.0122589914790037,-0.705851509375559],[-1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]],v500,fine,tCutterWObj:=wobj0;
bVldPath := TRUE;
ENDIF
RETURN;
ENDPROC
TRAP tColl
bCollision := TRUE;
IDelete intno1;
StopMove;
ClearPath;
StopMoveReset;
bVldPath:=FALSE;
ExitCycle;
ENDTRAP0 -
Thank you for the prompt reply but I could't try it until last week because of my own technical problems.The trap works fine as you guys advice but I need to add MotionSupOff before start moving to the opposite direction, and then turn the supervision on afterward. Otherwise, the arm would still get stuck and cannot move.TRAP tCollbCollision := TRUE;
IDelete intno1;
StopMove;
ClearPath;
StopMoveReset;MotionSup Off; ! --- turn off motion supervisorMoveL [..............] ! --- move backward from the hit directionMotionSup On; ! --- turn on motion supervisorbVldPath:=FALSE;
ExitCycle;
ENDTRAPHowever, it seems I still have to acknowledge the error due to the collision. Is there any way that the robot can skip it and proceed automatically?0 -
Moved to RobotWare.
Henrik Berlin
ABB0 -
Hi,You need to use the system input MotorOn or Motors On and Start (MotOnStart).One note of caution you risk over heating (and possibly damaging) the motors and drive system if the collision keeps happening and then auto resetting. Add some code to limit the number of resets in a given time peroid.RegardsGraeme1
-
Hi,Sorry I am really a newbie on this, but it is I think similar to my current scenario. How do I continue executing the program if an Estop happens? Do I create an error handler for this or just like the example above, use IError instruction to fetch the error code? Thank you all for your help.0
-
Recently we are facing the same problem and we solved it with the ERR_COLL_STOP error number which we have in our robot. To use this error handler you need first to change the system parameter Controller/General Rapid/CollisionErrorHandling to YES. This will make the error handler effective in your system. More details can be found in Technical Reference Manual - Rapid Kernel/ Error Recovery/ Motion Error Handling. Hope this will be useful to anyone with the same problem.
1
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 314 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 794 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings