Link to us from your website and promote the community!... Then email us to receive a Free CNC cheat sheet from the CNC Specialty Store!

Facebook Group

Share your CNC information?
...Procedures
...Macro programs
...Articles
...and more

Suggestions or comments?
Please Email Us

Thank you for all your contributions and supporting the CNC community.

Examples and sample fanuc robotics programs

industrial robotics builders and manufacturers

Basic breakdown of Fanuc robot programming?

What will this section cover?

  1. Understanding basic programming
  2. Sample program with explanations line by line
  3. Sample branching of programs
  4. Comparing robot programming with machine tool NC programming

Sample Fanuc Robot Pick program

(will explain line by line, check back soon)
1: LBL[1:Begining]; (Label to jump to )
2: UFRAME_NUM= 1; (Frame number similar to work coordinates)
3: UTOOL_NUM= 1; (calls Tool number offset)
4: J P[1:Perch] 50% CNT100 ; (jog to a recorded position at 50%)(CNT=round off going to point)
5: RO[1]= ON; (turns on an output RO 1)
6: RO[2]= OFF; (turns off an output RO 2)
7: RO[3]= ON; (turns on an output RO 3)
8: RO[4]= OFF; (turns off output RO 4)
9: J P[9:Perch 2] 50% CNT100 ; (jog to a recorded position at 50%)(CNT= round off going through point /corner a certain amount)
10: LBL[2:Pick Part]; (label to jump to from another part of program)
11: $WAITTMOUT= 2000; (If waiting to long timeout)
12: ;
13: L P[2:Approch] 500mm/sec CNT100 ; (move in a straight line to the point at 500MM/sec roundig off corner)
14: WAIT DI[2] = ON; (wait for an input DI2 to come on)
15: ;
16: ! R[15] is for the part style; Utilizing register 15 for part style
17: IF R[15] = 1 , JMP LBL[3]; If register 15 is a 1 (some part style) jump to label 3
18: IF R[15] = 2 , JMP LBL[4]; If register 15 is a 2 (some part style) jump to label 4
19: PAUSE;
20: ABORT; If no part style selected abort program
21: ;
22: LBL[3:Pick Part#1]; Pick part style #1
23: L P[11] 100mm/sec FINE ; L=move in a straight line to a recorded position at a specific speed
24: ;
25: JMP LBL[5]; jump over part style #2 to label 5
26: LBL[4:Pick Part#2]; Pick part style #2
27: L P[12] 100mm/sec FINE ; L=move in a straight line to a recorded position at a specific speed
28: ;
29: LBL[5:Continue]; label 5
30: CALL CLSGRP1; Call subprogram to close gripper
31: L P[8:Depart Out] 100mm/sec CNT100 ; move in a straight line to depart position point
32: IF DI[2] = ON , JMP LBL[98]; If the input Digital input #2(somthing with conveyor) is on jump to label 98 problem with conveyor
33: ;
34: LBL[6:Continue]; label 6
35: J P[1:Perch] 50% CNT100 ; move to recorded position the fastest posible way using joint moves
36: JMP LBL[99]; jump to label 99

37: ;

38: ;

39: LBL[98:Conveyor problem present]; conveyor problem was present
40: macro_119; run macro program
41: DO[14]= OFF; Turn digital output #14 off
42: DO[16]= ON; Turn digital output #14 on
43: MESSAGE[Alarm indicating]; Message with the said text displayed
44: MESSAGE[Dropped part]; Message with the said text displayed
45: MESSAGE[Remedy- check sensor]; Message with the said text displayed
46: PAUSE;
47: JMP LBL[6]; Jump to label #6
48: ;
49: LBL[99:End]
label 99
50: J P[2:"Approch"]
joint move to recorded position #2 commented as an approach point
51: J P[1:"Perch"]
joint move to recorded position #1 commented as perch point



/END
End of program