fanuc project

10
Robotics and Industrial Automation (Introduction to Robotics) Lab Group – 3 Conestoga College Submitted to – J. Wilson Pranav Sharma (7157118) Nitin Bhardwaj (7145139)

Upload: nitin-bhardwaj

Post on 14-Apr-2017

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fanuc Project

Robotics and Industrial Automation

(Introduction to Robotics)

Lab Group – 3

Conestoga College

Submitted to – J. Wilson Pranav Sharma (7157118)

Nitin Bhardwaj (7145139)

Page 2: Fanuc Project

Table of ContentsRobotics and Industrial Automation..........................................................................................................1

1. Equipment List....................................................................................................................................3

2. Work cell task description..................................................................................................................3

3. Program Listing...................................................................................................................................4

4. Problems Encountered.......................................................................................................................7

5. Discussion on Improvements..............................................................................................................7

Page 3: Fanuc Project

1. Equipment List1.1.LR-Mate 200iC robot1.2.Robot controller1.3.Air supply1.4.Pendant1.5.Shuttle, Cylinder, Clamp, Short Stroke, Rotary Actuator, Input tray, Output tray

2. Work cell task description2.1.Session One

In session one, we developed a simple program which included teaching the pick and drop points for a single block. This program allowed the robot to move the block from the input pallet to the rotary actuator.

2.2.Session TwoDuring this session, 4 blocks were placed into the 4 corners of the input pallet with the letter side facing the check tray. The robot moved one block to the rotary actuator and the block’s orientation was changed as a result of the rotation of the rotary actuator. When the rotation got completed, robot picked up the block again and placed it in the stamping station. After this, the clamp actuator was extended to hold the block in position after which stamping cylinder was pushed forward to imply that the block has been stamped. In the next step, the robot picked up the block again and placed it on the check tray which was to be transferred to the operator for inspection. After inspection, the robot held the block and placed it on one of the output pallet with the letters’ side facing up. We just had to teach separate pick and drop points for each block. The whole process in between was put in a separate program which was called again and again for each block.

2.3.Session Three In this session, we had to create new programs in order to palletize 6 blocks from the input pallet to the output pallet. Instead of calling the sub-program 4 times in session 2, we used the palletize command to empty the input pallet and fill the output pallet with the 6 blocks. We also needed to add a register to count the number of blocks placed. Once the output tray was filled with 6 blocks, it was extended and the robot was asked to get back to the home position. In order to carry out another cycle, the output tray was required to retract which could be done by pressing the button beside the operator.

Page 4: Fanuc Project

3. Program Listing3.1.Session One

1:J PR[1:HOME] 100% FINE ;Start at home position 2: DO[101:OUT_CYL]=OFF ;Tray to operator for inspection 3: WAIT DI[105]=OFF ;Wait until operator push button released 4: DO[101:OUT_CYL]=ON ;Tray to robot 5:J P[2:ABV_TRY] 100% FINE ;Move to position abv_try 6: WAIT DI[102]=ON ;Wait for tray @ robot sensor is on 7:L P[1:TRAY] 100mm/sec FINE ;Move to pick position 8: DO[102:VAC]=ON ;Turn on vacuum 9: DO[103:Input Simulated]=OFF ;Ensure rotary at correct position 10:L P[2:ABV_TRY] 100mm/sec FINE ;Move to position abv_try 11: DO[101:OUT_CYL]=OFF ;Move tray back to operator 12:J P[4:ABV_RTRY] 100% FINE ;Move to position abv_rotary 13:L P[3:ROTARY] 100mm/sec FINE ;Move to position rotary 14: DO[102:VAC]=OFF ;Turn off vacuum 15:L P[4:ABV_RTRY] 100mm/sec FINE ;Move to position abv_rotary 16: WAIT .50(sec) ;Wait for 0.5 second 17:J PR[1:HOME] 100% FINE ;Finish home position

3.2.Session Two

/Program: KMNP1, to rotate, emboss and inspect the block 1:J P[3:ABV_ROT] 100% FINE ;Move to position above rotary 2: DO[107:ROTARY]=OFF ;Ensure rotary at correct position 3:L P[4:ROT] 100mm/sec FINE ;Move to position rotary to drop the block; 4: DO[102:VAC]=OFF ;Turn off the vacuum 5:L P[3:ABV_ROT] 100mm/sec FINE ;Move back to position above rotary 6: DO[107:ROTARY]=ON ;Rotate the rotary to make the letter side face up 7:L P[5:ROT1] 100mm/sec FINE ;Move to position rotary to pick the block up 8: DO[102:VAC]=ON ;Turn on the vacuum 9:L P[3:ABV_ROT] 100mm/sec FINE ;Move to position above the rotary 10:J P[6:ABV_SS] 100% FINE ;Move to position above stamp station 11:L P[7:SS] 100mm/sec FINE ;Move to position stamp station to drop the block 12: DO[102:VAC]=OFF ;Turn off the vacuum

Page 5: Fanuc Project

13:L P[6:ABV_SS] 100mm/sec FINE ;Move back to position above stamp station 14: DO[105:CLMP]=ON ;Extend the clamp to push the block into position 15: DO[104]=ON ;Extend the stamping cylinder to emboss the block 16: WAIT .50(sec) ;Wait for 0.5 second 17: DO[104]=OFF ;Retract the stamping cylinder 18: DO[105:CLMP]=OFF ;Retract the clamp 19:L P[8:SS1] 100mm/sec FINE ;Move to position new stamp station 20: DO[102:VAC]=ON ;Turn on the vacuum to pick up the block 21:L P[6:ABV_SS] 100mm/sec FINE ;Move to position above stamp station 22: DO[101:OUT_CYL]=ON ;Turn on the input cylinder to move it @ robot 23: WAIT DI[102]=ON ;Wait until input cylinder @ robot sensor is on 24:J P[9:ABV_TTY] 100% FINE ;Move to position above tray 25:L P[10:TY] 100mm/sec FINE ;Move to position tray to drop the block 26: DO[102:VAC]=OFF ;Turn off the vacuum 27:L P[9:ABV_TTY] 100mm/sec FINE ;Move back to position above tray 28: DO[101:OUT_CYL]=OFF ;Turn off the input cylinder to move it @ operator 29: WAIT DI[105]=ON ;Wait until the operator push button is pressed 30: DO[101:OUT_CYL]=ON ;Move the input cylinder back to robot 31: WAIT DI[102]=ON ;Wait until input cylinder @ robot sensor is on 32: L P[10:TY] 100mm/sec FINE ;Move to position tray to pick the block up 33: DO[102:VAC]=ON ;Turn on the vacuum 34:L P[9:ABV_TTY] 100mm/sec FINE ;Move to position above tray

/Program: MAIN_KMN (Main program)

1:J PR[1:HOME] 100% FINE ;Start at home position 2:J P[1:ABV_B1] 100% FINE ;Move to position above block_1 3:L P[2:B1] 100mm/sec FINE ;Move to position block_1 4: DO[102:VAC]=ON ;Turn on the vacuum to pick the block up 5:L P[1:ABV_B1] 100mm/sec FINE ;Move back to position above block_1 6: CALL KMNP1 ;Call program KMNP1 7:J P[3:A_D1] 100% FINE ;Move to position above drop_1 8:L P[4:D1] 100mm/sec FINE ;Move to position drop_1 9: DO[102:VAC]=OFF ;Turn off the vacuum to drop the block 10:L P[3:A_D1] 100mm/sec FINE ;Move back to position above drop_1 11:J P[5:AB2] 100% FINE ;Move to position above block_2 12:L P[6:B2] 100mm/sec FINE ;Move to position block_2 13: DO[102:VAC]=ON ;Turn on the vacuum to pick the block up 14:L P[5:AB2] 100mm/sec FINE ;Move to position above block_2 15: CALL KMNP1 ;Call program KMNP1 16:J P[7:AD2] 100% FINE ;Move to position above drop_2 17:L P[8:D2] 100mm/sec FINE ;Move to position drop_2 18: DO[102:VAC]=OFF ;Turn off the vacuum to drop the block 19:L P[7:AD2] 100mm/sec FINE ;Move to position above drop_2

Page 6: Fanuc Project

20:J P[9:AB3] 100% FINE ;Move to position above block_3 21:L P[10:B3] 100mm/sec FINE ;Move to position block_3 22: DO[102:VAC]=ON ;Turn on the vacuum to pick the block up 23:L P[9:AB3] 100mm/sec FINE ;Move to position above block_3 24: CALL KMNP1 ;Call program KMNP1 25:J P[11:AD3] 100% FINE ;Move to position above drop_3 26:L P[12:D3] 100mm/sec FINE ;Move to position drop_3 27: DO[102:VAC]=OFF ;Turn off the vacuum 28:L P[11:AD3] 100mm/sec FINE ;Move to position above drop_3 29:J P[13:AB4] 100% FINE ;Move to position above block_4 30:L P[14:B4] 100mm/sec FINE ;Move to position block_4 31: DO[102:VAC]=ON ;Turn on the vacuum to pick the block up 32:L P[13:AB4] 100mm/sec FINE ;Move to position above block_4 33: CALL KMNP1 ;Call program KMNP1 34:J P[15:AD4] 100% FINE ;Move to position above drop_4 35:L P[16:D4] 100mm/sec FINE ;Move to position drop_4 36: DO[102:VAC]=OFF ;Turn off the vacuum to drop the block 37:L P[15:AD4] 100mm/sec FINE ;Move to position above drop_4 38:J PR[1:HOME] 100% FINE ;Finish at home position

3.3.Session Three

/Program KMNP1 in session 2 is still used in this session/Program: P_KMNP (PALLETIZING FOR INPUT TRAY) 1: PALLETIZING-B_1 ;palletizing start 2:J PAL_1[A_1] 30% FINE ;Move to position above the pick-up location 3:J PAL_1[BTM] 30% FINE ;Move to the actual location in which the block will be picked up 4: DO[102:VAC]=ON ;Turn on the vacuum 5:J PAL_1[R_1] 30% FINE ;Move to position above the pick-up location 6: PALLETIZING-END_1 ;palletizing end/Program: D_KMNP (PALLETIZING FOR OUTPUT TRAY) 1: PALLETIZING-B_1 ;palletizing start 2:J PAL_1[A_1] 30% FINE ;Move to position above the drop location 3:J PAL_1[BTM] 30% FINE ;Move to the actual location in which the block will be dropped 4: DO[102:VAC]=OFF ;Turn off the vacuum 5:J PAL_1[R_1] 30% FINE ;Move to position above the drop location 6: PALLETIZING-END_1 ;palletizing end

/Program: MAIN_KDP (Main program) 1: PL[1]=[1,1,1] ;Reset the register to the first location 2: R[1:x]=1 ;A register to count the number of blocks placed

Page 7: Fanuc Project

3: LBL[1:LP] ;Set label 1 4:J PR[1:HOME] 100% FINE ;Start at home position 5: CALL P_KMNP ;Call program P_KMNP 6: CALL KMNP1 ;Call program KMNP1 7: CALL D_KMNP ;Call program D_KMNP 8: R[1:x]=R[1:x]+1 ;Increase the value of register by 1 9: IF R[1:x]>6,JMP LBL[2] ;If the 6 blocks have been placed, jump to label 2 10: JMP LBL[1] ;Jump to label 1 11: LBL[2] ;set label 2 12: DO[106:OUT_CYL]=ON ;After all 6 blocks are placed, turn on to extend the output tray 13: WAIT DI[105]=OFF ;Wait until the operator push button is pressed 14: DO[106:OUT_CYL]=ON ;Turn off to retract the output tray 15:J PR[1:HOME] 100% FINE ;Finish at home position

4. Problems Encountered All of the code had to be typed on the teach pendant which took considerable amount

of time to get familiarized with. There were different sized blocks which were posing issues when we had to judge a safe

position for a block to be picked and placed at different positions. The specific blocks which were a little bigger were not getting fit exactly on the shuttle

as well as on the pallets. A couple of them also got stuck during the process of placing the block on the rotary actuator. This also made the end effector twist a little as it was moving downwards.

The palletize command made the robot judge the pick and place points slightly different than the ones we actually taught.

Also, when the robot was running on the palletize command in session 3 and was undergoing the process of placing parts on the output pallet, it was dropping the part as it was moving upwards which could have been an internal error within the software.

When robot was made to run on full speed, it was just throwing the parts at all of the drop positions as we forgot to include some wait commands at critical junctures.

5. Discussion on Improvements The manual could have been more informative about session 3. All the blocks should have been identical in size. It would have been an asset if the coding could have been done on the computer. This

would have helped to get the tasks done faster than usual.

Page 8: Fanuc Project