0  BEGIN PGM M311 MM 
1  * - Compensation of U-Axis
2  * - NUMBER NC MACRO ON
3  WRITE TO PLC KEY "WG_Nummer_aktives_NC_Macro" =+311
4  * - Read M128 active
5  FN 18: SYSREAD Q10 = ID280 NR1
6  * - Read 3DROT Cond.Manual
7  FN 18: SYSREAD Q20 = ID210 NR6
8  * - Read 3DROT Cond.Auto
9  FN 18: SYSREAD Q21 = ID210 NR7
10 * - Block Scan
11 READ FROM PLC KEY "NP_M4158_BA_Satz_Vorlauf_aktiv" TO Q22
12 FN 9: IF +Q22 EQU +1 GOTO LBL "END"
13 * - M128 OFF
14 M129
15 * - 3DROT Cond.Manual OFF
16 FN 17: SYSWRITE ID 210 NR6 =+0
17 * - 3DROT Cond.Auto   OFF
18 FN 17: SYSWRITE ID 210 NR7 =+0
19 * - Restore Position
20 READ FROM PLC KEY "NP_M4157_BA_Restore_Position_aktiv" TO Q23
21 FN 9: IF +Q23 EQU +1 GOTO LBL "RE_POS"
22 * - Read U-axis nominal REF pos (SOLL)
23 FN 18: SYSREAD Q0 = ID240 NR8 IDX7
24 FN 9: IF +0 EQU +0 GOTO LBL "POSREAD_END"
25 LBL "RE_POS"
26 * - Read U-axis actual REF pos (IST)
27 FN 18: SYSREAD Q0 = ID240 NR1 IDX7
28 LBL "POSREAD_END"
29 WRITE TO KINEMATIC AT COLUMN "COORD" CAPTURE "DOC" KEY "COMP_U" =-Q0
30 FN 9: IF +Q10 EQU +0 GOTO LBL "M128_OFF"
31 M128
32 LBL "M128_OFF"
33 ; FN 9: IF +Q20 EQU +0 GOTO LBL "3D_MAN_OFF"
34 ; FN 17: SYSWRITE ID 210 NR6 =-1
35 ; LBL "3D_MAN_OFF"
36 ; FN 9: IF +Q21 EQU +0 GOTO LBL "3D_AUTO_OFF"
37 ; FN 17: SYSWRITE ID 210 NR7 =-1
38 ; LBL "3D_AUTO_OFF"
39 ; FN 17: SYSWRITE ID 420 NR0 =+0
40 LBL "END"
41 * - NC MACRO OFF
42 WRITE TO PLC KEY "WG_Nummer_aktives_NC_Macro" =-1 ; NC MACRO OFF
43 END PGM M311 MM 
