RobotStudio event

Collision error handler


I have the robot IRB 8700, IRC5 controller, RobotWare
Robot have a grip which movent is a 7th axis of the robot.
I'm trying to confugire Error Handler in that way that when the 7th axis have a collision (for example pressing too much when taking the piece) robot have to open the grip and stop with an error.

Now it's look like this:
____MoveL p1,v200,z10,tool\WObj:=wobj;
____ALARM(100); (my own program to raise an error by code)

Testing this I was succeed when collision happend on the robot's axes, but when collision appears at 7th axis it's not working and robot stops at an error 50056: Joint collision.

Where is my mistake?

Best Answer

  • lemster68
    lemster68 ✭✭✭
    Answer ✓
    Collision detection works for only the six robot axes and certain positioners.  Try anyway to add that error number to your error handler to see if you can trap it.
    Lee Justice


  • Dzmitry
    I failed to try to make it by Error Handler, but now I'm trying another thing.

    The moment when I want to control the collision looks like this:
         MoveL point,v100,z10,tool\WObj:=wobj;
         Reset flagCollision;
         EOffsSet [-500,0,0,0,0,0];
         MoveL point,v100,fine,tool\WObj:=wobj;
         IF flagCollision GOTO Collision_moment;

    I made an event routine for the "Stop" event, it runs when I have a collision.
        PROC event_stop()
            Set flagCollision;

    I thought that if after that I will press play the robot have to start to move to the point without offset => robot will open the grip. But I have a strange situation: program is running, speed is 100%, no errors, program pointer at the MoveL line, but robot don't move.
  • Dzmitry
    Problem solved
  • graemepaulin
    How did you fix it?
  • Dzmitry
    How did you fix it?
    I've configure a system input for interruption and connect this input with programmable button. Now when collision happens the operator have to switch motors on and press the button. After that robot will open the grip and go out. 
  • Browsem
    i had something similar, that i fixed by using softmove on the external axis. Then i used a background task to see, it the axis kept moving (could also be done by using a while loop, moving the axis 5 mm then stopping when it doesnt move anymore).