/PROG CIRCULO
/ATTR
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
ARC Welding Equipment Number : 1 ;
/MN
1: !RPTCirc1(HoleD,ToolD,Plng,Speed) ;
2: ! (Direction,Passes) ;
3: ! AR[1] = Hole Diameter, mm ;
4: ! AR[2] = Tool Diameter, mm ;
5: ! AR[3] = Plunge Depth, mm ;
6: ! AR[4] = Cut Speed, mm/s ;
7: ! AR[5] = Direction, CW=1/CCW=0 ;
8: ! AR[6] = Num. Of Passes (1 or 2) ;
9: !================================ ;
10: ;
11: UFRAME_NUM=1 ;
12: UTOOL_NUM=1 ;
13: ;
14: R[93]=AR[3] ;
15: R[89]=AR[5] ;
16: R[88]=AR[6] ;
17: ;
18: ;
19: !ENTER SPINDLE SIGNAL HERE ;
20: !If Spindle<>ON, Reverse Plunge ;
21: IF DO[14]=ON,JMP LBL[2] ;
22: R[93]=R[93]/(-8) ;
23: LBL[2:Spindle = OFF] ;
24: ;
25: !R[94]=Actual Tool Path Dia ;
26: R[94]=AR[1]-AR[2] ;
27: ;
28: !Confirm Hole Dia > Tool Dia ;
29: IF R[94]<=0,JMP LBL[99] ;
30: ;
31: !R[95]=Tool Path Dia/2 - 2 Pass ;
32: R[95]=R[94]/2 ;
33: ;
34: !R[96]=Tool Path Dia/4 - Blend ;
35: R[96]=R[94]/4 ;
36: ;
37: !R[98]=Tool Path Speed ;
38: R[98]=R[94]/AR[1]*AR[4] ;
39: ;
40: !R[99]=Lead in Path Spd ;
41: !>TPath SPD *(TPath D/Hole D) ;
42: R[92]=AR[1]+AR[2] ;
43: R[91]=R[94]/R[92] ;
44: R[92]=1.27324*AR[3]/R[92] ;
45: R[92]=1+R[92] ;
46: R[92]=.75/R[92] ;
47: R[92]=.25+R[92] ;
48: R[99]=R[91]*R[92]*AR[4] ;
49: ;
50: !Set-up Hole Positional Data ;
51: PR[90]=LPOS ;
52: PR[90,2]=0 ;
53: PR[90,1]=0 ;
54: PR[90,3]=R[93] ;
55: PR[90,4]=0 ;
56: PR[90,5]=0 ;
57: PR[90,6]=0 ;
58: PR[91]=LPOS ;
59: ;
60: !Def Lead in arc Via Pt ;
61: PR[92]=PR[90] ;
62: PR[92,2]=R[96] ;
63: PR[92,1]=R[96] ;
64: PR[92,3]=R[93]/2 ;
65: ;
66: !Def Lead in Arc End Pt ;
67: PR[93]=PR[90] ;
68: PR[93,2]=R[95] ;
69: ;
70: !Def TPath 1st Arc Via Pt ;
71: PR[94]=PR[90] ;
72: PR[94,1]=R[95]*(-1) ;
73: ;
74: !Def TPath 1st Arc End Pt ;
75: PR[95]=PR[90] ;
76: PR[95,2]=R[95]*(-1) ;
77: ;
78: !Def TPath 2nd Via Arc Pt ;
79: PR[96]=PR[90] ;
80: PR[96,1]=R[95] ;
81: ;
82: !Def Lead out Arc Via Pt ;
83: PR[97]=PR[92] ;
84: PR[97,1]=R[96]*(-1) ;
85: ;
86: !Cut Hole !!! ;
87: IF R[89]=1,JMP LBL[22] ;
88: ;
89:C PR[91] Tool_Offset,PR[92]
: PR[91] R[99]mm/sec CNT75 Tool_Offset,PR[93] ACC50 ;
90:C PR[91] Tool_Offset,PR[94]
: PR[91] R[98]mm/sec CNT90 Tool_Offset,PR[95] ACC50 ;
91:C PR[91] Tool_Offset,PR[96]
: PR[91] R[98]mm/sec CNT75 Tool_Offset,PR[93] ACC50 ;
92: IF R[88]=2,JMP LBL[33] ;
93: ;
94:C PR[91] Tool_Offset,PR[97]
: PR[91] R[98]mm/sec FINE ACC50 ;
95: JMP LBL[99] ;
96: ;
97: LBL[33] ;
98: ;
99:C PR[91] Tool_Offset,PR[94]
: PR[91] R[98]mm/sec CNT100 Tool_Offset,PR[95] ;
100:C PR[91] Tool_Offset,PR[96]
: PR[91] R[98]mm/sec CNT100 Tool_Offset,PR[93] ;
101:C PR[91] Tool_Offset,PR[97]
: PR[91] R[98]mm/sec FINE ;
102: ;
103: JMP LBL[99] ;
104: ;
105: LBL[22:Not Clock-wise] ;
106:C PR[91] Tool_Offset,PR[97]
: PR[91] 100mm/sec CNT100 Tool_Offset,PR[93] ;
107:C PR[91] Tool_Offset,PR[96]
: PR[91] R[98]mm/sec CNT100 Tool_Offset,PR[95] ;
108:C PR[91] Tool_Offset,PR[94]
: PR[91] R[98]mm/sec CNT100 Tool_Offset,PR[93] ;
109: IF R[88]=2,JMP LBL[44] ;
110: ;
111:C PR[91] Tool_Offset,PR[92]
: PR[91] 200mm/sec FINE ;
112: JMP LBL[99] ;
113: ;
114: LBL[44] ;
115: ;
116:C PR[91] Tool_Offset,PR[96]
: PR[91] R[98]mm/sec CNT100 Tool_Offset,PR[95] ;
117:C PR[91] Tool_Offset,PR[94]
: PR[91] R[98]mm/sec CNT100 Tool_Offset,PR[93] ;
118:C PR[91] Tool_Offset,PR[92]
: PR[91] R[98]mm/sec FINE ;
119: ;
120: ;
121: LBL[99:Return] ;
122: ;
/POS
/END