#LABEL "automatischer Werkzeugwechsel"
Version 19.04.2017 N. Benezan, Isel SK20-Spindel
feststehendes Magazin, Anfahren seitlich (Klammern)
Eingnge: #I8=LuftOk, #I52=Magazin offen, #I53=Magazin geschlossen
Ausgnge: #O13=Magazin auf, #O14=WZ auswerfen
Parameter:
Wechselposition T1: X=#965 Y=#966 Z=#967
Abstand T2-T1: dX=#968 dY=#969
Einfahrbewegung: dX=#970 dY=#971 dZ=#972
Sicherheitsposition X=#974 Y=#975 Z=#976
Anzahl Pltze #973
%
PRINT "Automatischer Werkzeugwechsel alt=";#950;" neu=";#920
IF #920=#950 THEN
  RETURN (gleiches Werkzeug, fertig)
ENDIF
IF #940=0 THEN
  PRINT "Fehler! Zustand des Werkzeugwechslers undefiniert."
  PRINT "Bitte zuerst alle Werkzeuge berprfen und manuellen"
  PRINT "Wechsel oder 'nur Nummer setzen' durchfhren"
  M2
ENDIF
IF #920<0 | #920>#973 THEN
  PRINT "Fehler! Werkzeugnummer ungltig T=";#920
  M2
ENDIF 
#940=0 (Wechselvorgang nicht abgeschlossen)
G4 H0.1
IF #I8=0 THEN
  PRINT "Fehler! Keine Druckluft"
  M2
ENDIF
#7=#909 (Nullpunkt G53..G59 merken)
G53
#0=(#950-1)*#968 (Offset Wechselplatz X)
#1=(#950-1)*#969 (Offset Wechselplatz Y)
G0 #976 (Z auf Sicherheitsposition)
G0 X=#965-#970+#0 Y=#966-#971+#1 (vor Wechsler mit Abstand)
#O13=1 (Klappe auf)
G4 H5 UNTIL #I52=1
IF #I52=0 THEN
  PRINT "Fehler! Magazin nicht geffnet"
  #909=#7
  M2
ENDIF

IF #950>0 THEN (altes Werkzeug ablegen)
  G0 Z=#967 (auf Zangenhhe)
  G1 X=#965+#0 Y=#966+#1 F2000 (langsam seitlich anfahren)
ENDIF
#O14=1 (Werkzeug Klemmung auf)
G4 H1
G0 Z=#967-#972 (Z hoch, Sicherheitsabstand)
#0=(#920-1)*#968 (Offset Wechselplatz X)
#1=(#920-1)*#969 (Offset Wechselplatz Y)
IF T>0 THEN (neues Werkzeug aufnehmen)
  IF #950=0 THEN
    G0 X=#965-#970+#0 Y=#966-#971+#1 (vor Wechsler mit Abstand)
  ENDIF
  G0 X=#965+#0 Y=#966+#1 (ber Wechsler)
  G0 Z=#967-#972 (Sicherheitsabstand)
  G1 Z=#967 F2000 (langsam von oben anfahren)
ENDIF
#O14=0 (Klemmung zu)
G4 H1
G0 X=#965-#970+#0 Y=#966-#971+#1 (seitlich aus Zange rausfahren)
G0 #976 (Z auf Sicherheitsposition)
IF #974<>0 THEN
  G0 X=#974 (X auf Sicherheitsposition wenn definiert)
ENDIF
IF #975<>0 THEN
  G0 Y=#975 (Y auf Sicherheitsposition wenn definiert)
ENDIF
#O13=0 (Klappe zu)
#950=#920 (letztes Werkzeug merken)
#940=1 (Wechsel erfolgreich)
#909=#7 (alten Nullpunkt wieder herstellen)
G4 H5 UNTIL #I53=1
IF #I53=0 THEN
  PRINT "Fehler! Magazin nicht geschlossen"
  M2
ENDIF
RETURN

Simulation:
PRINT "Werkzeugwechsel simuliert T=";T
RETURN

