July 21, 2019, 04:41:19 AM
Robotforum | Industrial Robots Community

 Error Recovery

normal_post Author Topic:  Error Recovery  (Read 1687 times)

0 Members and 1 Guest are viewing this topic.

March 29, 2018, 06:57:46 PM
Read 1687 times
Offline

CallenAutomation


So i was wondering i have been looking up how to do error recovery while robot is in auto and running. From everything i see is that i need to activate collision error handler. i went into the configuration and could not find where it said it would be in our controller. Is there another way to recover from an error automatically without having to use the collision error handler.

Thank you in advance.

Today at 04:41:19 AM
Reply #1

Advertisement

Guest

March 29, 2018, 08:27:37 PM
Reply #1
Offline

Lemster68

Global Moderator
Are you trying to recover from a collision or a program error?  The collision error handling only became available with like RW 6 and higher I think.  Routine error handlers have been around forever, however, many don't know how to use them.

March 29, 2018, 10:06:16 PM
Reply #2
Offline

CrowTRobot


Which controller and robotware version? Also use extreme caution when writing a handler that recovers from collisions automatically. You should never really get collision errors unless something in the cell fails. If for some reason you get them often in the same spot in the process. Try to fix the process physically first. If you do have to write a handler, make sure it will only execute when, where, and how intended. You don’t want the arm to relentlessly smash through the cell because of a collision in some other part of the routine.
   That being said, generally you can handle just about anything with an error handler at the bottom of the routine or the routine that calls them, whichever is best for your situation.
SAMPLE 1
PROC My_Routine()
!SAMPLE ROUTINE
        ActUnit STN1;
      PulseDO\PLength:=0.75, doFr1FeedRetract;
        MoveJ pStandardApproach, v1000, z50, tWeldGun\WObj:=obSta1;
        MoveJ pMy_RoutineApproach, v1000, z50, tWeldGun\WObj:=obSta1;
      MoveL pTo_Weld_01, v1000, z50, tWeldGun\WObj:=obSta1;
        ArcLStart pWeld_01_Start, v1000, seam3, weld13, fine, tWeldGun\WObj:=obSta1;
        ArcLEnd pWeld_01_End, v1000, seam3, weld13, z10, tWeldGun\WObj:=obSta1;
        MoveL pAway_Weld_01, v1000, z50, tWeldGun\WObj:=obSta1;
      MoveJ pMy_RoutineEscape, v1000, z50, tWeldGun\WObj:=obSta1;
      MoveJ pClearStation, v1000, z50, tWeldGun\WObj:=obSta1;
        DeactUnit STN1;
!ERROR HANDLER
   ERROR
      IF ERRNO = ERR_MyError_01 THEN
         TPWrite "CHECK PART!";
         Stop;
      ENDIF
      IF ERRNO = ERR_MyError_02 THEN
         ...
         RETRY;
      ENDIF
ENDPROC

You may need to book your own error as well in order to avoid making a blanket handler that bites you in the butt later.
SAMPLE 2
   ! Introduce a new error number in a glue system
   ! Note: The new error variable must be declared with the initial value -1
   VAR errnum ERR_GLUEFLOW := -1;
   ! Book the new RAPID system error number
   BookErrNo ERR_GLUEFLOW;
   !The variable ERR_GLUEFLOW will be assigned to a free system error number for use in the RAPID code.
   ! Use the new error number
   IF di1 = 0 THEN
      RAISE ERR_GLUEFLOW;
   ELSE
      ...
   ENDIF
   ! Error handling
   ERROR
      IF ERRNO = ERR_GLUEFLOW THEN
         ...
      ELSE
      ...
      ENDIF

You can do a lot in an error handler but there are limits. It really depends on what exactly you are trying to accomplish. Most of what you need should be in the RAPID reference docs.

April 09, 2018, 06:37:36 PM
Reply #3
Offline

CallenAutomation


sorry for not responding. they're IRC5 controllers and running robotware 5.09. I have checked the controller and did not find the error handler installed. I am mainly looking to get out of a collision error and get the robot going again. I have seen some forums put traps. I mainly want to know how to activate the motor automatically and get out of the area to a safe spot.

April 09, 2018, 06:41:14 PM
Reply #4
Offline

CallenAutomation


Also i am mainly working with a simple material handling operation. Basically grab out of machine, sense, and then place on a conveyor. A collision does not occur to often which is why i would like to put a recovery routine so when it does happen the robot wont be just waiting in the machine to be removed manually.

April 09, 2018, 06:49:43 PM
Reply #5
Offline

Lemster68

Global Moderator
Traps and such don't work because program execution stops.  Collision error handling came in around RW 6.  You would need to upgrade, but not sure if your CPU can go to 6.0 and up.  If you have multitasking there could be some things to make a recovery.

April 09, 2018, 07:05:42 PM
Reply #6
Offline

CallenAutomation


i did see that the our controller do have multi-tasking what would you recommend doing?
 

Today at 04:41:19 AM
Reply #7

Advertisement

Guest

April 09, 2018, 08:31:48 PM
Reply #7
Offline

Lemster68

Global Moderator
Here is part of a background task I had done quite some time ago:

      IF bInstallMotion AND DOutput(foMotionSupTrig) = 1 THEN
         Reset doClampJet;
         Set doUnclampJet;
         Set foPartRejected;
         bInstallMotion := FALSE;
      ENDIF

bInstallMotion is a boolean shared by the tasks, it is set to true in the motion task just before a motion to install an oil squirter, when it was most likely to have a collision.  As a result, we opened the gripper.  Without doing so, the robot would have another collision trying to leave.  Now the corresponding Task1 code:

        bInstallMotion:=TRUE;
        MoveL pOilJetMD11{1}, v100, fine, tCool_Jet;
        rAdvSlide;
        WaitDI fi_CP_InCycle, OFF;
        SetDO foOKtoTighten,ON;
        WaitDI fi_CP_InCycle, 1;
        bTorqueStarted := TRUE;
        SetDO foOKtoTighten,OFF;
        bInstallMotion:=FALSE;

We can probably figure out where to move the robot by using CRobt() and then calculating an offset in whichever plane is appropriate.  I am guessing that your operators will still have to do a fault reset and restart the robot for it to move on out away from the collision.


Share via facebook Share via linkedin Share via pinterest Share via reddit Share via twitter

xx
Error Recovery

Started by JModrak on Fanuc Robot Forum

1 Replies
2045 Views
Last post July 19, 2013, 01:20:48 PM
by DuhbCakes
xx
Error recovery with MASH

Started by Hoo on Fanuc Robot Forum

3 Replies
3434 Views
Last post June 26, 2013, 04:06:52 AM
by Hoo
xx
problem with ERROR RECOVERY

Started by StargateSGA on Fanuc Robot Forum

0 Replies
151 Views
Last post May 22, 2019, 07:48:44 AM
by StargateSGA
xx
Vision Master Recovery stuck on step 7 Run for recovery

Started by pdubey on Fanuc Robot Forum

1 Replies
1380 Views
Last post September 15, 2016, 10:24:28 PM
by Racermike123