RobotStudio event

Please help me about "Pick and Leave" sytem

I'm simulating a  "Pick and Leave" sytem that described in pictureimage
 I want the Robot pick the sheer metal on feeder and leave it on metal frame. The postion and orientation of sheet metal must match with metal frame metal. 
The picking is very good but the Placing has problem, I don't know why Robot places sheet metal that. In my Rapid code, Robot will place sheet metal when it moved to LeavePos target, but it don't do that. Please help me know why Robot do that. My code here
MODULE Module1
CONST robtarget PrePickPos:=[[1600,550,1545],[0.000000014,0.00000003,1,0.000000007],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget PickPos:=[[1600,550,600],[0,0,1,0],[0,-1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget PreLeavePos:=[[-525,-1800,1545],[0.000000079,0.707106686,0.707106877,0.000000034],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget LeavePos:=[[-525,-1800,1450],[0,0.707106781,0.707106781,0],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
PROC Pick_Leave()
MoveJ PrePickPos,v1000,z100,TGRIPPER\WObj:=wobj0;
WaitDI diMetalInPos,1; 
MoveL PickPos,v1000,z100,TGRIPPER\WObj:=wobj0;
SetDO doVaccum,1;
WaitDI diVaccuum,1;
MoveL PrePickPos,v1000,z100,TGRIPPER\WObj:=wobj0;
MoveJ PreLeavePos,v1000,z100,TGRIPPER\WObj:=wobj0;
MoveL LeavePos,v1000,z100,TGRIPPER\WObj:=wobj0;       
SetDO doVaccum,0;
WaitDI diVaccuum,0;
MoveL PreLeavePos,v1000,z100,TGRIPPER\WObj:=wobj0;
MoveJ PrePickPos,v1000,z100,TGRIPPER\WObj:=wobj0;
ENDPROC
PROC main()
SetDO doVaccum,0;
WaitDI diVaccuum,0;
PulseDO doNewMental;
Pick_Leave;
ENDPROC
ENDMODULE

I attached " pack and go" my system file. please see and show me.

Thanks you very much.
Have a great weekend !

image My pick_leave pack and go file. 

Comments

  • It is probably because you are using z100 as your zonedata. You must use fine as zonedata when you go to a point to pick or drop something.

    There are two reasons for this

    1. The robot position will take shortcuts when you use z100. The robot is considered to be in position when TCP is within a zone of radius 100 mm for z100. In your example, the robot will never reach the leave position, but will continue with next motion instruction as soon as it is 100 mm from it.

    2. Another aspect of zone-points is that the program pointer will run ahead and execute any subsequent non-move instructions before the current motion instruction is completed. In your case, it will execute the I/O handshake roughly 100 ms before the robot reaches the point.

    Read more about zonedata in the manual RAPID Instructions, Functions and Data types that is available in RobotStudio.

     

    Henrik Berlin
    ABB