0  BEGIN PGM M73 MM 
1  FN 18: SYSREAD Q1 = ID2000 NR10 IDX13
2  * - If alternating table is active, PLC alarm 92.
3  FN 9: IF +Q1 EQU +1 GOTO LBL 99
4  FN 18: SYSREAD Q2 = ID2000 NR10 IDX2003
5  * - If automatic V/H head is installed, PLC alarm 92.
6  FN 9: IF +Q2 EQU +1 GOTO LBL 99
7  FN 18: SYSREAD Q3 = ID2000 NR10 IDX2002
8  FN 9: IF +Q3 EQU +1 GOTO LBL 99
9  FN 18: SYSREAD Q4 = ID2000 NR10 IDX2004
10 * - If traverse range protection is inactive, no position check.
11 FN 9: IF +Q4 EQU +0 GOTO LBL 50
12 FN 18: SYSREAD Q5 = ID1000 NR420 IDX3 ;IV Hirth coupling
13 FN 18: SYSREAD Q6 = ID1000 NR420 IDX4 ;V Hirth coupling
14 FN 18: SYSREAD Q40 = ID1000 NR420 IDX5 ;VI Hirth coupling
15 FN 18: SYSREAD Q7 = ID1000 NR430 IDX3 ;IV Hirth increments
16 FN 18: SYSREAD Q8 = ID1000 NR430 IDX4 ;V Hirth increments
17 FN 18: SYSREAD Q41 = ID1000 NR430 IDX5 ;VI Hirth increments
18 FN 18: SYSREAD Q9 = ID1000 NR912 IDX3 ;IV+ software limit 3
19 FN 18: SYSREAD Q10 = ID1000 NR912 IDX4 ;V+ software limit 3
20 FN 18: SYSREAD Q42 = ID1000 NR912 IDX5 ;VI+ software limit 1
21 FN 18: SYSREAD Q11 = ID1000 NR922 IDX3 ;IV- software limit 3
22 FN 18: SYSREAD Q12 = ID1000 NR922 IDX4 ;V- software limit 3
23 FN 18: SYSREAD Q43 = ID1000 NR922 IDX5 ;VI- software limit 1
24 FN 18: SYSREAD Q13 = ID1000 NR1030 IDX3 ;IV positioning window
25 FN 18: SYSREAD Q14 = ID1000 NR1030 IDX4 ;V positioning window
26 FN 18: SYSREAD Q44 = ID1000 NR1030 IDX5 ;VI positioning window
27 FN 18: SYSREAD Q15 = ID1000 NR912 IDX0 ;X+ software limit 3
28 FN 18: SYSREAD Q16 = ID1000 NR912 IDX1 ;Y+ software limit 3
29 FN 18: SYSREAD Q17 = ID1000 NR912 IDX2 ;Z+ software limit 3
30 FN 18: SYSREAD Q18 = ID1000 NR922 IDX0 ;X- software limit 3
31 FN 18: SYSREAD Q19 = ID1000 NR922 IDX1 ;Y- software limit 3
32 FN 18: SYSREAD Q20 = ID1000 NR922 IDX2 ;Z- software limit 3
33 FN 18: SYSREAD Q21 = ID1000 NR1030 IDX0 ;X positioning window
34 FN 18: SYSREAD Q22 = ID1000 NR1030 IDX1 ;Y positioning window
35 FN 18: SYSREAD Q23 = ID1000 NR1030 IDX2 ;Z positioning window
36 FN 20: WAIT FOR  SYNC
37 FN 18: SYSREAD Q25 = ID2000 NR80 IDX2048
38 Q25 = Q25 / 10000
39 FN 18: SYSREAD Q26 = ID2000 NR80 IDX2052
40 Q26 = Q26 / 10000
41 FN 18: SYSREAD Q27 = ID2000 NR80 IDX2056
42 Q27 = Q27 / 10000
43 FN 18: SYSREAD Q28 = ID2000 NR80 IDX2060
44 Q28 = Q28 / 10000
45 FN 18: SYSREAD Q29 = ID2000 NR80 IDX2064
46 Q29 = Q29 / 10000
47 FN 18: SYSREAD Q45 = ID2000 NR80 IDX2068
48 Q45 = Q45 / 10000
49 FN 18: SYSREAD Q30 = ID2000 NR10 IDX4158 ;Block scan marker
50 * - If block scan, no position check.
51 FN 9: IF +Q30 EQU +1 GOTO LBL 50
52 ;
53 Q30 = Q15 + Q21
54 Q31 = Q18 - Q21
55 * - If X pos > X+ limit 3 or X pos < X- limit 3,PLC alarm 195.
56 FN 11: IF +Q25 GT +Q30 GOTO LBL 90
57 FN 12: IF +Q25 LT +Q31 GOTO LBL 90
58 ;
59 Q30 = Q16 + Q22
60 Q31 = Q19 - Q22
61 * - If Y pos > Y+ limit 3 or Y pos < Y- limit 3,PLC alarm 195.
62 FN 11: IF +Q26 GT +Q30 GOTO LBL 90
63 FN 12: IF +Q26 LT +Q31 GOTO LBL 90
64 ;
65 Q30 = Q17 + Q23
66 Q31 = Q20 - Q23
67 * - If Z pos > Z+ limit 3 or Z pos < Z- limit 3,PLC alarm 195.
68 FN 11: IF +Q27 GT +Q30 GOTO LBL 90
69 FN 12: IF +Q27 LT +Q31 GOTO LBL 90
70 ;
71 FN 9: IF +Q5 EQU +1 GOTO LBL 10
72 Q30 = Q9 + Q13
73 Q31 = Q11 - Q13
74 FN 9: IF +0 EQU +0 GOTO LBL 20
75 LBL 10
76 Q30 = Q9
77 Q31 = Q11
78 LBL 20
79 * - If IV pos > IV+ limit 3 or IV pos < IV- limit 3,PLC alarm 195.
80 FN 11: IF +Q28 GT +99999.9999 GOTO LBL 21
81 FN 12: IF +Q28 LT -99999.9999 GOTO LBL 21
82 FN 11: IF +Q28 GT +Q30 GOTO LBL 90
83 FN 12: IF +Q28 LT +Q31 GOTO LBL 90
84 ;
85 LBL 21
86 FN 9: IF +Q6 EQU +1 GOTO LBL 30
87 Q30 = Q10 + Q14
88 Q31 = Q12 - Q14
89 FN 9: IF +0 EQU +0 GOTO LBL 40
90 LBL 30
91 Q30 = Q10
92 Q31 = Q12
93 LBL 40
94 * - If V pos > V+ limit 3 or V pos < V- limit 3,PLC alarm 195.
95 FN 11: IF +Q29 GT +99999.9999 GOTO LBL 41
96 FN 12: IF +Q29 LT -99999.9999 GOTO LBL 41
97 FN 11: IF +Q29 GT +Q30 GOTO LBL 90
98 FN 12: IF +Q29 LT +Q31 GOTO LBL 90
99 ;
100 LBL 41
101 FN 9: IF +Q40 EQU +1 GOTO LBL 42
102 Q30 = Q42 + Q44
103 Q31 = Q43 - Q44
104 FN 9: IF +0 EQU +0 GOTO LBL 44
105 LBL 42
106 Q30 = Q42
107 Q31 = Q43
108 LBL 44
109 * - If VI pos > VI+ limit 3 or VI pos < VI- limit 3,PLC alarm 195.
110 FN 11: IF +Q45 GT +99999.9999 GOTO LBL 50
111 FN 12: IF +Q45 LT -99999.9999 GOTO LBL 50
112 FN 11: IF +Q45 GT +Q30 GOTO LBL 90
113 FN 12: IF +Q45 LT +Q31 GOTO LBL 90
114 ;
115 LBL 50
116 FN 31: RANGE:2
117 M73
118 FN 9: IF +0 EQU +0 GOTO LBL 100
119 ;
120 LBL 90
121 FN 14: ERROR= 495
122 STOP
123 FN 9: IF +0 EQU +0 GOTO LBL 100
124 LBL 99
125 FN 14: ERROR= 392
126 STOP
127 LBL 100
128 END PGM M73 MM 
