Nachdem wir uns wohl einig sind, keinen ferigen und sicher funktionierenden Zyklus "für Umme" herausgeben zu wollen: ...
Ich hab mir den "Zyklus" von Robbyblue noch mal angesehen und kommentiert.
QUOTE
;15.03.2014
PROC L999 DISPLOF
;Deklaration als "Unterprogramm mit Werteübergabe", es werden aber keine Werte übergeben.
;Spezialzyklus fuer Einlippenbohrer
;R1=Statposition
;R2=Einfahrposition
;R3=Endbohrtiefe
;R06=SPINDELRICHTEN SCHNEIDE IMMER NACH OBEN
;R10=Rueckzugsposition Absolut
;R15=Vorschub zum einfahren
;R16=Vorschub beim bohren
;R17=Vorschub Rueckzug
;R18=DrehzahlN10 G90 G00 Z=R1 M05
;Startposition anfahrenN20 SP0=R6
; Wertübergabe an SPO (offenbar ein GUD)(ziemlich unsinnig)N30 INDEX_SP
; Aufruf des Unterprogramms "INDEX_SP" ... was auch immer da passiert ...N40 SPOS=SP0
; Positionierung der Spindel auf den Wert in SPO (ursprünglich R6)N50 G01 Z=R2 F=R15 M05 M12
; Einführen mit stehender Spindel(M5) mit Vorschub R15 (funktioniert nur mit G94, was aber nicht programmiert wurde!) M12? (in der Liste der M-Befehle in der Bedienanleitung nachschauen)N60 MSG ("M01 - FUEHRUNG EINLIPPENBOHRER PRUEFEN !!!")
N70 M01
;Bedingter Halt, wenn die Taste am MP gedrückt ist.N80 MSG
; Der Stop an dieser Stelle macht aber keinen erkennbaren Sinn! Wenn der Bohrer die Pilotbohrung nicht getroffen hat, hat sich der Rest schon erledigt ...N90 M7
; Kühlmittel einN100 Z=R3 S=R18 M03 F=R16
; Bohren auf Endbohrtiefe (noch immer mit G94!)N110 M05 F=R17
; Spindel Halt, neuer Vorschubwert für den RückzugN120 G04 F2
;2 Sekunden "Däumchen drehen" Warum? Es bewegt sich doch nichts ...N130 G01 G90 Z=R10 M12
; Rückzug bis Rückzugposition (G90 ist hier absolut unsinnig. Der Aufruf in N10 ist noch aktiv!) M12 siehe N50N140 M9
;Kühlmittel ausN150 G00 G60
; Nochmals unsinniger Code (Eilgang, Genauhalt) (keine Position)N160 M17
Komprimiert (funktionslose Zeilen entfernt) ist das natürlich kein Zyklus mehr:
QUOTE
Kurzform_L999:
G90 M05
G0 Z=R1 SPOS=R6
G1 Z=R2 F=R15 M12
M7
Z=R3 S=R18 M03 F=R16
M5 F=R17
G4 F2
G1 Z=R10 M12
M9
G0 G60
M17
Abgesehen von technologischen Unzulänglichkeiten ist der Code auch nicht wirklich geeignet, um daraus einen funktionierenden Zyklus zu stricken.
Die Grundlage sollte ein sicher funktionirendes Programm, das auch sauber programmiert wurde, sein. Das heißt für mich, unnötiger Code wird gnadenlos eliminiert. Dazu gehören vor allem doppelte Aufrufe von Funktionen (das macht wahrscheinlich nicht nur mich 'wuschig')
Unnötige Verschiebungen von unbearbeiteten Daten, von einer Variablen zur Nächsten sind auch tabu. (Da krieg ich Fell auf den Zähnen!)
Als Vorschlag für den Anfang hier der etwas modifizierte Code (noch mit R-Parametern) in etwas "verständlicherer Form":
Die Kommentare am Anfang sind für das Verständnis allerdings unerläßlich.
QUOTE
Vorschlag bei angesenkter Pilotbohrung:
;************************
;R1=Statposition absolut
;R2=Einfahrposition absolut
;R3=Endbohrtiefe absolut
;R06=Spindelposition mit Schneide nach oben
;R10=Rueckzugsposition absolut (noch in der Bohrung)
;R15=Vorschub zum einfahren mm/min.
;R16=Vorschub beim bohren mm/U.
;R17=Vorschub Rueckzug mm/min.
;R18=
Drehzahl U/min.
;************************
N01 G90
N02 G94 G97
N03 G54
N04 G0 Z=R1 SPOS=R6
N05 G1 Z-2 F=R15
N06 G1 Z=R2 M7 M3 S200 ; 'einfädeln'
N07 G1 G95 Z=R3 S=R18 F=R16 ; Vorschub in mm/U.
N08 G4 S10 ; 10 Umdrehungen 'freischneiden'
N09 G1 Z=IC(0.1) S200 ;Abheben bei reduzierter Drehzahl
N10 G1 G94 Z=R10 F=R17
N11 G1 Z=R1 F=R15 M5 M9
N12 M17
Übrigens kann ich auch einen schmucken Zyklus nach Wunsch produzieren.
Einfach eine Anfrage per PN mit den Anforderungen stellen. Angebot kommt postwendend.
Der Beitrag wurde von guest bearbeitet: 20.06.2015, 15:45 Uhr