RAPID
 
 
%%% 
    VERSION:1 
    LANGUAGE:ENGLISH 
%%% 
 
MODULE mainprg                                                                     
 
 
    CONST robtarget pHome:=[[517.87,-0.01,708.53],[0.506292,-0.4935,0.509881,-0.490049],[-1,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; 
 
 
 
 
 
 
 
   
rP1
rP2
 
 
rCheckHOMEPos
 
 
DI01=1
DI02=1
Initall
 
 
    PROC main()                                                                         
        !************************************* 
        !    Main program for 
        !************************************* 
        Initall;                                                                               
        WHILE TRUE DO                                                           
             
            IF DI011=1 THEN                                                       
                rP1; 
            ELSEIF DI02=1 THEN                                               
             
rP2; 
            ENDIF 
            WaitTime 0.3;                                                             
        ENDWHILE                                                                       
    ENDPROC 
     
    PROC Initall()                                                                     
        AccSet 100,100;                                                               
        VelSet 100, 2000;                                                               
        rCheckHOMEPos;                                                           
         
         
    ENDPROC 
     
    PROC rCheckHOMEPos()                                                 
     
                TPErase; 
                TPWrite "Robot is not in the Wait-Position"; 
                TPWrite "Please jog the robot around the Wait position in manual"; 
                TPWrite "And execute the aHome routine."; 
                WaitTime 0.5; 
                EXIT; 
        ENDIF 
    ENDPROC 
  IF NOT CurrentPos(pHome,tool0) THEN 
 
 
29
                          
                                             
                    
 
 
     
    FUNC bool CurrentPos( 
        robtarget ComparePos, 
        INOUT tooldata TCP)                                                           
 
        VAR num Counter:=0;                                                           
        VAR robtarget ActualPos; 
 
        ! 
        !--------------------------------------------------------------------------------- 
        !Abstract : Function to compare current manipulator position with a given position 
        !--------------------------------------------------------------------------------- 
        ! 
        ActualPos:=CRobT(\Tool:=tool0\WObj:=wobj0); 
        IF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.xComparePos.trans.y-25 AND ActualPos.trans.yComparePos.trans.z-25 AND ActualPos.trans.zComparePos.rot.q1-0.1 AND ActualPos.rot.q1ComparePos.rot.q2-0.1 AND ActualPos.rot.q2ComparePos.rot.q3-0.1 AND ActualPos.rot.q3ComparePos.rot.q4-0.1 AND ActualPos.rot.q4