0  BEGIN PGM 209 MM 
1  Q195 = Q197
2  Q197 = 0
3  FN 9: IF +Q201 EQU +0 GOTO LBL 254
4  FN 9: IF +Q195 EQU +1 GOTO LBL 200
5  Q200 = ABS Q200
6  Q204 = ABS Q204
7  Q256 = ABS Q256
8  Q257 = ABS Q257
9  LBL 200
10 FN 17: SYSWRITE ID 212 =+3
11 FN 9: IF +Q403 EQU +1 GOTO LBL 70
12 FN 18: SYSREAD Q0 = ID1000 NR3010
13 FN 10: IF +Q0 NE +7 GOTO LBL 70
14 FN 14: ERROR= 1084
15 LBL 70
16 FN 18: SYSREAD Q0 = ID20 NR13
17 FN 11: IF +Q0 GT +0 GOTO LBL 210
18 FN 18: SYSREAD Q0 = ID1000 NR3010
19 FN 11: IF +Q0 GT +5 GOTO LBL 211
20 FN 14: ERROR= 1074
21 LBL 210
22 FN 18: SYSREAD Q0 = ID1000 NR13010
23 FN 11: IF +Q0 GT +5 GOTO LBL 211
24 FN 14: ERROR= 1074
25 LBL 211
26 FN 10: IF +Q109 NE -1 GOTO LBL 198
27 FN 14: ERROR= 1001
28 LBL 198
29 FN 18: SYSREAD QL0 = ID1000 NR7260
30 FN 9: IF +QL0 EQU +0 GOTO LBL "Compare_Pitch"
31 FN 18: SYSREAD Q0 = ID1000 NR7224 IDX0
32 Q0 = 8 * FRAC ( Q0 / 8 )
33 FN 11: IF +Q0 GT +3 GOTO LBL "Compare_Pitch"
34 FN 18: SYSREAD QL0 = ID50 NR33 IDX0
35 FN 9: IF +QL0 EQU +0 GOTO LBL "Compare_Pitch"
36 QL0 = Q239 - QL0
37 QL0 = ABS QL0
38 FN 12: IF +QL0 LT +0.002 GOTO LBL "Compare_Pitch"
39 FN 14: ERROR= 1124
40 LBL "Compare_Pitch"
41 FN 18: SYSREAD Q13 = ID1000 NR7442
42 FN 10: IF +Q13 NE +0 GOTO LBL 188
43 FN 14: ERROR= 1074
44 LBL 188
45 FN 18: SYSREAD Q0 = ID1000 NR7441
46 Q0 = 8 * FRAC ( Q0 / 8 )
47 FN 12: IF +Q0 LT +4 GOTO LBL 206
48 FN 12: IF +Q201 LT +0 GOTO LBL 206
49 FN 9: IF +Q201 EQU +0 GOTO LBL 206
50 FN 14: ERROR= 1077
51 LBL 206
52 Q4 = Q257
53 FN 10: IF +Q4 NE +0 GOTO LBL 199
54 Q4 = ABS Q201
55 LBL 199
56 FN 12: IF +Q201 LT +0 GOTO LBL 197
57 FN 0: Q30 =-1
58 FN 9: IF +0 EQU +0 GOTO LBL 194
59 LBL 197
60 FN 0: Q30 =+1
61 LBL 194
62 FN 9: IF +Q195 EQU +1 GOTO LBL 193
63 CALL LBL 11
64 LBL 193
65 FN 1: Q19 =+Q203 + +Q200
66 Q51 = ABS Q200
67 Q52 = ABS Q204
68 FN 11: IF +Q51 GT +Q52 GOTO LBL 7
69 FN 1: Q19 =+Q203 + +Q204
70 LBL 7
71 Q14 = 1
72 Q20 = Q203 + Q200
73 Q21 = Q200 + Q4
74 Q22 = Q256 * ABS Q239
75 FN 10: IF +Q22 NE +0 GOTO LBL 29
76 Q22 = Q21
77 LBL 29
78 Q24 = Q201 - Q200
79 Q15 = Q21
80 Q16 = Q22
81 L  Z+Q20 R0 FMAX
82 ; M4031-Konfiguration lesen
83 FN 18: SYSREAD Q0 = ID1000 NR7412
84 QL0 = 2 * FRAC ( Q0 / 2 )
85 FN 10: IF +QL0 NE +1 GOTO LBL "NOM4031"
86 FN 17: SYSWRITE ID 2000 NR10 IDX4031 =+1
87 FN 20: WAIT FOR  SYNC
88 LBL "NOM4031"
89 ;Aktive Drehzahl lesen
90 FN 18: SYSREAD Q40 = ID20 NR4
91 FN 17: SYSWRITE ID 2020 NR1 =+1
92 FN 17: SYSWRITE ID 990 NR12 =+Q40
93 ;Rckzugsdrehzahl berechnen:
94 ;Max-Drehzahl lesen und vorbelegen
95 FN 18: SYSREAD Q41 = ID20 NR19
96 Q42 = ABS ( Q403 * Q40 )
97 FN 11: IF +Q42 GT +Q41 GOTO LBL 185
98 Q41 = Q42
99 LBL 185
100 FN 11: IF +Q13 GT +0 GOTO LBL 187
101 FN 17: SYSWRITE ID 990 NR8 =+Q336
102 FN 9: IF +0 EQU +0 GOTO LBL 186
103 LBL 187
104 CYCL DEF 13.0 ORIENTIERUNG
105 CYCL DEF 13.1 WINKELQ336
106 L MQ13
107 FN 20: WAIT FOR  M4000==1
108 LBL 186
109 Q51 = ABS Q201
110 Q52 = ABS Q4
111 FN 11: IF +Q51 GT +Q52 GOTO LBL 2
112 Q24 = Q201 - Q200
113 Q25 = Q24
114 FN 9: IF +0 EQU +0 GOTO LBL 20
115 LBL 2
116 FN 9: IF +Q30 EQU -1 GOTO LBL 50
117 FN 11: IF +Q15 GT +Q24 GOTO LBL 5
118 FN 9: IF +0 EQU +0 GOTO LBL 10
119 LBL 50
120 FN 12: IF +Q15 LT +Q24 GOTO LBL 5
121 FN 9: IF +0 EQU +0 GOTO LBL 10
122 LBL 5
123 FN 9: IF +Q403 EQU +1 GOTO LBL 60
124 TOOL CALL  SQ40
125 LBL 60
126 CYCL DEF 18.0 GEWINDESCHNEIDEN
127 CYCL DEF 18.1 TIEFE-Q21
128 CYCL DEF 18.2 STEIG+Q239
129 CYCL CALL
130 FN 10: IF +Q22 NE +0 GOTO LBL 30
131 Q16 = Q4 * Q14 + Q200
132 LBL 30
133 FN 9: IF +Q403 EQU +1 GOTO LBL 61
134 TOOL CALL  SQ41
135 LBL 61
136 CYCL DEF 18.0 GEWINDESCHNEIDEN
137 CYCL DEF 18.1 TIEFE+Q16
138 CYCL DEF 18.2 STEIG+Q239
139 CYCL CALL
140 Q14 = Q14 + 1
141 Q15 = - ( Q14 * Q4 ) - Q200
142 FN 9: IF +Q30 EQU -1 GOTO LBL 40
143 FN 12: IF +Q15 LT +Q24 GOTO LBL 10
144 FN 9: IF +Q15 EQU +Q24 GOTO LBL 10
145 Q21 = Q22 + Q4
146 FN 10: IF +Q256 NE +0 GOTO LBL 31
147 Q16 = Q4 * Q14 + Q200
148 Q21 = Q4 * Q14 + Q200
149 LBL 31
150 FN 9: IF +0 EQU +0 GOTO LBL 5
151 LBL 40
152 FN 11: IF +Q15 GT +Q24 GOTO LBL 10
153 FN 9: IF +Q15 EQU +Q24 GOTO LBL 10
154 Q21 = Q22 + Q4
155 FN 10: IF +Q256 NE +0 GOTO LBL 32
156 Q16 = Q4 * Q14 + Q200
157 Q21 = Q4 * Q14 + Q200
158 LBL 32
159 FN 9: IF +0 EQU +0 GOTO LBL 5
160 LBL 10
161 Q25 = Q24
162 FN 9: IF +Q256 EQU +0 GOTO LBL 20
163 Q25 = Q24 + ( Q4 * ( Q14 - 1 ) ) - Q22 + Q200
164 LBL 20
165 FN 9: IF +Q403 EQU +1 GOTO LBL 62
166 TOOL CALL  SQ40
167 LBL 62
168 CYCL DEF 18.0 GEWINDESCHNEIDEN
169 CYCL DEF 18.1 TIEFE+Q25
170 CYCL DEF 18.2 STEIG+Q239
171 CYCL CALL
172 LBL 11
173 FN 9: IF +Q195 EQU +1 GOTO LBL 192
174 FN 3: Q200 =+Q200 * +Q30
175 FN 3: Q204 =+Q204 * +Q30
176 FN 3: Q256 =+Q256 * +Q30
177 FN 3: Q4 =+Q4 * +Q30
178 LBL 0
179 LBL 192
180 FN 9: IF +Q403 EQU +1 GOTO LBL 63
181 TOOL CALL  SQ41
182 LBL 63
183 CYCL DEF 18.0 GEWINDESCHNEIDEN
184 CYCL DEF 18.1 TIEFE-Q24
185 CYCL DEF 18.2 STEIG+Q239
186 CYCL CALL
187 FN 9: IF +Q403 EQU +1 GOTO LBL 64
188 TOOL CALL  SQ40
189 LBL 64
190 FN 17: SYSWRITE ID 2020 NR1 =+0
191 FN 17: SYSWRITE ID 990 NR12 =-1
192 FN 9: IF +Q195 EQU +1 GOTO LBL 254
193 L  Z+Q19 R0 FMAX
194 LBL 254
195 END PGM 209 MM 
