SlideShare una empresa de Scribd logo
1 de 7
Robotics and Industrial Automation
(Introduction to Robotics)
Lab Group – 3
Conestoga College
Submittedto – J. Wilson Pranav Sharma (7157118)
NitinBhardwaj (7145139)
Table of Contents
Robotics 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
1.Equipment List
1.1.LR-Mate 200iC robot
1.2.Robot controller
1.3.Air supply
1.4.Pendant
1.5.Shuttle, Cylinder, Clamp, Short Stroke, Rotary Actuator, Input tray, Output tray
2.Work cell task description
2.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 Two
During 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.
3.ProgramListing
3.1.SessionOne
1:J PR[1:HOME] 100% FINE ;Start at home position
2: DO[101:OUT_CYL]=OFF ;Tray to operatorfor inspection
3: WAIT DI[105]=OFF ;Wait until operatorpushbuttonreleased
4: DO[101:OUT_CYL]=ON ;Tray to robot
5:J P[2:ABV_TRY] 100% FINE ;Move to positionabv_try
6: WAIT DI[102]=ON ;Wait fortray @ robotsensorison
7:L P[1:TRAY] 100mm/sec FINE ;Move to pick position
8: DO[102:VAC]=ON ;Turn on vacuum
9: DO[103:InputSimulated]=OFF ;Ensure rotary at correct position
10:L P[2:ABV_TRY] 100mm/sec FINE ;Move to positionabv_try
11: DO[101:OUT_CYL]=OFF ;Move tray back to operator
12:J P[4:ABV_RTRY] 100% FINE ;Move to positionabv_rotary
13:L P[3:ROTARY] 100mm/sec FINE ;Move to positionrotary
14: DO[102:VAC]=OFF ;Turn off vacuum
15:L P[4:ABV_RTRY] 100mm/sec FINE ;Move to positionabv_rotary
16: WAIT .50(sec) ;Wait for0.5 second
17:J PR[1:HOME] 100% FINE ;Finishhome position
3.2.Session Two
/Program: KMNP1, to rotate, emboss and inspect the block
1:J P[3:ABV_ROT] 100% FINE ;Move to positionabove rotary
2: DO[107:ROTARY]=OFF ;Ensure rotary at correct position
3:L P[4:ROT] 100mm/sec FINE ;Move to positionrotaryto dropthe block;
4: DO[102:VAC]=OFF ;Turn off the vacuum
5:L P[3:ABV_ROT] 100mm/secFINE ;Move back to positionabove rotary
6: DO[107:ROTARY]=ON ;Rotate the rotary to make the letterside face up
7:L P[5:ROT1] 100mm/sec FINE ;Move to positionrotaryto pickthe blockup
8: DO[102:VAC]=ON ;Turn on the vacuum
9:L P[3:ABV_ROT] 100mm/secFINE ;Move to positionabove the rotary
10:J P[6:ABV_SS] 100% FINE ;Move to positionabove stampstation
11:L P[7:SS] 100mm/sec FINE ;Move to positionstampstationtodrop the block
12: DO[102:VAC]=OFF ;Turn off the vacuum
13:L P[6:ABV_SS] 100mm/secFINE ;Move back to positionabove stampstation
14: DO[105:CLMP]=ON ;Extendthe clampto pushthe blockintoposition
15: DO[104]=ON ;Extendthe stampingcylinderto embossthe block
16: WAIT .50(sec) ;Wait for0.5 second
17: DO[104]=OFF ;Retract the stampingcylinder
18: DO[105:CLMP]=OFF ;Retract the clamp
19:L P[8:SS1] 100mm/sec FINE ;Move to positionnew stampstation
20: DO[102:VAC]=ON ;Turn on the vacuumto pickup the block
21:L P[6:ABV_SS] 100mm/secFINE ;Move to positionabove stampstation
22: DO[101:OUT_CYL]=ON ;Turn on the inputcylindertomove it@ robot
23: WAIT DI[102]=ON ;Wait until inputcylinder@robotsensoris on
24:J P[9:ABV_TTY] 100% FINE ;Move to positionabove tray
25:L P[10:TY] 100mm/sec FINE ;Move to positiontrayto drop the block
26: DO[102:VAC]=OFF ;Turn off the vacuum
27:L P[9:ABV_TTY] 100mm/sec FINE ;Move backto positionabove tray
28: DO[101:OUT_CYL]=OFF ;Turn off the inputcylindertomove it@ operator
29: WAIT DI[105]=ON ;Wait until the operatorpushbuttonispressed
30: DO[101:OUT_CYL]=ON ;Move the inputcylinderbacktorobot
31: WAIT DI[102]=ON ;Wait until inputcylinder@robotsensoris on
32: L P[10:TY] 100mm/sec FINE ;Move to positiontrayto pickthe blockup
33: DO[102:VAC]=ON ;Turn on the vacuum
34:L P[9:ABV_TTY] 100mm/sec FINE ;Move topositionabove tray
/Program: MAIN_KMN (Mainprogram)
1:J PR[1:HOME] 100% FINE ;Start at home position
2:J P[1:ABV_B1] 100% FINE ;Move to positionabove block_1
3:L P[2:B1] 100mm/sec FINE ;Move to positionblock_1
4: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup
5:L P[1:ABV_B1] 100mm/sec FINE ;Move back to positionabove block_1
6: CALL KMNP1 ;Call programKMNP1
7:J P[3:A_D1] 100% FINE ;Move to positionabove drop_1
8:L P[4:D1] 100mm/sec FINE ;Move to positiondrop_1
9: DO[102:VAC]=OFF ;Turn off the vacuum todrop the block
10:L P[3:A_D1] 100mm/sec FINE ;Move back to positionabove drop_1
11:J P[5:AB2] 100% FINE ;Move to positionabove block_2
12:L P[6:B2] 100mm/sec FINE ;Move to position block_2
13: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup
14:L P[5:AB2] 100mm/sec FINE ;Move to positionabove block_2
15: CALL KMNP1 ;Call programKMNP1
16:J P[7:AD2] 100% FINE ;Move to positionabove drop_2
17:L P[8:D2] 100mm/sec FINE ;Move to positiondrop_2
18: DO[102:VAC]=OFF ;Turn off the vacuum todrop the block
19:L P[7:AD2] 100mm/sec FINE ;Move to positionabove drop_2
20:J P[9:AB3] 100% FINE ;Move to positionabove block_3
21:L P[10:B3] 100mm/sec FINE ;Move to positionblock_3
22: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup
23:L P[9:AB3] 100mm/sec FINE ;Move to positionabove block_3
24: CALL KMNP1 ;Call programKMNP1
25:J P[11:AD3] 100% FINE ;Move to positionabove drop_3
26:L P[12:D3] 100mm/sec FINE ;Move to positiondrop_3
27: DO[102:VAC]=OFF ;Turn off the vacuum
28:L P[11:AD3] 100mm/sec FINE ;Move to positionabove drop_3
29:J P[13:AB4] 100% FINE ;Move to positionabove block_4
30:L P[14:B4] 100mm/sec FINE ;Move to positionblock_4
31: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup
32:L P[13:AB4] 100mm/sec FINE ;Move to positionabove block_4
33: CALL KMNP1 ;Call programKMNP1
34:J P[15:AD4] 100% FINE ;Move to positionabove drop_4
35:L P[16:D4] 100mm/sec FINE ;Move to positiondrop_4
36: DO[102:VAC]=OFF ;Turn off the vacuum todrop the block
37:L P[15:AD4] 100mm/sec FINE ;Move to positionabove drop_4
38:J PR[1:HOME] 100% FINE ;Finishathome position
3.3.Session Three
/Program KMNP1 insession2 is still usedinthis session
/Program: P_KMNP (PALLETIZING FORINPUTTRAY)
1: PALLETIZING-B_1 ;palletizingstart
2:J PAL_1[A_1] 30% FINE ;Move to positionabove the pick-uplocation
3:J PAL_1[BTM] 30% FINE ;Move to the actual locationinwhichthe blockwill be
pickedup
4: DO[102:VAC]=ON ;Turn on the vacuum
5:J PAL_1[R_1] 30% FINE ;Move to positionabove the pick-uplocation
6: PALLETIZING-END_1 ;palletizingend
/Program: D_KMNP (PALLETIZING FOROUTPUTTRAY)
1: PALLETIZING-B_1 ;palletizingstart
2:J PAL_1[A_1] 30% FINE ;Move to positionabove the droplocation
3:J PAL_1[BTM] 30% FINE ;Move to the actual locationinwhichthe blockwill be
dropped
4: DO[102:VAC]=OFF ;Turn off the vacuum
5:J PAL_1[R_1] 30% FINE ;Move to positionabove the droplocation
6: PALLETIZING-END_1 ;palletizingend
/Program: MAIN_KDP (Mainprogram)
1: PL[1]=[1,1,1] ;Resetthe registertothe firstlocation
2: R[1:x]=1 ;A registertocountthe numberof blocksplaced
3: LBL[1:LP] ;Setlabel 1
4:J PR[1:HOME] 100% FINE ;Start at home position
5: CALL P_KMNP ;Call programP_KMNP
6: CALL KMNP1 ;Call programKMNP1
7: CALL D_KMNP ;Call programD_KMNP
8: R[1:x]=R[1:x]+1 ;Increase the value of registerby1
9: IF R[1:x]>6,JMPLBL[2] ;If the 6 blockshave beenplaced,jumptolabel 2
10: JMP LBL[1] ;Jumpto label 1
11: LBL[2] ;setlabel 2
12: DO[106:OUT_CYL]=ON ;Afterall 6 blocksare placed,turnon to extendthe
outputtray
13: WAIT DI[105]=OFF ;Wait until the operatorpushbuttonispressed
14: DO[106:OUT_CYL]=ON ;Turn off to retract the outputtray
15:J PR[1:HOME] 100% FINE ;Finishathome 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.

Más contenido relacionado

Similar a Fanuc Project

helium porosimeter (Reservoir lab)
helium porosimeter (Reservoir lab)helium porosimeter (Reservoir lab)
helium porosimeter (Reservoir lab)Bakhtiar Mahmood
 
Vacuum loader user manual
Vacuum loader user manualVacuum loader user manual
Vacuum loader user manualssuser660147
 
The Ring programming language version 1.5.4 book - Part 57 of 185
The Ring programming language version 1.5.4 book - Part 57 of 185The Ring programming language version 1.5.4 book - Part 57 of 185
The Ring programming language version 1.5.4 book - Part 57 of 185Mahmoud Samir Fayed
 
APT part programming
APT part programmingAPT part programming
APT part programmingnmahi96
 
Chapter 3 - Flow of Control Part II.pdf
Chapter 3  - Flow of Control Part II.pdfChapter 3  - Flow of Control Part II.pdf
Chapter 3 - Flow of Control Part II.pdfKirubelWondwoson1
 
Isa saint-louis-exceptional-opportunities-short-course-day-3
Isa saint-louis-exceptional-opportunities-short-course-day-3Isa saint-louis-exceptional-opportunities-short-course-day-3
Isa saint-louis-exceptional-opportunities-short-course-day-3Jim Cahill
 
Crp680 new common rail pump tester
Crp680 new common rail pump testerCrp680 new common rail pump tester
Crp680 new common rail pump testerWendy Diesel
 
Systems test alpha
Systems test alphaSystems test alpha
Systems test alphacbonadeo
 
Automationforum Interview Questions
Automationforum  Interview QuestionsAutomationforum  Interview Questions
Automationforum Interview Questionsautomationforum
 
A-4E Community Guide.pdf
A-4E Community Guide.pdfA-4E Community Guide.pdf
A-4E Community Guide.pdfjokerhot
 
Automatic-softener-valve-F74A_F74B-series.pdf
Automatic-softener-valve-F74A_F74B-series.pdfAutomatic-softener-valve-F74A_F74B-series.pdf
Automatic-softener-valve-F74A_F74B-series.pdfssuserb54298
 
QuecPython_Weather_Station_Demo_Tutorial.pdf
QuecPython_Weather_Station_Demo_Tutorial.pdfQuecPython_Weather_Station_Demo_Tutorial.pdf
QuecPython_Weather_Station_Demo_Tutorial.pdfJohnEerl
 
Plant connect for plastics case study
Plant connect for plastics case studyPlant connect for plastics case study
Plant connect for plastics case studyVardhman Envirotech
 
08 gt-b5330-tshoo-7
08 gt-b5330-tshoo-708 gt-b5330-tshoo-7
08 gt-b5330-tshoo-7rizavirsada
 
Experimental and numerical stress analysis of a rectangular wing structure
Experimental and numerical stress analysis of a rectangular wing structureExperimental and numerical stress analysis of a rectangular wing structure
Experimental and numerical stress analysis of a rectangular wing structureLahiru Dilshan
 
Gf lac m1600-3600_eng_0412
Gf lac m1600-3600_eng_0412Gf lac m1600-3600_eng_0412
Gf lac m1600-3600_eng_0412alexxq
 

Similar a Fanuc Project (19)

helium porosimeter (Reservoir lab)
helium porosimeter (Reservoir lab)helium porosimeter (Reservoir lab)
helium porosimeter (Reservoir lab)
 
Vacuum loader user manual
Vacuum loader user manualVacuum loader user manual
Vacuum loader user manual
 
The Ring programming language version 1.5.4 book - Part 57 of 185
The Ring programming language version 1.5.4 book - Part 57 of 185The Ring programming language version 1.5.4 book - Part 57 of 185
The Ring programming language version 1.5.4 book - Part 57 of 185
 
APT part programming
APT part programmingAPT part programming
APT part programming
 
Chapter 3 - Flow of Control Part II.pdf
Chapter 3  - Flow of Control Part II.pdfChapter 3  - Flow of Control Part II.pdf
Chapter 3 - Flow of Control Part II.pdf
 
Isa saint-louis-exceptional-opportunities-short-course-day-3
Isa saint-louis-exceptional-opportunities-short-course-day-3Isa saint-louis-exceptional-opportunities-short-course-day-3
Isa saint-louis-exceptional-opportunities-short-course-day-3
 
Crp680 new common rail pump tester
Crp680 new common rail pump testerCrp680 new common rail pump tester
Crp680 new common rail pump tester
 
Systems test alpha
Systems test alphaSystems test alpha
Systems test alpha
 
Automationforum Interview Questions
Automationforum  Interview QuestionsAutomationforum  Interview Questions
Automationforum Interview Questions
 
Full Automatic Pcb loader Operation manual
Full Automatic Pcb loader Operation manualFull Automatic Pcb loader Operation manual
Full Automatic Pcb loader Operation manual
 
A-4E Community Guide.pdf
A-4E Community Guide.pdfA-4E Community Guide.pdf
A-4E Community Guide.pdf
 
Automatic-softener-valve-F74A_F74B-series.pdf
Automatic-softener-valve-F74A_F74B-series.pdfAutomatic-softener-valve-F74A_F74B-series.pdf
Automatic-softener-valve-F74A_F74B-series.pdf
 
QuecPython_Weather_Station_Demo_Tutorial.pdf
QuecPython_Weather_Station_Demo_Tutorial.pdfQuecPython_Weather_Station_Demo_Tutorial.pdf
QuecPython_Weather_Station_Demo_Tutorial.pdf
 
Plant connect for plastics case study
Plant connect for plastics case studyPlant connect for plastics case study
Plant connect for plastics case study
 
08 gt-b5330-tshoo-7
08 gt-b5330-tshoo-708 gt-b5330-tshoo-7
08 gt-b5330-tshoo-7
 
Experimental and numerical stress analysis of a rectangular wing structure
Experimental and numerical stress analysis of a rectangular wing structureExperimental and numerical stress analysis of a rectangular wing structure
Experimental and numerical stress analysis of a rectangular wing structure
 
MITSUBISHI ELECTRIC SPLIT-TYPE
MITSUBISHI ELECTRIC SPLIT-TYPEMITSUBISHI ELECTRIC SPLIT-TYPE
MITSUBISHI ELECTRIC SPLIT-TYPE
 
Alu description[1]
Alu description[1]Alu description[1]
Alu description[1]
 
Gf lac m1600-3600_eng_0412
Gf lac m1600-3600_eng_0412Gf lac m1600-3600_eng_0412
Gf lac m1600-3600_eng_0412
 

Fanuc Project

  • 1. Robotics and Industrial Automation (Introduction to Robotics) Lab Group – 3 Conestoga College Submittedto – J. Wilson Pranav Sharma (7157118) NitinBhardwaj (7145139)
  • 2. Table of Contents Robotics 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
  • 3. 1.Equipment List 1.1.LR-Mate 200iC robot 1.2.Robot controller 1.3.Air supply 1.4.Pendant 1.5.Shuttle, Cylinder, Clamp, Short Stroke, Rotary Actuator, Input tray, Output tray 2.Work cell task description 2.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 Two During 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.
  • 4. 3.ProgramListing 3.1.SessionOne 1:J PR[1:HOME] 100% FINE ;Start at home position 2: DO[101:OUT_CYL]=OFF ;Tray to operatorfor inspection 3: WAIT DI[105]=OFF ;Wait until operatorpushbuttonreleased 4: DO[101:OUT_CYL]=ON ;Tray to robot 5:J P[2:ABV_TRY] 100% FINE ;Move to positionabv_try 6: WAIT DI[102]=ON ;Wait fortray @ robotsensorison 7:L P[1:TRAY] 100mm/sec FINE ;Move to pick position 8: DO[102:VAC]=ON ;Turn on vacuum 9: DO[103:InputSimulated]=OFF ;Ensure rotary at correct position 10:L P[2:ABV_TRY] 100mm/sec FINE ;Move to positionabv_try 11: DO[101:OUT_CYL]=OFF ;Move tray back to operator 12:J P[4:ABV_RTRY] 100% FINE ;Move to positionabv_rotary 13:L P[3:ROTARY] 100mm/sec FINE ;Move to positionrotary 14: DO[102:VAC]=OFF ;Turn off vacuum 15:L P[4:ABV_RTRY] 100mm/sec FINE ;Move to positionabv_rotary 16: WAIT .50(sec) ;Wait for0.5 second 17:J PR[1:HOME] 100% FINE ;Finishhome position 3.2.Session Two /Program: KMNP1, to rotate, emboss and inspect the block 1:J P[3:ABV_ROT] 100% FINE ;Move to positionabove rotary 2: DO[107:ROTARY]=OFF ;Ensure rotary at correct position 3:L P[4:ROT] 100mm/sec FINE ;Move to positionrotaryto dropthe block; 4: DO[102:VAC]=OFF ;Turn off the vacuum 5:L P[3:ABV_ROT] 100mm/secFINE ;Move back to positionabove rotary 6: DO[107:ROTARY]=ON ;Rotate the rotary to make the letterside face up 7:L P[5:ROT1] 100mm/sec FINE ;Move to positionrotaryto pickthe blockup 8: DO[102:VAC]=ON ;Turn on the vacuum 9:L P[3:ABV_ROT] 100mm/secFINE ;Move to positionabove the rotary 10:J P[6:ABV_SS] 100% FINE ;Move to positionabove stampstation 11:L P[7:SS] 100mm/sec FINE ;Move to positionstampstationtodrop the block 12: DO[102:VAC]=OFF ;Turn off the vacuum 13:L P[6:ABV_SS] 100mm/secFINE ;Move back to positionabove stampstation 14: DO[105:CLMP]=ON ;Extendthe clampto pushthe blockintoposition
  • 5. 15: DO[104]=ON ;Extendthe stampingcylinderto embossthe block 16: WAIT .50(sec) ;Wait for0.5 second 17: DO[104]=OFF ;Retract the stampingcylinder 18: DO[105:CLMP]=OFF ;Retract the clamp 19:L P[8:SS1] 100mm/sec FINE ;Move to positionnew stampstation 20: DO[102:VAC]=ON ;Turn on the vacuumto pickup the block 21:L P[6:ABV_SS] 100mm/secFINE ;Move to positionabove stampstation 22: DO[101:OUT_CYL]=ON ;Turn on the inputcylindertomove it@ robot 23: WAIT DI[102]=ON ;Wait until inputcylinder@robotsensoris on 24:J P[9:ABV_TTY] 100% FINE ;Move to positionabove tray 25:L P[10:TY] 100mm/sec FINE ;Move to positiontrayto drop the block 26: DO[102:VAC]=OFF ;Turn off the vacuum 27:L P[9:ABV_TTY] 100mm/sec FINE ;Move backto positionabove tray 28: DO[101:OUT_CYL]=OFF ;Turn off the inputcylindertomove it@ operator 29: WAIT DI[105]=ON ;Wait until the operatorpushbuttonispressed 30: DO[101:OUT_CYL]=ON ;Move the inputcylinderbacktorobot 31: WAIT DI[102]=ON ;Wait until inputcylinder@robotsensoris on 32: L P[10:TY] 100mm/sec FINE ;Move to positiontrayto pickthe blockup 33: DO[102:VAC]=ON ;Turn on the vacuum 34:L P[9:ABV_TTY] 100mm/sec FINE ;Move topositionabove tray /Program: MAIN_KMN (Mainprogram) 1:J PR[1:HOME] 100% FINE ;Start at home position 2:J P[1:ABV_B1] 100% FINE ;Move to positionabove block_1 3:L P[2:B1] 100mm/sec FINE ;Move to positionblock_1 4: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup 5:L P[1:ABV_B1] 100mm/sec FINE ;Move back to positionabove block_1 6: CALL KMNP1 ;Call programKMNP1 7:J P[3:A_D1] 100% FINE ;Move to positionabove drop_1 8:L P[4:D1] 100mm/sec FINE ;Move to positiondrop_1 9: DO[102:VAC]=OFF ;Turn off the vacuum todrop the block 10:L P[3:A_D1] 100mm/sec FINE ;Move back to positionabove drop_1 11:J P[5:AB2] 100% FINE ;Move to positionabove block_2 12:L P[6:B2] 100mm/sec FINE ;Move to position block_2 13: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup 14:L P[5:AB2] 100mm/sec FINE ;Move to positionabove block_2 15: CALL KMNP1 ;Call programKMNP1 16:J P[7:AD2] 100% FINE ;Move to positionabove drop_2 17:L P[8:D2] 100mm/sec FINE ;Move to positiondrop_2 18: DO[102:VAC]=OFF ;Turn off the vacuum todrop the block 19:L P[7:AD2] 100mm/sec FINE ;Move to positionabove drop_2 20:J P[9:AB3] 100% FINE ;Move to positionabove block_3 21:L P[10:B3] 100mm/sec FINE ;Move to positionblock_3
  • 6. 22: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup 23:L P[9:AB3] 100mm/sec FINE ;Move to positionabove block_3 24: CALL KMNP1 ;Call programKMNP1 25:J P[11:AD3] 100% FINE ;Move to positionabove drop_3 26:L P[12:D3] 100mm/sec FINE ;Move to positiondrop_3 27: DO[102:VAC]=OFF ;Turn off the vacuum 28:L P[11:AD3] 100mm/sec FINE ;Move to positionabove drop_3 29:J P[13:AB4] 100% FINE ;Move to positionabove block_4 30:L P[14:B4] 100mm/sec FINE ;Move to positionblock_4 31: DO[102:VAC]=ON ;Turn on the vacuumto pickthe blockup 32:L P[13:AB4] 100mm/sec FINE ;Move to positionabove block_4 33: CALL KMNP1 ;Call programKMNP1 34:J P[15:AD4] 100% FINE ;Move to positionabove drop_4 35:L P[16:D4] 100mm/sec FINE ;Move to positiondrop_4 36: DO[102:VAC]=OFF ;Turn off the vacuum todrop the block 37:L P[15:AD4] 100mm/sec FINE ;Move to positionabove drop_4 38:J PR[1:HOME] 100% FINE ;Finishathome position 3.3.Session Three /Program KMNP1 insession2 is still usedinthis session /Program: P_KMNP (PALLETIZING FORINPUTTRAY) 1: PALLETIZING-B_1 ;palletizingstart 2:J PAL_1[A_1] 30% FINE ;Move to positionabove the pick-uplocation 3:J PAL_1[BTM] 30% FINE ;Move to the actual locationinwhichthe blockwill be pickedup 4: DO[102:VAC]=ON ;Turn on the vacuum 5:J PAL_1[R_1] 30% FINE ;Move to positionabove the pick-uplocation 6: PALLETIZING-END_1 ;palletizingend /Program: D_KMNP (PALLETIZING FOROUTPUTTRAY) 1: PALLETIZING-B_1 ;palletizingstart 2:J PAL_1[A_1] 30% FINE ;Move to positionabove the droplocation 3:J PAL_1[BTM] 30% FINE ;Move to the actual locationinwhichthe blockwill be dropped 4: DO[102:VAC]=OFF ;Turn off the vacuum 5:J PAL_1[R_1] 30% FINE ;Move to positionabove the droplocation 6: PALLETIZING-END_1 ;palletizingend /Program: MAIN_KDP (Mainprogram) 1: PL[1]=[1,1,1] ;Resetthe registertothe firstlocation 2: R[1:x]=1 ;A registertocountthe numberof blocksplaced 3: LBL[1:LP] ;Setlabel 1 4:J PR[1:HOME] 100% FINE ;Start at home position
  • 7. 5: CALL P_KMNP ;Call programP_KMNP 6: CALL KMNP1 ;Call programKMNP1 7: CALL D_KMNP ;Call programD_KMNP 8: R[1:x]=R[1:x]+1 ;Increase the value of registerby1 9: IF R[1:x]>6,JMPLBL[2] ;If the 6 blockshave beenplaced,jumptolabel 2 10: JMP LBL[1] ;Jumpto label 1 11: LBL[2] ;setlabel 2 12: DO[106:OUT_CYL]=ON ;Afterall 6 blocksare placed,turnon to extendthe outputtray 13: WAIT DI[105]=OFF ;Wait until the operatorpushbuttonispressed 14: DO[106:OUT_CYL]=ON ;Turn off to retract the outputtray 15:J PR[1:HOME] 100% FINE ;Finishathome 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.