0  BEGIN PGM CIRCLEMILL MM 
1  Q195 = Q197
2  Q197 = 0
3  FN 22: FUNCT Q0 FNR1 ; Konturbearbeitung aktiv
4  FN 22: FUNCT Q0 FNR113 ; Achsen aus letzer Pos. ( CYCLPOS)
5  FN 22: FUNCT Q0 FNR121 PIN0 PIN0 PIN20 ;SAVE Q0-Q20
6  FN 18: SYSREAD Q14 = ID220 NR2 IDX3 ; Verschiebung
7  FN 18: SYSREAD Q16 = ID210 NR4 IDX1 ; Skalierung X
8  FN 18: SYSREAD Q15 = ID210 NR4 IDX3 ; Skalierung Z
9  FN 4: Q0 =+Q223 DIV +2 ; Radius der Kreistasche
10 Q0 = Q0 - ( Q368 / Q16 ) ; - Aufmass Seite
11 Q11 = Q203 - SGN Q201 * ( Q204 ) ; Sichere Hoehe
12 Q12 = Q203 - SGN Q201 * ( Q200 ) ; Sicherheitsabst
13 FN 0: Q20 =+Q11
14 FN 10: IF +Q20 NE +Q203 GOTO LBL 44
15 FN 0: Q20 =+Q12
16 LBL 44
17 Q13 = Q200
18 Q18 = SGN Q201
19 Q19 = ABS ( Q366 )
20 FN 10: IF +Q18 NE -1 GOTO LBL 41
21 FN 12: IF +Q12 LT +Q11 GOTO LBL 42
22 Q11 = Q12
23 FN 9: IF +0 EQU +0 GOTO LBL 42
24 LBL 41
25 FN 12: IF +Q11 LT +Q12 GOTO LBL 42
26 Q11 = Q12
27 LBL 42
28 FN 17: SYSWRITE ID 30 NR1 =+Q200 ; Sicherheitsabstand
29 FN 17: SYSWRITE ID 30 NR4 =+Q206 ; Vorschub Tiefe
30 FN 17: SYSWRITE ID 30 NR9 =+Q0 ; akt. Radius
31 FN 17: SYSWRITE ID 30 NR10 =+Q207 ; Vorschub
32 FN 17: SYSWRITE ID 30 NR11 =+Q351 ; Gleichlauf-Gegenlauf
33 FN 17: SYSWRITE ID 31 NR21 =+Q206 ; Vorschub Pendeln
34 FN 17: SYSWRITE ID 31 NR22 =+Q20 ; Rueckzugshoehe
35 FN 17: SYSWRITE ID 31 NR23 =+Q203 ; Oberkante Werkstck
36 FN 17: SYSWRITE ID 31 NR27 =+0 ;Streifenbreite rcksetzen
37 FN 17: SYSWRITE ID 31 NR35 =+128 ; auf Endposition
38 FN 17: SYSWRITE ID 31 NR15 =+Q370 ; Uueberlappungsfaktor
39 Q3 = ( ABS Q201 ) * Q15 - Q369 ; Tiefe - Aufmass Tiefe
40 Q4 = ABS Q202 ; Betrag Zustellung
41 FN 9: IF +Q215 EQU +2 GOTO LBL 30
42 CALL LBL 95
43 LBL 30
44 FN 9: IF +Q215 EQU +1 GOTO LBL 99 ; Seitenschlichten ?
45 FN 9: IF +Q368 EQU +0 GOTO LBL 26 ; Seitenschlichten ?
46 FN 4: Q0 =+Q223 DIV +2 ; Radius ohne Aufmass
47 FN 17: SYSWRITE ID 30 NR1 =+Q200 ; Sicherheitsabstand
48 FN 17: SYSWRITE ID 30 NR9 =+Q0
49 FN 17: SYSWRITE ID 30 NR10 =+Q385 ; Vorschub
50 FN 17: SYSWRITE ID 31 NR21 =+Q385 ; Vorschub Pendeln
51 FN 17: SYSWRITE ID 31 NR27 =+Q368 ; Streifenbreite Schlichtaufmass
52 FN 9: IF +Q338 EQU +0 GOTO LBL 25 ;
53 Q4 = ABS Q338 ; Betrag Zustellung beim Schlichten
54 Q13 = Q200
55 Q19 = 0
56 CALL LBL 95
57 FN 9: IF +0 EQU +0 GOTO LBL 26
58 LBL 25
59 Q10 = Q203 + SGN Q201 * ( ABS Q201 - ( ABS Q200 + ABS Q369 ) / Q15 )
60 Q8 = Q10 * Q15 + Q14 ; Zyklusanfangshoehe transformiert
61 FN 17: SYSWRITE ID 30 NR1 =+Q200 ; Sicherheitsabstand
62 FN 17: SYSWRITE ID 30 NR2 =+0 ; auf Tiefe (mit Schlichtaufmass)
63 FN 17: SYSWRITE ID 30 NR3 =+Q4 ; mit Zustellung = Tiefe
64 FN 17: SYSWRITE ID 31 NR24 =+Q8 ; Zyklusanfangshoehe
65 FN 17: SYSWRITE ID 31 NR36 =+Q8 ; Zyklusendhoehe
66 L  Z+Q10 R0 FMAX ; jeweilige Zyklusanfangshoehe
67 FN 22: FUNCT Q0 FNR54 PIN0 PIN0 PIN0 PEX+0
68 LBL 26
69 Q19 = 0
70 FN 17: SYSWRITE ID 31 NR35 =+0 ; auf sichere Hoehe
71 FN 9: IF +Q369 EQU +0 GOTO LBL 99 ; Tiefenschlichten ?
72 Q10 = Q203 + SGN Q201 * ( ABS Q201 - ( ABS Q200 + ABS Q369 ) / Q15 ) ;
73 Q8 = Q15 * Q10 + Q14 ; Zyklusanfangshoehe transformiert
74 Q3 = ABS ( Q369 ) ;
75 Q3 = SGN Q201 * Q3
76 FN 17: SYSWRITE ID 30 NR1 =+Q200 ; Sicherheitsabstand
77 FN 17: SYSWRITE ID 30 NR2 =+Q3 ; mit Zustellung = Tiefe
78 FN 17: SYSWRITE ID 30 NR3 =+Q369 ; mit Zustellung = Aufmass
79 FN 17: SYSWRITE ID 30 NR10 =+Q385 ; Vorschub
80 FN 17: SYSWRITE ID 31 NR21 =+Q206 ; Vorschub Pendeln
81 FN 17: SYSWRITE ID 31 NR24 =+Q8 ; Zyklusanfangshoehe
82 FN 17: SYSWRITE ID 31 NR27 =+0 ;Streifenbreite rcksetzen
83 FN 17: SYSWRITE ID 31 NR36 =+Q8 ; Zyklusendhoehe
84 L  Z+Q10 R0 FMAX ; jeweilige Zyklusanfangshoehe
85 FN 22: FUNCT Q0 FNR54 PIN0 PIN0 PIN0 PEX+Q366 ; Aufruf Tiefenschlichten
86 FN 9: IF +0 EQU +0 GOTO LBL 99
87 LBL 95
88 Q6 = SGN Q201 * Q4
89 FN 0: Q5 =+0 ; akt. Zustelltiefe
90 LBL 97
91 Q9 = Q203 + SGN Q201 * ( Q5 - ABS Q13 ) / Q15
92 Q7 = Q9 * Q15 + Q14 ; Zyklusanfangshoehe NPV
93 FN 1: Q5 =+Q5 + +Q4 ; akt.Zustelltiefe + Zustellung
94 FN 12: IF +Q5 LT +Q3 GOTO LBL 96
95 Q6 = ( Q3 + Q4 - Q5 ) * SGN Q201
96 LBL 96
97 FN 1: Q8 =+Q7 + +Q6
98 FN 1: Q10 =+Q9 + +Q6
99 FN 17: SYSWRITE ID 31 NR24 =+Q7 ; Zyklusanfangshoehe
100 FN 17: SYSWRITE ID 31 NR36 =+Q8 ; Zyklusendhoehe
101 FN 17: SYSWRITE ID 30 NR2 =+Q6 ; akt. Tiefe
102 FN 17: SYSWRITE ID 30 NR3 =+Q4 ; Betrag Zustelltiefe
103 L  Z+Q9 R0 FMAX ; jeweilige Zyklusanfangshoehe
104 FN 22: FUNCT Q0 FNR54 PIN0 PIN0 PIN0 PEX+Q19 ; Kreistasche
105 FN 12: IF +Q5 LT +Q3 GOTO LBL 97 ; Tiefe erreicht ?
106 LBL 0
107 LBL 99
108 L  Z+Q12 R0 FMAX
109 FN 10: IF +Q195 NE +1 GOTO LBL 100
110 FN 9: IF +Q301 EQU +0 GOTO LBL 101
111 L  Z+Q11 R0 FMAX
112 LBL 100
113 L  Z+Q11 R0 FMAX
114 LBL 101
115 FN 22: FUNCT Q0 FNR121 PIN1 PIN0 PIN18 ;SAVE Q0-Q19
116 FN 22: FUNCT Q0 FNR2
117 END PGM CIRCLEMILL MM 
