0  BEGIN PGM SL2_25 MM 
1  FN 22: FUNCT Q0 FNR1 PIN0 PIN1 ;INIT KONTURBEARBEITUNG
2  FN 9: IF +Q0 EQU +0 GOTO LBL 1
3  FN 14: ERROR= 1015
4  FN 9: IF +0 EQU +0 GOTO LBL 254
5  LBL 1
6  FN 22: FUNCT Q0 FNR121 PIN0 PIN0 PIN35 ;SAVE Q0-Q35
7  FN 17: SYSWRITE ID 30 NR10 =+Q12 ;VORSCHUB FRAESEN
8  FN 18: SYSREAD Q0 = ID31 NR31 IDX0 ;LABELNUMMER
9  FN 22: FUNCT Q0 FNR3 PINQ0 PIN0 PIN1 ;OFFENE KONTUR LESEN
10 FN 22: FUNCT Q0 FNR4 PIN0 PIN1027 ; PROGRAMMIERTE KONTUR ABSPEICHERN
11 FN 18: SYSREAD Q30 = ID212
12 FN 9: IF +Q0 EQU +0 GOTO LBL 2
13 FN 14: ERROR= 1015
14 FN 9: IF +0 EQU +0 GOTO LBL 253
15 LBL 2
16 Q20 = Q7 - Q5
17 FN 18: SYSREAD Q24 = ID20 NR3 ;WZ-Achse
18 FN 1: Q24 =+Q24 + +1 ; wg. x==1
19 FN 18: SYSREAD Q22 = ID220 NR2 IDXQ24 ;VERSCHIEBUNG
20 FN 18: SYSREAD Q23 = ID210 NR4 IDXQ24 ;SKALIERUNG
21 Q5 = Q23 * Q5 + Q22 ;WS-HOEHE ; TRANSFORMATION
22 FN 0: Q17 =+Q7
23 Q7 = Q23 * Q7 + Q22 ;RZG-HOEHE ; TRANSFORMATION
24 Q1 = Q23 * Q1 ; TIEFE SKALIEREN
25 FN 17: SYSWRITE ID 31 NR21 =+0 ;PENDELVORSCHUB
26 FN 17: SYSWRITE ID 31 NR18 =+0 ; UEBERGANGSRADIUS
27 FN 17: SYSWRITE ID 31 NR22 =+Q7 ;SICHERE HOEHE
28 FN 17: SYSWRITE ID 31 NR23 =+Q5 ;WERKSTUECKHOEHE
29 FN 17: SYSWRITE ID 31 NR24 =+Q5 ;ZYKLUSBEGINNHOEHE
30 FN 17: SYSWRITE ID 30 NR1 =+0 ;SICHERHEITSABSTAND
31 FN 9: IF +Q20 EQU +0 GOTO LBL 4
32 FN 9: IF +Q1 EQU +0 GOTO LBL 4
33 FN 12: IF +Q1 LT +0 GOTO LBL 3
34 FN 18: SYSREAD Q29 = ID1000 NR7441
35 FN 12: IF +Q29 LT +4 GOTO LBL 93
36 FN 14: ERROR= 1077
37 LBL 93
38 FN 0: Q20 =-Q20 ;NACH UNTEN
39 LBL 3
40 FN 11: IF +Q20 GT +0 GOTO LBL 4
41 FN 14: ERROR= 1077 ;VORZEICHEN FRAESTIEFE
42 FN 9: IF +0 EQU +0 GOTO LBL 253
43 LBL 4
44 Q10 = ABS Q10
45 Q24 = ABS Q1
46 FN 11: IF +Q24 GT +Q10 GOTO LBL 14
47 FN 0: Q10 =+Q24 ;
48 LBL 14
49 FN 17: SYSWRITE ID 31 NR17 =+Q3 ;SCHLICHTAUFMASS
50 FN 17: SYSWRITE ID 30 NR3 =+Q10 ;ZUSTELLTIEFE
51 FN 17: SYSWRITE ID 30 NR4 =+Q11 ;VORSCHUB TIEFE
52 FN 17: SYSWRITE ID 212 =+3
53 FN 18: SYSREAD Q35 = ID1000 NR7483 ;MP7483: Werkzeugname/nummer erlaubt
54 FN 18: SYSREAD Q33 = ID30 NR52 IDX18 ;ABFRAGE, OB TOOLNAME PROGR. IST
55 FN 9: IF +Q33 EQU +0 GOTO LBL 45
56 FN 10: IF +Q35 NE +2 GOTO LBL 46
57 FN 14: ERROR= 1094 ;Toolnamen nicht erlaubt
58 LBL 46
59 FN 18: SYSREAD Q18 = ID990 NR10 IDX18 ;ZUM TOOLNAMEN EINE NUMMER SUCHEN
60 FN 10: IF +Q18 NE -1 GOTO LBL 34
61 FN 14: ERROR= 1092 ;ES KONNTE KEINE NUMMER GEFUNDEN WERDEN
62 LBL 45
63 FN 10: IF +Q35 NE +1 GOTO LBL 34
64 FN 9: IF +Q18 EQU +0 GOTO LBL 34 ;TOOLNR 0 immer erlaubt
65 FN 14: ERROR= 1093 ;Toolnummern nicht erlaubt
66 LBL 34
67 FN 11: IF +Q18 GT +0 GOTO LBL 25
68 FN 0: Q24 =+0 ;AKT. ZUSTELLTIEFE
69 FN 0: Q25 =+Q5 ;ZYKLUSBEGINNHOEHE
70 FN 0: Q26 =+0 ;AKTUELLE ZUSTELLUNG
71 FN 11: IF +Q15 GT +1 GOTO LBL 13
72 FN 18: SYSREAD Q23 = ID200 NR0 IDX0 ;RADIUS AKT.WERKZEUG
73 FN 1: Q23 =+Q23 + +Q3
74 LBL 5 ; KONTURZUG
75 FN 22: FUNCT Q0 FNR30 PEX+Q23 ;KONTUR KORRIGIEREN
76 FN 22: FUNCT Q0 FNR112 PIN0 PIN0 PIN1027 PEX+Q23 ; APPR- DEPA -AN~
 KORR.KONTUR
77 FN 0: QL15 =+Q15
78 FN 9: IF +QL15 EQU +0 GOTO LBL 12
79 FN 18: SYSREAD Q32 = ID410 NR7
80 FN 10: IF +Q32 NE +2 GOTO LBL 98
81 QL15 = NEG QL15
82 LBL 98
83 FN 10: IF +Q110 NE +1 GOTO LBL 99
84 QL15 = NEG QL15
85 LBL 99
86 FN 11: IF +QL15 GT -1 GOTO LBL 7
87 FN 22: FUNCT Q0 FNR11 ;KONTUR UMKEHREN
88 LBL 7 ; KONTURZUG IN EINER RICHTUNG
89 CALL LBL 8
90 FN 1: Q25 =+Q5 + +Q24 ;AKT.BEARBEITUNGSHOEHE
91 FN 10: IF +Q24 NE +Q1 GOTO LBL 7
92 FN 9: IF +0 EQU +0 GOTO LBL 253
93 LBL 12 ; KONTURZUG HIN UND HER
94 CALL LBL 8
95 FN 22: FUNCT Q0 FNR11
96 FN 1: Q25 =+Q5 + +Q24 ;AKT.BEARBEITUNGSHOEHE
97 FN 10: IF +Q24 NE +Q1 GOTO LBL 12
98 FN 9: IF +0 EQU +0 GOTO LBL 253
99 LBL 13 ; KONTURNUT
100 CALL LBL 9
101 FN 22: FUNCT Q0 FNR52 PIN0 PEX+1 PEX+10 ; EINSTECHEN/PENDELN
102 FN 22: FUNCT Q0 FNR40 PIN0 ; KONTUR FRAESEN
103 CALL LBL 10
104 FN 22: FUNCT Q0 FNR11 ; KONTUR UMDREHEN
105 FN 1: Q25 =+Q5 + +Q24 ;AKT.BEARBEITUNGSHOEHE
106 FN 10: IF +Q24 NE +Q1 GOTO LBL 13
107 FN 22: FUNCT Q0 FNR4 PIN0 PIN1024 ; LOCALER LABEL
108 FN 22: FUNCT Q0 FNR11 PIN0 PIN1025 ; LOCALER LABEL
109 FN 22: FUNCT Q0 FNR4 PIN1025 PIN1024 PIN1 ;CONCATENATE
110 FN 22: FUNCT Q0 FNR18 PIN1024 ;CLOSE
111 FN 22: FUNCT Q0 FNR10 PIN1024 ;KONTURCHARAKTERISTIK
112 FN 22: FUNCT Q0 FNR30 PIN1024 PEX+Q3 ;KONTUR KORRIGIEREN
113 LBL 8
114 CALL LBL 9
115 L FQ12 ;
116 FN 22: FUNCT Q0 FNR40 PIN0 ;KONTUR FRAESEN
117 CALL LBL 10
118 LBL 0
119 LBL 9
120 FN 0: Q26 =+Q24 ;
121 Q28 = SGN Q1 * Q10
122 Q24 = Q24 + Q28
123 Q31 = ABS Q24
124 Q29 = ABS Q1
125 FN 12: IF +Q31 LT +Q29 GOTO LBL 11
126 FN 0: Q24 =+Q1 ;LETZE ZUSTELLUNG
127 Q28 = Q24 - Q26
128 LBL 11
129 FN 17: SYSWRITE ID 31 NR23 =+Q25 ;WERKSTUECKHOEHE
130 FN 17: SYSWRITE ID 31 NR24 =+Q25 ;ZYKLUSBEGINNHOEHE
131 FN 17: SYSWRITE ID 30 NR2 =+Q28 ;AKT.FRAESZUSTELLUNG
132 LBL 0
133 LBL 10
134 FN 18: SYSREAD Q27 = ID270 NR1 IDX1 ; BEZUGS POSITION X
135 FN 18: SYSREAD Q28 = ID270 NR1 IDX2 ; BEZUGS POSITION Y
136 FN 18: SYSREAD Q29 = ID270 NR1 IDX3 ; BEZUGS POSITION Z
137 L  Z+Q29 FQ11 ; DUMMY BEZUG Z AN GEO
138 L  X+Q27  Y+Q28 FQ12 ; DUMMY BEZUG X,Y AN GEO
139 FN 10: IF +Q24 NE +Q1 GOTO LBL 97
140 L  Z+Q17 FMAX ; IM EINGABESYSTEM
141 LBL 97
142 LBL 0
143 LBL 25
144 FN 11: IF +Q446 GT +0 GOTO LBL 26
145 FN 0: Q446 =+0.001
146 LBL 26
147 FN 17: SYSWRITE ID 31 NR48 =+Q446
148 FN 17: SYSWRITE ID 31 NR49 =+Q447
149 FN 17: SYSWRITE ID 31 NR50 =+Q448
150 Q35 = FRAC Q18 * 10
151 Q18 = INT Q18
152 FN 18: SYSREAD Q16 = ID200 NR6 IDXQ18 .Q35 ; RADIUS RW.
153 FN 18: SYSREAD Q25 = ID200 NR1 IDX0 ;  WERKZEUGRADIUS PLUS DR
154 FN 1: Q34 =+Q25 + +Q3 ; PLUS AUFMASS
155 FN 22: FUNCT Q0 FNR30 PIN0 PIN1025 PEX+Q34 ; KORR. MIT WERKZEUGRADIUS
156 FN 18: SYSREAD Q0 = ID410 NR6 IDX1025 ; GIBT ES ERGEBNIS ?
157 FN 9: IF +Q0 EQU +0 GOTO LBL 30
158 FN 1: Q28 =+Q16 + +Q3 ; RAEUM.RADIUS + AUFMASS
159 FN 22: FUNCT Q0 FNR30 PIN0 PIN1026 PEX+Q28 ; KORR. MIT VORAEUMRADIUS
160 FN 18: SYSREAD Q0 = ID410 NR6 IDX1026 ; GIBT ES ERGEBNIS ?
161 FN 9: IF +Q0 EQU +0 GOTO LBL 30
162 FN 2: Q28 =+Q28 - +Q25
163 FN 1: Q28 =-Q28 + -0.001 ; RADIUS + 1u
164 FN 22: FUNCT Q0 FNR4 PIN1026 PIN0 ; TASCHE IN INSEL LOC(258)
165 FN 22: FUNCT Q0 FNR30 PIN0 PIN1026 PIN1 PEX+Q28 ; INSEL KORRIGIEREN
166 Q28 = 0 - Q16 - Q3 - Q446
167 FN 22: FUNCT Q0 FNR30 PIN0 PIN1028 PIN1 PEX+Q28 ; INSEL KORRIGIEREN
168 FN 22: FUNCT Q0 FNR4 PIN1025 PIN1026 PIN2 ; KONTUREN IN ARBEITSBEREICH
169 FN 22: FUNCT Q0 FNR5 PIN1025 ; SPEICHER FREIGEBEN
170 FN 22: FUNCT Q0 FNR5 PIN1026 ; SPEICHER FREIGEBEN
171 FN 22: FUNCT Q0 FNR5 ; GARBAGE - COLLECTION
172 FN 22: FUNCT Q0 FNR33 PIN0 PIN0 PIN1027 ; KONTUREN KOMB.  TASCHE-INSEL
173 FN 22: FUNCT Q0 FNR112 PIN0 PIN0 PIN1027 PEX+Q34 ; APPR- DEPA -AN~
 KORR.KONTUR
174 FN 17: SYSWRITE ID 31 NR51 =+100 ;VORSCHUBREDUKTION AUF 100 PROZENT
175 LBL 28 ; Restmaterial bearbeiten (PIN2)
176 FN 17: SYSWRITE ID 30 NR2 =+Q1 ;
177 FN 22: FUNCT Q0 FNR40 PIN0 PIN2
178 L  Z+Q17 FMAX ; IM EINGABESYSTEM
179 LBL 253
180 FN 17: SYSWRITE ID 212 =+Q30
181 FN 22: FUNCT Q0 FNR121 PIN1 PIN0 PIN35 ;RESTORE Q0-Q35
182 FN 22: FUNCT Q0 FNR2
183 LBL 254
184 END PGM SL2_25 MM 
