BEGIN PGM PRESET MM 
;-------------------------------------
; Messwert in die Preset-Tab. schreiben
; SK Bezugspunkt setzen => Zeile 0
; SK Eintr. Preset-Tab. => Zeile akt.
;-------------------------------------
FN 18: SYSREAD Q79 = ID530 NR1 ;# akt. Zeile Preset
;-------------------------------------
; # SK Bezugspunkt setzen => Zeile 0
FN 9: IF +Q757 EQU +1 GOTO LBL 102
;-------------------------------------
;########Wert in Preset-Tabelle#######
;-------------------------------------
; # SK Eintr. Preset-Tab. => Zeile akt.
FN 10: IF +Q79 NE +Q714 GOTO LBL 101 ; Akt. PR /NE\ Nr. in Tab.
FN 9: IF +Q79 EQU +0 GOTO LBL 101 ; Akt. PR /EQU\ 0
; !!!Warnung 'Preset aktiv' ausgeben!!!
Q803 = 0
Q804 = 0
Q798 = Q79
CYCL QUERY 839 Aktiven Preset berschreiben?
FN 9: IF +Q804 EQU +1 GOTO LBL 301
LBL 101
;Wenn Preset nicht aktiv => Zeile aus Query Dialog  
Q21 = Q714 ;### Preset-Nummer
;-------------------------------------
FN 9: IF +0 EQU +0 GOTO LBL 103
LBL 102
; SK Bezugspunkt Setzen
; -> aktiven Preset kopieren
; -> in Zeile 0 schreiben
Q21 = 0 ; Preset-Nummer
FN 18: SYSREAD QL1 = ID 507 NR Q79 IDX 1    ; Lese X
FN 18: SYSREAD QL2 = ID 507 NR Q79 IDX 2    ; Lese Y
FN 18: SYSREAD QL3 = ID 507 NR Q79 IDX 3    ; Lese Z
FN 18: SYSREAD QL4 = ID 507 NR Q79 IDX 4    ; Lese SPA
FN 18: SYSREAD QL5 = ID 507 NR Q79 IDX 5    ; Lese SPB
FN 18: SYSREAD QL6 = ID 507 NR Q79 IDX 6    ; Lese SPC
FN 17: SYSWRITE ID 507 NR Q21 IDX 1 = QL1   ; Schreibe X
FN 17: SYSWRITE ID 507 NR Q21 IDX 2 = QL2   ; Schreibe Y
FN 17: SYSWRITE ID 507 NR Q21 IDX 3 = QL3   ; Schreibe Z
FN 17: SYSWRITE ID 507 NR Q21 IDX 4 = QL4   ; Schreibe SPA
FN 17: SYSWRITE ID 507 NR Q21 IDX 5 = QL5   ; Schreibe SPB
FN 17: SYSWRITE ID 507 NR Q21 IDX 6 = QL6   ; Schreibe SPC
LBL 103
;-------------------------------------
FN 9: IF +Q198 EQU +703 GOTO LBL 90
;-------------------------------------
;++++++Zyklus 704, 705 (2 Achsen)+++++
;-------------------------------------
;Spindelachse Y?
FN 9: IF +Q109 EQU +1 GOTO LBL 91
;Antastachse Z?
FN 9: IF +Q109 EQU +2 GOTO LBL 92
;-------------------------------------
;---Spindel X / Haupt Y / Neben Z -----
Q22 = Q82 ; Hauptachse Q709 Y
Q23 = Q83 ; Nebenachse Q710 Z
  FN 9: IF +Q98 EQU +0 GOTO LBL 200
  ; Preset 0 aktiv -> Wert aus Dialog
  Q22 = Q95; Q709   Y
  Q23 = Q96; Q710 Z
  LBL 200
Q24 = Q15 ; Spindelachse
Q25 = Q709
FN 17: SYSWRITE ID 532 NRQ21 IDX2 = BLOCK Q22 - Q25
Q25 = Q710                                                                               
FN 17: SYSWRITE ID 532 NRQ21 IDX3 = BLOCK Q22 - Q25                                     
FN 9: IF +0 EQU +0 GOTO LBL 301
LBL 91
;---Spindel Y / Haupt Z / Neben X -----
Q22 = Q82 ; Nebenachse Q710 Z
Q23 = Q83 ; Nebenachse Q708 X
  FN 9: IF +Q98 EQU +0 GOTO LBL 201
  ; Preset 0 aktiv -> Wert aus Dialog
  Q22 = Q96; Q710   Z
  Q23 = Q94; Q708 X
  LBL 201
Q24 = Q15 ; Spindelachse
Q25 = Q710
FN 17: SYSWRITE ID 532 NRQ21 IDX3 = BLOCK Q22 - Q25
Q25 = Q708                                    
FN 17: SYSWRITE ID 532 NRQ21 IDX1 = BLOCK Q22 - Q25
FN 9: IF +0 EQU +0 GOTO LBL 301
LBL 92
;---Spindel Z / Haupt X / Neben Y -----
Q22 = Q82 ; Hauptachse Q708 X
Q23 = Q83 ; Nebenachse Q709 Y
  FN 9: IF +Q98 EQU +0 GOTO LBL 202
  ; Preset 0 aktiv -> Wert aus Dialog
  Q22 = Q94; Q708 X
  Q23 = Q95; Q709 Y
  LBL 202
Q24 = Q15 ; Spindelachse
Q25 = Q708
FN 17: SYSWRITE ID 532 NRQ21 IDX1 = BLOCK Q22 - Q25                                  
Q25 = Q709
FN 17: SYSWRITE ID 532 NRQ21 IDX2 = BLOCK Q22 - Q25
FN 9: IF +0 EQU +0 GOTO LBL 301
LBL 90
;-------------------------------------
;+++++++++Zyklus 703 (1 Achse)++++++++
;-------------------------------------   
FN 9: IF +Q750 EQU +1 GOTO LBL 61 ;# X+ #
FN 9: IF +Q751 EQU +1 GOTO LBL 61 ;# X- #
FN 9: IF +Q752 EQU +1 GOTO LBL 71 ;# Y+ #
FN 9: IF +Q753 EQU +1 GOTO LBL 71 ;# Y- #
FN 9: IF +Q754 EQU +1 GOTO LBL 81 ;# Z+ #
FN 9: IF +Q755 EQU +1 GOTO LBL 81 ;# Z- #
;-------------------------------------
LBL 61 ; --X--
Q22 = Q82 ; X Q700
  FN 9: IF +Q98 EQU +0 GOTO LBL 204
  ; Preset 0 aktiv -> Wert aus Dialog Q700
  Q22 = Q97 
  LBL 204
Q23 = Q116 ; Y
Q24 = Q117 ; Z
Q25 = Q700
FN 17: SYSWRITE ID 532 NRQ21 IDX1 = BLOCK Q22 - Q25
FN 9: IF +0 EQU +0 GOTO LBL 89
LBL 71     
Q22 = Q115 ; X
Q23 = Q82 ; Y Q700
  FN 9: IF +Q98 EQU +0 GOTO LBL 205
  ; Preset 0 aktiv -> Wert aus Dialog Q700
  Q23 = Q97 
  LBL 205
Q24 = Q117 ; Z
Q25 = Q700
FN 17: SYSWRITE ID 532 NRQ21 IDX2 = BLOCK Q22 - Q25
FN 9: IF +0 EQU +0 GOTO LBL 89
LBL 81
Q22 = Q115 ; X
Q23 = Q116 ; Y
Q24 = Q82 ; Z Q700
  FN 9: IF +Q98 EQU +0 GOTO LBL 206
  ; Preset 0 aktiv -> Wert aus Dialog Q700
  Q24 = Q97 
  LBL 206
Q25 = Q700
FN 17: SYSWRITE ID 532 NRQ21 IDX3 = BLOCK Q22 - Q25              
LBL 89
FN 9: IF +0 EQU +0 GOTO LBL 301
;-------------------------------------
LBL 301
FN 9: IF +Q757 EQU +0 GOTO LBL 302
;+++SK Bezugspunkt Setzen -> Preset aktivieren+++
CYCL DEF 247 BEZUGSPUNKT SETZEN ~
 Q339=+0    ;BEZUGSPUNKT-NUMMER
Q98 = 1 ;Flag Preset 0 aktiv
Q94 = Q708 ; BZP X
Q95 = Q709 ; BZP Y
Q96 = Q710 ; BZP Z
Q97 = Q700 ; BZP einzelne Achse
LBL 302
;-------------------------------------
END PGM PRESET MM 
