BEGIN PGM CHECK_MP7295_CYC417 MM
FN 9: IF +Q303 EQU +0 GOTO LBL 254
; Gesperrte Achsen lesen
FN 18: SYSREAD QL4 = ID1000 NR7295
; WZ-Achse lesen
FN 18: SYSREAD QL5 = ID20 NR3
LBL 5
QL5 = QL5 + 10
FN 9: IF +0 EQU +0 GOTO LBL QL5
LBL 10
;
; WZ-Achse X und U
QL20 = 0 ; Achszaehler vorbelegen
LBL 50
QL20 = QL20 + 1 ; Achsindize erhoehen
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 0 GOTO LBL "NO_X_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_X_AX"
CALL LBL 50 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254;
;
LBL 11
; WZ-Achse Y und V
QL20 = 0 ; Achszaehler vorbelegen
LBL 51
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 1 GOTO LBL "NO_Y_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_Y_AX"
CALL LBL 51 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
;
; WZ-Achse Z und W
LBL 12
QL20 = 0 ; Achszaehler vorbelegen
LBL 52
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 2 GOTO LBL "NO_Z_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_Z_AX"
CALL LBL 52 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
;
; WZ-Achse U
LBL 16
FN 9: IF +0 EQU +0 GOTO LBL 10
;
; WZ-Achse V
LBL 17
FN 9: IF +0 EQU +0 GOTO LBL 11
;
; WZ-Achse W
LBL 18
FN 9: IF +0 EQU +0 GOTO LBL 12
; Ende Hauptprogramm
;
LBL "CHECK_LOCKED"
QL120 = QL20 + 99
CALL LBL QL120
LBL 0
;
LBL 100
QL11 = 2 * FRAC (QL4 / 2)  
FN 12: IF +QL11 LT +1 GOTO LBL "END_100"
FN 14: ERROR= 1111
LBL "END_100"
LBL 0
;
LBL 101
QL11 = 4 * FRAC (QL4 / 4)  
FN 12: IF +QL11 LT +2 GOTO LBL "END_101"
FN 14: ERROR= 1111
LBL "END_101"
LBL 0
;
LBL 102
QL11 = 8 * FRAC (QL4 / 8)  
FN 12: IF +QL11 LT +4 GOTO LBL "END_102"
FN 14: ERROR= 1111
LBL "END_102"
LBL 0
;
LBL 103
QL11 = 16 * FRAC (QL4 / 16)  
FN 12: IF +QL11 LT +8 GOTO LBL "END_103"
FN 14: ERROR= 1111
LBL "END_103"
LBL 0
;
LBL 104
QL11 = 32 * FRAC (QL4 / 32)  
FN 12: IF +QL11 LT +16 GOTO LBL "END_104"
FN 14: ERROR= 1111
LBL "END_104"
LBL 0
;
LBL 105
QL11 = 64 * FRAC (QL4 / 64)  
FN 12: IF +QL11 LT +32 GOTO LBL "END_105"
FN 14: ERROR= 1111
LBL "END_105"
LBL 0
;
LBL 106
QL11 = 128 * FRAC (QL4 / 128)  
FN 12: IF +QL11 LT +64 GOTO LBL "END_106"
FN 14: ERROR= 1111
LBL "END_106"
LBL 0
;
LBL 107
QL11 = 256 * FRAC (QL4 / 256)  
FN 12: IF +QL11 LT +128 GOTO LBL "END_107"
FN 14: ERROR= 1111
LBL "END_107"
LBL 0
;
LBL 108
QL11 = 512 * FRAC (QL4 / 512)  
FN 12: IF +QL11 LT +256 GOTO LBL "END_108"
FN 14: ERROR= 1111
LBL "END_108"
LBL 0
;
LBL 109
QL11 = 1024 * FRAC (QL4 / 1024)  
FN 12: IF +QL11 LT +512 GOTO LBL "END_109"
FN 14: ERROR= 1111
LBL "END_109"
LBL 0
;
LBL 110
QL11 = 2048 * FRAC (QL4 / 2048)  
FN 12: IF +QL11 LT +1024 GOTO LBL "END_110"
FN 14: ERROR= 1111
LBL "END_110"
LBL 0
;
LBL 111
QL11 = 4096 * FRAC (QL4 / 4096)  
FN 12: IF +QL11 LT +2048 GOTO LBL "END_111"
FN 14: ERROR= 1111
LBL "END_111"
LBL 0
; Ende
LBL 254
END PGM CHECK_MP7295_CYC417 MM 
