BEGIN PGM CHECK_MP7295_CYC419 MM
FN 9: IF +Q303 EQU +0 GOTO LBL 254
; Gesperrte Achsen lesen
FN 18: SYSREAD QL4 = ID1000 NR7295
; Drehungen lesen
FN 18: SYSREAD QL40 = ID210 NR1
FN 18: SYSREAD QL41 = ID210 NR2
QL41 = QL40 + QL41
; WZ-Achse lesen
FN 18: SYSREAD QL5 = ID20 NR3
QL5 = QL5 + 10
FN 9: IF +0 EQU +0 GOTO LBL QL5
LBL 10
; WZ-Achse X und U
QL20 = 0 ; Achszaehler vorbelegen
QL100 = Q272 + 220
FN 9: IF +0 EQU +0 GOTO LBL QL100
LBL 221
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 1 GOTO LBL "NO_TX_Y_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TX_Y_AX"
FN 9: IF +QL41 EQU +0 GOTO LBL "ENDCKECK_TX"
FN 10: IF +QL1 NE 2 GOTO LBL "ENDCKECK_TX"
CALL LBL "CHECK_LOCKED"
LBL "ENDCKECK_TX"
CALL LBL 221 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
LBL 222
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 2 GOTO LBL "NO_TX_Z_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TX_Z_AX"
FN 9: IF +QL41 EQU +0 GOTO LBL "ENDCKECK_TX1"
FN 10: IF +QL1 NE 1 GOTO LBL "ENDCKECK_TX1"
CALL LBL "CHECK_LOCKED"
LBL "ENDCKECK_TX1"
CALL LBL 222 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
LBL 223
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 223 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254;
;
LBL 11
; WZ-Achse Y und V
QL20 = 0 ; Achszaehler vorbelegen
QL100 = Q272 + 210
FN 9: IF +0 EQU +0 GOTO LBL QL100
LBL 211
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 2 GOTO LBL "NO_TY_Z_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TY_Z_AX"
FN 9: IF +QL41 EQU +0 GOTO LBL "ENDCKECK_TY"
FN 10: IF +QL1 NE 0 GOTO LBL "ENDCKECK_TY"
CALL LBL "CHECK_LOCKED"
LBL "ENDCKECK_TY"
CALL LBL 211 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
LBL 212
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 0 GOTO LBL "NO_TY_X_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TY_X_AX"
FN 9: IF +QL41 EQU +0 GOTO LBL "ENDCKECK_TY1"
FN 10: IF +QL1 NE 2 GOTO LBL "ENDCKECK_TY1"
CALL LBL "CHECK_LOCKED"
LBL "ENDCKECK_TY1"
CALL LBL 212 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
LBL 213
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 213 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
;
; WZ-Achse Z und W
LBL 12
QL20 = 0 ; Achszaehler vorbelegen
QL100 = Q272 + 200
FN 9: IF +0 EQU +0 GOTO LBL QL100
LBL 201
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 0 GOTO LBL "NO_TZ_X_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TZ_X_AX"
FN 9: IF +QL41 EQU +0 GOTO LBL "ENDCKECK_TZ"
FN 10: IF +QL1 NE 1 GOTO LBL "ENDCKECK_TZ"
CALL LBL "CHECK_LOCKED"
LBL "ENDCKECK_TZ"
CALL LBL 201 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
LBL 202
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 1 GOTO LBL "NO_TZ_Y_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TZ_Y_AX"
FN 9: IF +QL41 EQU +0 GOTO LBL "ENDCKECK_TZ1"
FN 10: IF +QL1 NE 0 GOTO LBL "ENDCKECK_TZ1"
CALL LBL "CHECK_LOCKED"
LBL "ENDCKECK_TZ1"
CALL LBL 202 REP17
FN 9: IF +0 EQU +0 GOTO LBL 254
LBL 203
QL20 = QL20 + 1
; Zuordnung MACHAXIS => GEOAXIS
FN 18: SYSREAD QL1 = ID20 NR15 IDXQL20
FN 10: IF +QL1 NE 2 GOTO LBL "NO_TZ_Z_AX"
CALL LBL "CHECK_LOCKED"
LBL "NO_TZ_Z_AX"
CALL LBL 203 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_CYC419 MM 
