Z Nullpunkt auf Materialoberfläche anfahren

  • Hallo zusammen,

    ich versuche verzweifelt ein Programm zu schreiben, welches mir den Z-Wert in den Nullpunkt G54 schreibt.

    Dieses Programm soll dann in das eigentliche CNC-Programm eingebunden werden, um bei jedem Werkstück

    vor der Bearbeitung den Nullpunkt zu ermitteln.

    Dazu hatte ich mir aus der Macro.cnc folgenden Programmteil rauskopiert:


    #4512=200 ; Anfahrvorschub

    #4513=50 ; Tastvorschub


    IF [[#3501 == 1] or [#4520 < 2]]then ; Wurde Werkzeug bereits Vermessen? 1=JA oder ist längensensor inaktiv geschaltet)

    #4518 = 0 ; Merker (Achse zurückfahren auf Z Vermessungspunkt) Sicherheitshalber rücksetzen

    DlgMsg "Soll Z-Nullpunkt ermittelt werden?"

    IF [[#5398 == 1] AND [#5397 == 0]] ; OK Taste gedrückt und RenderModus AUS !!

    M5 ; Spindel ausschalten

    msg "Taster wird angefahren"

    G38.2 G91 z-50 F[#4512] ; Schnelles anfahren auf Taster bis Schaltsignaländerung

    IF [#5067 == 1] ; Wenn Sensor gefunden wurde

    G38.2 G91 z20 F#4513 ; Langsam von Taster runterfahren zur exakten Z-Ermittlung

    G90

    IF [#5067 == 1] ; Wenn Sensor gefunden wurde

    G0 Z#5063 ; Schaltpunkt anfahren

    G92 Z[#4510] ; Z-Nullpunkt übernehmen

    G0 Z[#4510 + 5] ; Taster 2mm Freifahren

    msg"Z-Nullpunktermittlung fertig"

    ELSE

    G90

    errmsg "FEHLER: Sensor hat nicht geschaltet"


    ENDIF

    ELSE ;CANCEL

    G90

    DlgMsg "WARNUNG: Kein Sensor gefunden! Erneut Versuchen?"

    if [#5398 == 1] ;OK

    GoSub user_1

    ELSE

    errmsg "Messung wurde abgebrochen!"

    ENDIF

    ENDIF

    ENDIF

    ENDIF


    Allerdings kriege ich es nicht hin, das mir zum einen der Wert statt in G92 in G54 geschrieben wird, noch

    das ich in der Lage bin, den Werkzeuglängentaster mit zu verrechnen(z.B. Taster 30mm hoch).

    Beispiel: Taster schaltet bei Z-50, dann müssten noch die 30mm vom Taster draufgerechnet werden und -80 in G54 geschrieben werden


    Oder bin ich mit diesem Programmteil komplett auf dem Holzweg?

    Ich hoffe zum einen, dass es verständlich Erklärt worden ist und zum anderen, dass mir kann jemand bei der Lösung helfen kann .


    Gruß

    Andreas

  • Hallo Andreas,

    vielleicht lässt du dir die Werte der Variablen über Messageboxen mal anzeigen, oder in der Überwachung. Wo definierst Du denn die #4510, oder wird die von irgendwo übernommen?


    Gruß Klaus

    Nachtrag:

    #4510 ist Tasterhöhe ich habe es grade gesehen. Bei den ganzen Variablen kein Wunder das Man(n) es nicht direkt sieht. :)


    Warum "G92 Z[#4510] ; Z-Nullpunkt übernehmen", Du übernimmst immer die Tasterhöhe und nicht den Nullpunkt, wenn ich das so richtig verstehe. Ich vermute da den Fehler

  • Hallo Andreas,

    teste mal folgendes

    G10 L20 P#5223 Z0

    damit setzte G54 Z0 wert, ich setze vorher noch G92.1 um einen eventuellen G92 versatz zurückzusetzen.

    Mit dieser Variante wird das aktuelle koordinatensystem ausgelesen und der Z0 wert in dieses geschrieben.

    G10 L20 P#5220 Z0


    Statt der "0" kannste auch die Tasterhöhe eintragen.

    Viel erfolg damit


    Gruß

    Josef

  • Hallo zusammen,

    Klaus hat mir den Klaps in die richtige Richtung gegeben. Fälschlicherweise hatte ich #4510 völlig falsch zugeordnet.

    Der Rechenschritt hätte mit #5053 (Probe Position Z in Machine Coordinates) stattfinden müssen.


    Hier der Rechenweg (#4510=Tasterhöhe), inkl. löschen G92 (#5213)

    #5223 = [-#5053 + #4510]

    g10 l2 p1 z-[#5223]

    #5213 = 0


    Vielen Dank für die Unterstützung


    Gruß

    Andreas

  • Hallo Andreas,

    du beschreibst Systemvariabeln (#5223), das wird irgendwann Probleme bereiten.

    Lies dir mal in der Anleitung ab Seite 115 die Spezifizierung der Variabeln an.

    Es gibt bereiche zur freien verwendung.

    Gruß

    Josef