Ep#33: How to program a palletizing robotic Work Cell using ABB Robot Studio

Written by:

In this Episode, I have fully explained how to design a palletizing Robotic Workcell and how to program and simulate the Workcell in offline mode. This is a part of courses that i have made As automation Courses. Please Subscribe to my Youtube Channel and also This Website for new Contents in future.

Part1- ABB robot studio – Palletizing

Part2- ABB robot studio – Palletizing

Part3- ABB robot studio – Palletizing

Part4- ABB robot studio – Palletizing

Part5- ABB robot studio – Palletizing

The Rapid Code script example:

MODULE Module1
    CONST robtarget pickup1:=[[1409.909081707,1582.504021764,-116.052605064],[0,-0.011456954,0.999934367,0],[1,0,1,0],[1656.146116367,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget transit1:=[[1028.109312573,1302.138093546,478.053298229],[0,-0.011456937,0.999934367,0],[0,0,0,0],[1656.146116367,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget transit2:=[[1974.602403864,1302.138093546,478.053298229],[0,-0.011456937,0.999934367,0],[0,0,0,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget transit3:=[[2700.602403864,1302.138093546,878.053298229],[0,-0.011456937,0.999934367,0],[0,0,0,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown1:=[[2421.03288698,1495.300818217,41.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown2:=[[2421.03288698,1895.758781634,41.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown3:=[[2999.03,1551.300781634,41.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown4:=[[2999.03,1895.758781634,41.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown5:=[[2421.03288698,1495.300818217,341.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown6:=[[2421.03288698,1895.758781634,341.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown7:=[[2999.03,1551.300781634,341.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget putdown8:=[[2999.03,1895.758781634,341.383869828],[0,0.702737442,0.711449287,0],[0,0,1,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget transit4:=[[1974.602403864,1302.138093546,978.053298229],[0,-0.011456937,0.999934367,0],[0,0,0,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
    CONST robtarget transit5:=[[2700.602403864,1302.138093546,1378.053298229],[0,-0.011456937,0.999934367,0],[0,0,0,0],[2602.639207659,9E+09,9E+09,9E+09,9E+09,9E+09]];
	CONST robtarget Home:=[[3366.609003201,54.521,1308.672942026],[0,0,1,0],[0,0,0,0],[1656.146116367,9E+09,9E+09,9E+09,9E+09,9E+09]];
    
    VAR num B_X;!moving in X direction
    VAR num B_Y;!moving in Y direction
    VAR num P_Z;!height of the pallet
    VAR num counter1;
    VAR num counter2;
    VAR num counter3;
    VAR num counter4;
    VAR num counterT;
    VAR num B_ID;
    VAR num B_ID1;
    VAR num B_ID2;
    VAR num B_ID3;
    VAR num B_ID4;
    CONST num B_ID_Area1:=1500;
    CONST num B_ID_Area2:=900;
    CONST num B_ID_Area3:=2400;
    CONST num B_ID_Area4:=400;
    CONST num B_ID_Length1:=500;
    CONST num B_ID_Width1:=300;
    CONST num B_ID_Length2:=300;
    CONST num B_ID_Width2:=300;
    CONST num B_ID_Length3:=600;
    CONST num B_ID_Width3:=400;
    CONST num B_ID_Length4:=200;
    CONST num B_ID_Width4:=200;
    VAR num P_ID;
    CONST num Pal_Area1:= 9600;
    CONST num Pal_Length:= 1200;
    CONST num Pal_Width:= 800;
    VAR num Diff_W;
    VAR num Diff_L;
    
    !***********************************************************
    !
    ! Module:  Module1
    !
    ! Description:
    !   <Insert description here>
    !
    ! Author: 49179
    !
    ! Version: 1.0
    !
    !***********************************************************
    
    
    !***********************************************************
    !
    ! Procedure main
    !
    !   This is the entry point of your program
    !
    !***********************************************************
PROC main()
    
     IF DI_10=1 THEN
        
        counter1:=counter1+1;
        IF counter1=1 THEN 
         IF DI_10=1 THEN
         Movej transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit2,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown1,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit2,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF 
        
        
        
         IF counter1=2 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit2,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown2,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit2,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF
        
        
        
        
         IF counter1=3 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown3,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF
        
        
        
        
         IF counter1=4 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown4,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 3;
         Reset DO_10;
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
        IF counter1=5 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown5,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF 
        
        
        
         IF counter1=6 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown6,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit3,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF
        
        
        
        
         IF counter1=7 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit4,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown7,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit4,v1000,z100,Gripper_Sc\WObj:=wobj0;
         ENDIF
        ENDIF
        
        
        
        
         IF counter1=8 THEN 
         IF DI_10=1 THEN
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL pickup1,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_10;
         WaitTime 2;
         MoveL transit1,v1000,z100,Gripper_Sc\WObj:=wobj0;
        
      
        
         MoveL transit4,v1000,z100,Gripper_Sc\WObj:=wobj0;
         MoveL putdown8,v1000,z100,Gripper_Sc\WObj:=wobj0;
       
         WaitTime 2;
         Reset DO_10;
         MoveL transit4,v1000,z100,Gripper_Sc\WObj:=wobj0;
         Set DO_11;
         ENDIF
        ENDIF
       
        IF counter1>=9 THEN
            
            WaitTime 2;
             counter1:=0;
             reset DO_11;
         ENDIF
          
    ENDIF
    
ENDPROC

	
ENDMODULE
money-3-2

Donation

Please Help me to create Content for this Podcast

€3.00

Leave a comment