Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;***************************************************************************************
- ;SOROTEC
- ;Withig 12
- ;77836 Rheinm�nster
- ;Germany
- ;***************************************************************************************
- ;* MACRO CNC V1.0e Ohne Auto-WZW
- ;***************************************************************************************
- ;***************************************************************************************
- ;DOKU
- ;***************************************************************************************
- ;Versionshistorie
- ;V1.0e : Bei Wechslertyp 0 und 2 wird jetzt vor Z-Nullpunktermittlung nciht mehr gepr�ft ob Werkezug vermessen
- ;Verwendete Variablen
- ; #3500 INIT
- ; #3501 Merker ( Wurde Werkzeug bereits Vermessen? 1=JA)
- ; #3502 Merker Wird nur f�r eine Berechnung ben�tigt
- ; #3503 Merker Ja / Nein in Dialogabfragen
- ; #4500 FREI
- ; #4501 Aktuelle Werkzeugl�nge
- ; #4502 Alte Werkzeugl�nge
- ; #4503 Maximale Werkzeugl�nge (WZL-Vermessung)
- ; #4504 Antastgeschwindigkeit zum Taster "suchen" (mm/min) (WZL-Vermessung)
- ; #4505 Tastgeschwindigkeit zum Messen(mm/min) (WZL-Vermessung)
- ; #4506 ;Sicherheitsh�he als Maschinenkoordinate (WZL-Vermessung)
- ; #4507 ;Positionsangabe der X Achse (WZL-Vermessung)
- ; #4508 ;Positionsangabe der Y Achse (WZL-Vermessung)
- ; #4509 Abstand Spindelnase zu L�ngensensor von Z0 aus (WZL-Vermessung)
- ; #4510 Tasterh�he (ZNP-Vermessung)
- ; #4511 Freifahrh�he (ZNP-Vermessung)
- ; #4512 Antastgeschwindigkeit zum Taster "suchen" (ZNP-Vermessung)
- ; #4513 Tastgeschwindigkeit zum Messen (ZNP-Vermessung)
- ; #4514 Zwischenspeicher f�r X Pos
- ; #4515 Zwischenspeicher f�r Y Pos
- ; #4516 Zwischenspeicher f�r Z Pos
- ; #4517 Merker (Es wurde kein Werkzeug ausgew�hlt)
- ; #4518 Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
- ; #4519 Was tun nach Werkzeugvermessung: 0= vordefinierten Punkt anfahren 1= Werkst�cknullpunkt fahren 2= Werkzeugwechselpos anfahren 3= Maschinennullpunkt anfahren 4= Stehen bleiben
- ; #4524 Position X nach L�ngenmessung
- ; #4525 Position Y nach L�ngenmessung
- ; #4526 Position Z nach L�ngenmessung
- ; #4520 Werkzeugwechseltyp 0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
- ; #4521 (TYP 0) Werkzeugwechselpos X
- ; #4522 (TYP 0) Werkzeugwechselpos Y
- ; #4523 (TYP 0) Werkzeugwechselpos Z
- ; #4524 Position X nach L�ngenmessung
- ; #4525 Position Y nach L�ngenmessung
- ; #4526 Position Z nach L�ngenmessung
- ; #4527 Abstand Taster zum Spindelkopf bei Z0 G53 negativer Wert
- ;***************************************************************************************
- IF [#3500 == 0] then ; INIT
- #3500 = 1
- IF [#4504 == 0] THEN
- #4504 =50 ;Antastgeschwindigkeit zum Taster "suchen" (mm/min)
- ENDIF
- IF [#4505 == 0] THEN
- #4505 =10 ;Tastgeschwindigkeit zum Messen(mm/min)
- ENDIF
- IF [#4511 == 0] THEN
- #4511 =10 ;Freifahrh�he
- ENDIF
- IF [#4512 == 0] THEN
- #4512 = 50 ;Antastgeschwindigkeit zum Taster "suchen"
- ENDIF
- IF [#4513 == 0] THEN
- #4513 =20 ;Tastgeschwindigkeit zum Messen
- ENDIF
- ENDIF
- ;***************************************************************************************
- ;---------------------------------------------------------------------------------------
- Sub user_1 ;Z-Nullpunktermittlung
- ;---------------------------------------------------------------------------------------
- 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] ;OK
- 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
- ELSE
- DlgMsg "WARNUNG: Werkzeug wurde noch nicht vermessen!"
- if [#5398 == 1] ;OK
- #4514 = #5071 ; Zwischenspeicher f�r X Pos
- #4515 = #5072 ; Zwischenspeicher f�r Y Pos
- #4516 = #5073 ; Zwischenspeicher f�r Z Pos
- #4518 = 1 ; Merker setzen das zur�ckpositioniert wird
- GoSub user_2
- ENDIF
- ENDIF
- Endsub
- ;***************************************************************************************
- Sub user_2 ;Werkzeugl�ngenmessung
- ;---------------------------------------------------------------------------------------
- #5016 = [#5011] ; Neue Werkzeugnummer
- #4527 = [#4509] ; Abstand Taster zum Spindelkopf bei Z0 (G53)(negativer Wert)
- #5017 = [#4503] ; Maximale Werkzeugl�nge
- #5019 = [#4507] ; Werkzeugl�ngensensorposition X-Achse
- #5020 = [#4508] ; Werkzeugl�ngensensorposition Y-Achse
- #5021 = 0 ; Gemessene Werkzeugl�nge wird hier eingetragen
- msg "Werkzeug wird vermessen"
- dlgmsg "Soll Werkzeug Vermessen werden?" "Werkzeugl�nge ca:" 5017
- if [#5398 == 1] ;OK
- IF [[#5017] < 0] THEN ; Testen ob Werkzeugl�nge negativ
- DlgMsg "!!! WARNUNG: Werkzeugl�nge darf nicht negativ sein !!!"
- if [#5398 == 1] ;OK
- GoSub user_2
- ELSE
- GoSub user_2
- ENDIF
- ENDIF
- IF [[#4527 + #5017 + 10] > [#4506]] THEN ; Testen ob errechneter Wert h�her wie sicherheitsh�he ist
- DlgMsg "!!! WARNUNG: Werkzeug zu lang !!!"
- if [#5398 == 1] ;OK
- GoSub user_2
- ELSE
- GoSub user_2
- ENDIF
- ENDIF
- M5
- G53 G0 z[#4506] ; Sicherheitsh�he
- G53 G0 x[#5019] y[#5020]
- G53 G0 z[#4527 + #5017 + 10]
- G53 G38.2 Z[#4527] F[#4504]
- IF [#5067 == 1] ; Wenn Sensor gefunden wurde
- G91 G38.2 Z20 F[#4505]
- G90
- IF [#5067 == 1] ; Wenn Sensor gefunden wurde, wird Tastpunkt in #5053 gespeichert
- G00 g53 z#4506
- #5021 = [#5053 - #4527] ; Berechnung Werkzeugl�nge = Tastpunkt - chuck height
- msg "Werkzeugl�nge = " #5021
- IF [#3501 == 1] ; (Wurde Werkzeug bereits Vermessen? 1=JA)
- #4502 = [#4501] ; Alte Werkzeugl�nge speichern
- #4501 = [#5021] ; Aktuelle Werkzeugl�nge eintragen
- #3502 = [#4501 - #4502] ; Werkzeugl�ngenunterschied ausrechnen
- G92 Z[#5003 - #3502] ; Z-Nullpunkt ermitteln
- ;Werkzeuglaenge und Werkzeugdurchmesser in Tabelle speichern
- ;#[5400 + #5016] = [#5053 - #4527] ;Berechnete Werkzeugl�nge in Tabelle speichern
- ;#[5500 + #5016] = #5018 ;Werkzeugdurchmesser in Tabelle speichern
- ;msg "Gemessene Werkzeuglaenge="#[5400 + #5016]" gespeichert in Werkzeugnr. "#5016
- ELSE
- #4501 = [#5021] ; Aktuelle Werkzeugl�nge eintragen
- ENDIF
- IF [#4518 == 1] then ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
- G0 G53 Z#4506 ; Repositionieren
- G0 G53 X#4514 Y#4515 ; Repositionieren
- #4518 = 0 ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
- #3501 = 1 ; Merker (Wurde Werkzeug bereits Vermessen? 1=JA)
- ELSE
- IF [#4519 == 0] then ; Was tun nach Werkzeugvermessung 0= vordefinierten Punkt anfahren
- G0 G53 Z#4506 ; Sicher Z
- G0 G53 X#4524 Y#4525 ; Vordefinierten Punkt anfahren
- ENDIF
- IF [#4519 == 1] then ; Was tun nach Werkzeugvermessung 1= Werkst�cknullpunkt fahren
- G0 G53 Z#4506 ; Sicher Z
- G0 X0 Y0 ; Werkst�cknullpunkt anfahren
- ENDIF
- IF [#4519 == 2] then ; Was tun nach Werkzeugvermessung 2= Werkzeugwechselpos anfahren
- G0 G53 Z#4523 ; Werkzeugwechselpunkt anfahren
- G0 G53 X#4521 Y#4522; Werkzeugwechselpunkt anfahren
- ENDIF
- IF [#4519 == 3] then ; Was tun nach Werkzeugvermessung 3= Maschinennullpunkt anfahren
- G0 G53 Z#4506 ;
- G0 G53 X0 Y0 ; Maschinennullpunkt anfahren
- ENDIF
- IF [#4519 == 4] then ; Was tun nach Werkzeugvermessung 4= Stehen bleiben
- ENDIF
- Endif
- #4518 = 0 ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
- #3501 = 1 ; Merker (Wurde Werkzeug bereits Vermessen? 1=JA)
- ELSE
- errmsg "FEHLER: Kein Sensor gefunden - RESET BET�TIGEN"
- ENDIF
- ELSE
- errmsg "FEHLER: Kein Sensor gefunden - Messung abgebrochen"
- ENDIF
- ENDIF
- Endsub
- ;***************************************************************************************
- Sub user_3;
- ;---------------------------------------------------------------------------------------
- msg "sub user_3"
- Endsub
- ;***************************************************************************************
- Sub user_4
- ;---------------------------------------------------------------------------------------
- msg "sub user_4"
- Endsub
- ;***************************************************************************************
- Sub user_5
- ;---------------------------------------------------------------------------------------
- msg "sub user_5"
- Endsub
- ;***************************************************************************************
- Sub user_6
- ;---------------------------------------------------------------------------------------
- msg "sub user_6"
- Endsub
- ;***************************************************************************************
- Sub user_7
- ;---------------------------------------------------------------------------------------
- msg "sub user_7"
- Endsub
- ;***************************************************************************************
- Sub user_8
- ;---------------------------------------------------------------------------------------
- Msg "sub user_8"
- Endsub
- ;***************************************************************************************
- Sub user_9
- ;---------------------------------------------------------------------------------------
- Msg "sub user_8"
- Endsub
- ;***************************************************************************************
- Sub user_10
- ;---------------------------------------------------------------------------------------
- DlgMsg "Soll Maschinennullpunkt angefahren werden?"
- if [#5398 == 1] ;OK
- G53 G0 Z0
- G53 X0 Y0
- ENDIF
- Endsub
- ;***************************************************************************************
- Sub user_11 ; Nicht mehr vorhanden)
- ;---------------------------------------------------------------------------------------
- Msg "sub user_11"
- Endsub
- ;***************************************************************************************
- Sub home_z ;Homing per axis
- ;---------------------------------------------------------------------------------------
- msg "Referenziere Achse Z"
- M80
- g4p0.2
- home z
- Endsub
- ;***************************************************************************************
- Sub home_x
- msg "Referenziere Achse X"
- M80
- g4p0.2
- home x
- ;homeTandem X
- Endsub
- ;***************************************************************************************
- Sub home_y
- msg "Referenziere Achse Y"
- M80
- g4p0.2
- home y
- ;homeTandem Y
- Endsub
- ;***************************************************************************************
- Sub home_a
- msg "Referenziere Achse A"
- M80
- g4p0.2
- home a
- Endsub
- ;***************************************************************************************
- Sub home_b
- msg "Referenziere Achse B"
- M80
- g4p0.2
- home b
- Endsub
- ;***************************************************************************************
- Sub home_c
- msg "Referenziere Achse C"
- M80
- g4p0.2
- home c
- Endsub
- ;***************************************************************************************
- ;Home all axes
- sub home_all
- gosub home_z
- gosub home_y
- gosub home_x
- gosub home_a
- gosub home_b
- gosub home_c
- G53 G01 X0 Y0 Z0 F1000; Achse X, Y und Z auf 0 Fahren
- msg"Referenzierung fertig"
- ;homeIsEstop on ;diese Zeile Einkommentieren wenn Refschalter = Endschalter
- m30
- endsub
- ;***************************************************************************************
- Sub zero_set_rotation
- ;---------------------------------------------------------------------------------------
- msg "Ersten Punkt antasten und mit STRG + G fortfahren"
- m0
- #5020 = #5071 ;x1
- #5021 = #5072 ;y1
- msg "Zweiten Punkt antasten und mit STRG + G fortfahren"
- m0
- #5022 = #5071 ;x2
- #5023 = #5072 ;y2
- #5024 = ATAN[#5023 - #5021]/[#5022 - #5020]
- if [#5024 > 45]
- #5024 = [#5024 - 90] ;Punkte in Y Achse
- endif
- g68 R#5024
- msg "Koordinatensystem mit G68 R"#5024" gedreht"
- msg " Bitte STRG + G dr�cken zum abschliessen"
- Endsub
- ;***************************************************************************************
- sub change_tool
- ;---------------------------------------------------------------------------------------
- #5015 = 0 ; Merker: Wurde werkzeug erfolgreich gewechselt 1=Ja
- M5
- M9
- ;---------------------------------------------------------------------------------------
- ; 0 = Wechsel ignorieren
- ;---------------------------------------------------------------------------------------
- IF [[#4520] == 0] ; Werkzeugwechslertyp 0= Wechsel ignorieren 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
- #5015 = 1; Wurde werkzeug erfolgreich gewechselt 1=Ja
- ENDIF
- ;---------------------------------------------------------------------------------------
- ; 1 = Nur WPos Anfahren
- ;---------------------------------------------------------------------------------------
- IF [[#4520] == 1] ; Werkzeugwechslertyp 0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
- #3503 = 1 ; Werkzeugnummer bereits eingelegt 1=Ja
- IF [[#5011] == [#5008]] THEN
- Dlgmsg "Werkzeug bereits eingelegt. Trotzdem wechseln?"
- if [#5398 == 1] ;OK
- #3503 = 1
- ELSE
- #3503 = 0
- ENDIF
- ENDIF
- IF [#3503 == 1] THEN
- G53 G0 Z[#4523] ; Sicherheitsh�he
- G53 G0 X[#4521] Y[#4522] ; Werkzeugwechselpos X Y
- Dlgmsg "Bitte Werkzeug einwechseln" "Alte Werkzeugnr.:" 5008" Neue Werkzeugnr.:" 5011
- if [#5398 == 1] ;OK
- IF [#5011 > 99] THEN
- Dlgmsg "Werkzeugnr Ung�ltig: Bitte Werkzeugnummer 1..99 Ausw�hlen"
- if [#5398 == 1] ;OK
- gosub change_tool
- ELSE
- errmsg"Werkzeugwechsel abgebrochen"
- ENDIF
- ELSE
- #5015 = 1; Wurde werkzeug erfolgreich gewechselt 1=Ja
- ENDIF
- ELSE
- errmsg"Werkzeugwechsel abgebrochen"
- ENDIF
- ENDIF
- ENDIF
- ;---------------------------------------------------------------------------------------
- ; 2= WPos anfahren + Vermessen
- ;---------------------------------------------------------------------------------------
- IF [[#4520] == 2] ; Werkzeugwechslertyp 0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
- #3503 = 1 ; Werkzeugnummer bereits eingelegt 1=Ja
- IF [[#5011] == [#5008]] THEN
- Dlgmsg "Werkzeug bereits eingelegt. Trotzdem wechseln?"
- if [#5398 == 1] ;OK
- #3503 = 1
- ELSE
- #3503 = 0
- ENDIF
- ENDIF
- IF [#3503 == 1] THEN
- G53 G0 Z[#4523] ; Sicherheitsh�he
- G53 G0 X[#4521] Y[#4522] ; Werkzeugwechselpos X Y
- Dlgmsg "Bitte Werkzeug einwechseln" "Alte Werkzeugnr.:" 5008" Neue Werkzeugnr.:" 5011
- if [#5398 == 1] ;OK
- IF [#5011 > 99] THEN
- Dlgmsg "Werkzeugnr Ung�ltig: Bitte Werkzeugnummer 1..99 Ausw�hlen"
- if [#5398 == 1] ;OK
- gosub change_tool
- ELSE
- gosub change_tool
- ENDIF
- ELSE
- #5015 = 1; Wurde werkzeug erfolgreich gewechselt 1=Ja
- gosub user_2
- ENDIF
- ELSE
- errmsg"Werkzeugwechsel abgebrochen"
- ENDIF
- ENDIF
- ENDIF
- ;---------------------------------------------------------------------------------------
- IF [[#5015] == 1] THEN
- msg "Werkzeugnr.: " #5008" mit Werkzeugnr.: " #5011 " gewechselt"
- m6t[#5011]
- #5015 = 0; Wurde werkzeug erfolgreich gewechselt 1=Ja
- ENDIF
- ;G01
- endsub
- ;***************************************************************************************
- sub config
- ;---------------------------------------------------------------------------------------
- GoSub wzwp
- GoSub znpp
- GoSub wlmp
- endsub
- ;***************************************************************************************
- sub WZWP
- ;---------------------------------------------------------------------------------------
- ;0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
- Dlgmsg "Bitte Werkzeugwechslertyp eingeben" "TYP" 4520
- if [#5398 == 1] ;OK
- IF [#4520 > 0 ] THEN
- Dlgmsg "Bitte Werkzeugwechselposition eingeben" "Position X-Achse" 4521 "Position Y-Achse" 4522 "Position Z-Achse" 4523
- ENDIF
- ENDIF
- endsub
- ;***************************************************************************************
- sub ZNPP
- ;---------------------------------------------------------------------------------------
- Dlgmsg "Bitte Z-Nullpunktsensordaten eingeben" "H�he Sensor" 4510 "Anfahrvorschub:" 4512 "Tastvorschub:" 4513
- endsub
- ;***************************************************************************************
- sub WLMP
- ;---------------------------------------------------------------------------------------
- Dlgmsg "Bitte Werkzeugl�ngensensordaten eingeben" "Position X-Achse" 4507 "Position Y-Achse" 4508 "Sicherheitsh�he Z" 4506 "SP. ohne Werkzeug" 4509 "Max. Werkzeugl�nge" 4503 "Anfahrvorschub:" 4504 "Tastvorschub:" 4505
- Dlgmsg "Position nach Messung anfahren" "Funktion:" 4519 "Position X-Achse" 4524 "Position Y-Achse" 4525
- ;#4519 Was tun nach Werkzeugvermessung:
- ;0= vordefinierten Punkt anfahren
- ;1= Werkst�cknullpunkt fahren
- ;2= Werkzeugwechselpos anfahren
- ;3= Maschinennullpunkt anfahren
- ;4= Stehen bleiben
- ;#4524 Position X nach L�ngenmessung
- ;#4525 Position Y nach L�ngenmessung
- ;#4526 Position Z nach L�ngenmessung
- endsub
- ;***************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement