BEGIN PGM MTDATEN MM 
; ------------------------------------------------ 
; MESSTASTERDATEN  AENDERN
; ------------------------------------------------ 
; Stand 12072001 PDR V1
; Stand 29102001 PDR V1 Messtasterdaten bernehmen wenn Taster aktiv
; Stand 06062002 PDR V1 Messtasterdaten bernehmen MIT FUNCT950
; Stand 10022004 PDR V1 inaktiv > INAKTIV
;******************************
; KONSTANTEN / VARIABLEN
;
;++++Variablen fr SQL-Aufrufe
; Q59 =  SQL Merker
; Q58 =  SQL Merker
; FREI: Q57  Q56  Q55 
;
;++++Variablen als Konstanten
; Q53 = Max Anzahl TS-Taster aus KONST.K2 I0
; Q52 = Max Anzahl TM-3D-Taster aus KONST.K3 I0
; Q51 = Max Anzahl TT-Taster aus KONST.K4 I0
; FREI: Q50
;
;++++Variablen mit fester Zuordnung
; Q49 = Tabellenindex = Tasternummer -1
; Q48 = Abfragemerker TS-TasterSchaltknopf
; Q47 = Abfragemerker TS-TasterSchaltknopf
; Q46 = Abfragemerker TS-TasterSchaltknopf
; Q45 = Abfragemerker Taster-Nummer
; Q44 = Tabellenindex = fr TT-Taster
; Q43 = Werkzeugnummernmerker
;
; FREI:  Q42  Q41  Q40
;
;++++ KURZZEITVARIABLEN
; Q1 = Rechenergebniss
;
; FREI: Q2  Q3  Q4  Q5  Q5  Q6  Q7  Q8  Q9  
;
;
;*********************
; KONSTANTEN LADEN
;
Q55 = 10
Q53 = 10
Q52 = 0
Q51 = 0
Q899 = 3006.53
Q49 = 0
Q44 = 0
;
;*********************
; SCHLEIFENEINSPRUNG LBL 20
LBL 20
;
;
Q873 = +Q49 + 1
Q45 = +Q873
Q866 = 0
Q867 = 0
Q868 = 0
Q869 = 0
Q54 = 0
;
;**************************
; WERTEBEREICH PRUEFEN
Q1 = +Q53 + +Q52 + +Q51 - 1
FN 11: IF +Q49 GT +Q1 GOTO LBL 50
FN 12: IF +Q49 LT +0 GOTO LBL 51
FN 9: IF +1 EQU +1 GOTO LBL 52
LBL 50
Q49 = +Q1
FN 9: IF +1 EQU +1 GOTO LBL 52
LBL 51
Q49 = 0
LBL 52
;
;
;**************************
; MESSTASTERTYP AUSWAEHLEN
Q870 = 0
Q871 = 0
Q872 = 0
Q862 = 1
;
;***********************
; TCHPROBE DATEN AUS TABELLE LADEN
FN 9: IF +Q862 EQU +10 GOTO LBL 2030
;----TS + TM-Taster
Q5 = +Q862
CALL LBL 2010
Q862 = +Q5
;---Werkzeugnummer sichern
Q43 = +Q801
FN 9: IF +0 EQU +0 GOTO LBL 2031
;---TT-Taster
LBL 2030
Q44 = +Q49 - +Q53 - +Q52
Q1 = +Q862
CALL LBL 2020
Q862 = +Q1
LBL 2031
;
;********************
; Schaltmerker vorbelegen
Q48 = +Q870
Q47 = +Q871
Q46 = +Q872
;
;Q899 = 0 PASSWORD loeschen
;
; *************************
; QUERY-Aufruf entsprechend dem angewhlten Tastertyp
;
;+++++TT-Taster++++++++
CYCL QUERY 895 MESSTASTER        TS
FN 9: IF +1 EQU +1 GOTO LBL 24
LBL 21
;
;
LBL 24
;
;***********************
; genderte Daten abspeichern
FN 9: IF +Q862 EQU +10 GOTO LBL 2040
;---TS + TM-Taster
; zZ ist kein Passwortschutz aktiv. Q899 = 3006.53
FN 10: IF +Q899 NE +3006.53 GOTO LBL 41
FN 10: IF +Q870 NE +1 GOTO LBL 41
SQL UPDATE Q58 HANDLE Q59 INDEX Q49
FN10: IF Q58 NE +0 GOTO LBL 98
LBL 41
FN 10: IF +Q54 NE +1 GOTO LBL 42
SQL UPDATE Q58 HANDLE Q59 INDEX Q49
Q54 = 0
FN10: IF Q58 NE +0 GOTO LBL 98
LBL 42
SQL COMMIT Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
SQL BIND Q801
SQL BIND Q802
SQL BIND Q874
SQL BIND Q875
SQL BIND Q879
SQL BIND Q884
SQL BIND Q847
SQL BIND Q885
SQL BIND Q886
SQL BIND Q887
SQL BIND Q850
SQL BIND Q857
SQL BIND Q858
SQL BIND Q849
SQL BIND Q861
SQL BIND Q862
FN 10: IF +Q870 NE +1 GOTO LBL 2042
;** IF WKZ-Nr. alt =/= WKZ-Nr.Neu
;  FN 9: IF +Q43 EQU +Q801 GOTO LBL2041
;**THEN
;---alte Werkzeugnummer freigeben
Q799 = 0
Q798 = Q43
CALL LBL 5000
FN 11: IF Q799 GT +1 GOTO LBL 9011
;---neue Werkzeugnummer setzen
Q799 = 0
Q798 = Q801
Q797 = Q49 + 1 
FN 9: IF Q798 EQU +0 GOTO LBL 2041
CALL LBL 5100
FN 11: IF Q799 GT +1 GOTO LBL 9012
LBL 2042
FN 9: IF +0 EQU +0 GOTO LBL 2041
LBL 2041
;
FN 18: SYSREAD Q0 = ID950 NR24
FN 10: IF +Q0 NE +21 GOTO LBL 2043
Q0 = Q873
Q1 = Q862
CYCL DEF 910 Tastsystem wechseln ~
Q873=+Q0    ;Tastsystem-Nummer ~
Q862=+Q1    ;Tastsystem-Typ
;
; +++ Wirksame Lnge+++
FN17: SYSWRITE ID950 NR1 = +Q874
;
; +++ Wirksamer Radius+++
FN17: SYSWRITE ID950 NR2 = +Q875
;
; +++ Wirksamer Radius2+++
FN17: SYSWRITE ID950 NR3 = +Q879
;
; +++ Werkzeuglaengen aktivieren ***
FN22: FUNCT Q0 FNR950 PIN3
;
LBL 2043
;
LBL 1
;
; ***************************
; FRAGE:  MESSTASTER TS
;
FN 9: IF +Q870 EQU +Q48 GOTO LBL 10
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 10
;
; ***************************
; FRAGE:  MESSTASTER TM
;
FN 9: IF +Q871 EQU +Q47 GOTO LBL 11
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 11
;
; ***************************
; FRAGE:  MESSTASTER TT
;
FN 9: IF +Q872 EQU +Q46 GOTO LBL 12
FN 9: IF +1 EQU +1 GOTO LBL 99
LBL 12
;
; ***************************
; FRAGE:  Direkte TASTERNUMMER
;
FN 9: IF +Q873 EQU +Q45 GOTO LBL 1200
Q49 = +Q873 - 1
Q1 = +Q53 + +Q52 + +Q51
FN 12: IF +Q49 LT +Q1 GOTO LBL 1201
Q49 = +Q1 - 1
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 1201
FN 12: IF +Q49 LT +0 GOTO LBL 1202
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 1202
Q49 = 0
FN 9: IF +1 EQU +1 GOTO LBL 20
;
LBL 1200
;
; ***************************
; FRAGE:  MESSTASTER PLUS 1
;
FN 9: IF +Q868 EQU +0 GOTO LBL 13
Q49 = +Q49 + 1
Q1 = +Q53 + +Q52 + +Q51
FN 9: IF +Q49 EQU +Q1 GOTO LBL 16
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 16
Q49 = 0
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 13
;
; ***************************
; FRAGE:  MESSTASTER MINUS 1
;
FN 9: IF +Q869 EQU +0 GOTO LBL 18
Q49 = +Q49 - 1
FN 9: IF +Q49 EQU -1 GOTO LBL 17
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 17
Q1 = +Q53 + +Q52 + +Q51 - 1
Q49 = +Q1
FN 9: IF +1 EQU +1 GOTO LBL 20
LBL 18
;
; *********************
; SPRUNG ZUM ENDE
;
FN 9: IF +1 EQU +1 GOTO LBL 99
;
;*********************
; KONSTANTEN LADEN
LBL 2000
SQL BIND Q1 "KONST.K1"
SQL BIND Q53 "KONST.K2"
SQL BIND Q52 "KONST.K3"
SQL BIND Q51 "KONST.K4"
SQL Q59 "SELECT K1, K2, K3, K4 FROM 'O:\table\konst.dta'"
SQL FETCH Q58 HANDLE Q59 INDEX 0
FN10: IF Q58 NE +0 GOTO LBL 98
;
SQL COMMIT Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
SQL BIND Q1
SQL BIND Q53
SQL BIND Q52
SQL BIND Q51
;
Q55 = +Q53 + +Q52 + +Q51 - 1
FN 12: IF +Q55 LT +Q1 GOTO LBL 2001
FN 14: ERROR= 1016
LBL 2001
LBL 0
;
;***********************
; TCHPROBE DATEN AUS TABELLE LADEN
LBL 2010
SQL BIND Q801 "TCHPROBE.TOOL_NR"
SQL BIND Q802 "TCHPROBE.IR"
SQL BIND Q874 "TCHPROBE.L"
SQL BIND Q875 "TCHPROBE.R0"
SQL BIND Q879 "TCHPROBE.R2"
SQL BIND Q884 "TCHPROBE.ORIENT_SPINDLE"
SQL BIND Q847 "TCHPROBE.ORIENT_VALUE"
SQL BIND Q885 "TCHPROBE.CALANG"
SQL BIND Q886 "TCHPROBE.OFFS0"
SQL BIND Q887 "TCHPROBE.OFFS1"
SQL BIND Q850 "TCHPROBE.OFFS2"
SQL BIND Q857 "TCHPROBE.FEED1"
SQL BIND Q858 "TCHPROBE.FEED2"
SQL BIND Q849 "TCHPROBE.DIST"
SQL BIND Q861 "TCHPROBE.SECU"
SQL BIND Q862 "TCHPROBE.T_TYP"
SQL Q59 "SELECT TOOL_NR,IR,L,R0,R2,ORIENT_SPINDLE,ORIENT_VALUE,CALANG,OFFS0,OFFS1,OFFS2,FEED1,FEED2,DIST,SECU,T_TYP FROM TCHPROBE"
SQL FETCH Q58 HANDLE Q59 INDEX Q49
FN10: IF Q58 NE +0 GOTO LBL 98
;++++
;*** Wenn T-Nr nicht stimmt diese lschen
Q4 = Q49 +1
SQL BIND Q1 "TOOL.T"
SQL Q2 "SELECT T FROM TOOL WHERE NAME LIKE 'TS-:'Q4'' FOR UPDATE"
SQL FETCH Q3 HANDLE Q2 INDEX0
SQL BIND Q1
FN 9:IF Q1 EQU Q801 GOTO LBL 2011
Q801 = 0
Q54 = 1
LBL 2011
;+++++
;
LBL 0
;
;***********************
; TCHPROBE DATEN AUS TABELLE LADEN
LBL 2020
SQL BIND Q851 "TOOL_TC_PR.TT_POS1"
SQL BIND Q852 "TOOL_TC_PR.TT_POS2"
SQL BIND Q853 "TOOL_TC_PR.TT_POS3"
SQL BIND Q854 "TOOL_TC_PR.TT_R"
SQL BIND Q855 "TOOL_TC_PR.TT_DELTA"
SQL BIND Q856 "TOOL_TC_PR.TT_RICH"
SQL BIND Q857 "TOOL_TC_PR.FEED1"
SQL BIND Q858 "TOOL_TC_PR.FEED2"
SQL BIND Q859 "TOOL_TC_PR.FEED3"
SQL BIND Q860 "TOOL_TC_PR.UMDR"
SQL BIND Q849 "TOOL_TC_PR.DIST"
SQL BIND Q861 "TOOL_TC_PR.SECU"
SQL BIND Q848 "TOOL_TC_PR.SECU2"
SQL BIND Q862 "TOOL_TC_PR.T_TYP"
SQL Q59 "SELECT TT_POS1,TT_POS2,TT_POS3,TT_R,TT_DELTA,TT_RICH,FEED1,FEED2,FEED3,UMDR,DIST,SECU,SECU2,T_TYP FROM TOOL_TC_PR WHERE NR>-1 AND NR<21 "
SQL FETCH Q58 HANDLE Q59 INDEX Q44
FN10: IF Q58 NE +0 GOTO LBL 98
;
LBL 0
;
;
;***********************
; Bei Werkzeugnderung dieses in TOOL-TAB eintragen
LBL 3000
SQL BIND Q10 "TOOL.TYP"
SQL BIND Q11 "TOOL.L"
SQL BIND Q12 "TOOL.R"
SQL BIND Q13 "TOOL.TP"
SQL Q59 "SELECT L,R,TYP,TP FROM TOOL WHERE T =:'Q801'"
SQL FETCH Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
FN 9: IF Q10 EQU 99 GOTO LBL 3002
FN 9: IF Q10 EQU 21 GOTO LBL 3002
FN14: ERROR = 1001
LBL 0
LBL 3002
Q10 = +21
Q11 = +9999.9999
Q12 = +9999.9999
Q13 = +Q49 + +1
SQL UPDATE Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
SQL COMMIT Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
FN 9: IF Q43 EQU +0 GOTO LBL 3001
SQL Q59 "SELECT L,R,TYP,TP FROM TOOL WHERE T =:'Q43'"
SQL FETCH Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
FN 10: IF Q10 NE +21 GOTO LBL 3004
Q10 = +99
Q11 = +8888.888
Q12 = +8888.888
Q13 = 0
SQL UPDATE Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
LBL 3004
SQL COMMIT Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
LBL 3001
SQL BIND Q10
SQL BIND Q11
SQL BIND Q12
SQL BIND Q13
;
LBL 0
; *********************
; TASTER EINWECHSELN
;
LBL 1000
FN 9: IF +1 EQU +1 GOTO LBL 99
;
;*********************
; KONSTANTEN DEFINIEREN
LBL 1100
SQL BIND Q1 "KONST.K1"
SQL BIND Q863 "KONST.K2"
SQL BIND Q864 "KONST.K3"
SQL BIND Q865 "KONST.K4"
SQL Q59 "SELECT K1, K2, K3, K4 FROM 'O:\table\konst.dta'"
SQL FETCH Q58 HANDLE Q59 INDEX0
FN10: IF Q58 NE +0 GOTO LBL 98
;
CYCL QUERY 894 MESSTASTER TAB. DEF.
;
SQL UPDATE Q58 HANDLE Q59 INDEX0
FN10: IF Q58 NE +0 GOTO LBL 98
SQL COMMIT Q58 HANDLE Q59
FN10: IF Q58 NE +0 GOTO LBL 98
SQL BIND Q1
SQL BIND Q863
SQL BIND Q864
SQL BIND Q865
;
Q55 = +Q863 + +Q864 + +Q865
FN 11: IF +Q55 GT +Q1 GOTO LBL 1100
FN 9: IF +1 EQU +1 GOTO LBL 99
;
;*******************
; ENDE
LBL 98
FN 14: ERROR = 1016
LBL 99
Q899 = 0
FN  9: IF +0 EQU +0 GOTO LBL 5999
;
;================================
;Altes Messwerkzeug in TOLLT.T lschen
; Q798     = Alte Werkzeugnummer
; Q799    = Fehlermeldung
;================================
LBL 5000
;--------------------------------------------------------
;Fehlermeldung Lschen /Initialisieren
Q799 = +0
;
;* IF Qalt in TOOL.T vorhanden
SQL BIND Q10 "TOOL.TYP"
SQL BIND Q11 "TOOL.L"
SQL BIND Q12 "TOOL.R"
SQL Q59 "SELECT L,R,TYP FROM TOOL WHERE T =:'Q798'"
SQL FETCH Q58 HANDLE Q59
FN 11: IF +Q58 GT +0 GOTO LBL 5001
;*THEN
    ;**IF ToolTyp = 21
      FN 10: IF +Q10 NE 21 GOTO LBL 5001
    ;**THEN
      ;**-------------------------------------------------
      ;    ToolTyp = 99
      ;    TOOL.R = 9999.000
      ;    TOOL.L = 9999.000
      ;    Toolname = inaktinv
      ;    Q799         = 1 = OK
      Q10 = +99
      Q11 = +9999.0000
      Q12 = +9999.0000
      SQL UPDATE Q58 HANDLE Q59
      FN10: IF Q58 NE +0 GOTO LBL 9010
      SQL COMMIT Q58 HANDLE Q59
      SQL Q57 "UPDATE TOOL SET NAME='INAKTIV'WHERE T=:'Q798'"
      FN  9: IF Q57 EQU +0 GOTO LBL 5003
         Q799 = 10
      FN  9: IF +0 EQU +0 GOTO LBL 5001
      LBL 5003            
      Q799 = +1
  ;**END
;*END
LBL 5001
SQL BIND Q10
SQL BIND Q11
SQL BIND Q12 
LBL 0
;
;
;
;================================
;Neues Messwerkzeug in TOLLT.T eintragen
; Q797     = Messtasternzmmer
; Q798     = Neue Werkzeugnummer
; Q799     = Fehlermeldung
;================================
LBL 5100
;--------------------------------------------------------
;Fehlermeldung Lschen /Initialisieren
Q799 = +0
;
;* IF Qneu in TOOL.T vorhanden
SQL BIND Q10 "TOOL.TYP"
SQL BIND Q11 "TOOL.L"
SQL BIND Q12 "TOOL.R"
SQL Q59 "SELECT L,R,TYP FROM TOOL WHERE T =:'Q798'"
SQL FETCH Q58 HANDLE Q59
FN 11: IF +Q58 GT +0 GOTO LBL 5101
;*THEN
    ;**IF ToolTyp = 21 OR 99
      FN 9: IF +Q10 EQU 21 GOTO LBL 5102
      FN 9: IF +Q10 EQU 99 GOTO LBL 5102
      FN 9: IF +0 EQU +0 GOTO LBL 5101
    ;**THEN
    LBL 5102 
      ;**-------------------------------------------------
      ;    ToolTyp = 21
      ;    TOOL.R = 9999.1111
      ;    TOOL.L = 9999.1111
      ;    Toolname = TS-(nr)
      ;    Q799         = 1 = OK
      Q10 = +21
      Q11 = +9999.1111
      Q12 = +9999.1111
      SQL UPDATE Q58 HANDLE Q59
      ;FN10: IF Q58 NE +0 GOTO LBL 5101
      SQL COMMIT Q58 HANDLE Q59
      SQL Q57 "UPDATE TOOL SET NAME='TS-:'Q797''WHERE T=:'Q798'"
      FN  9: IF Q57 EQU +0 GOTO LBL 5103
         Q799 = 10
      FN  9: IF +0 EQU +0 GOTO LBL 5199
      LBL 5103            
      Q799 = +1
  ;**END
  FN  9: IF +0 EQU +0 GOTO LBL 5199
;*ELSE
  LBL 5101
  ;-----Fehlernummer +1000
  Q799 = Q799 +  +1000
;*END
  FN  9: IF +0 EQU +0 GOTO LBL 5199
LBL 5199 
SQL BIND Q10
SQL BIND Q11
SQL BIND Q12 
LBL 0
;
;***********************************
; FEHLERMELDUNGEN
;
LBL 9010
Q881 = 99
FN 9: IF +1 EQU +1 GOTO LBL 9000
;
LBL 9011
Q881 = 1
Q882 = Q799
FN 9: IF +1 EQU +1 GOTO LBL 9000
;
LBL9012
Q881 = 2
Q882 = Q799
FN 9: IF +1 EQU +1 GOTO LBL 9000
;
LBL 9000
Q880 = 98989
FN 9: IF +1 EQU +1 GOTO LBL 98
;
;CYCL QUERY 893 PARAMETER ANZEIGE
;
LBL 5999
END PGM MTDATEN MM 
