automatisch gereedschap inmeten bij m6 toolchange

Nederlandse CNC controller op basis van de usb poort of Ethernet.

Moderator: Moderators

niek_saxofoon
Berichten: 99
Lid geworden op: 09 mar 2010 20:07
Locatie: Den Haag/Utrecht
Contacteer:

automatisch gereedschap inmeten bij m6 toolchange

Bericht door niek_saxofoon »

Hallo,

ik ben voor het eerst begonnen aan het maken van een subroutine. Ik heb sinds kort een toolsetter op mijn machine gemonteerd en zou nu heel graag een macro maken waarbij bij elke toolchange in een freesprogramma de lengte van het nieuwe gereedschap automatisch gemeten en gecorrigeerd wordt. Om dit voor elkaar te krijgen probeer ik de bestaande sub tool_change samen te voegen met met de sub m_tool. Het idee is als volgt:

1. Start machine, home machine
2. Span gereedschap op
3. Meet gereedschap in met sub m-tool
4. zero x, y en z op werkstuk 0
5. Start programma
Bij elke toolchange in het programma wil ik dat de sub m-tool gestart wordt om zo het nieuwe gereedschap in te meten waarna de lengte van de frees gecorrigeerd wordt. Hierdoor zou je dan alleen de eerste frees moeten nullen op je werkstuk. Ik wissel de frezen met de hand (lengte offset niet herhaalbaar).

Ik heb de sub m_tool aangepast aan het einde zodat de ingemeten frees ook de actieve frees wordt in het programma en dat toollength offset aanstaat:

Code: Selecteer alles

sub m_tool
    if [[#5380==0] and [#5397==0]] ;do this only when not simulating and not rendering
        ;Check if toolsetter is calibrated
        if [[#4996 == 0] and [#4997 == 0] and [#4998 == 0] and [#4999 == 0]]
            errmsg "calibrate first, MDI: gosub calibrate_tool_setter"
        else
            g0 g53 z#4996 ; move to safe z
            dlgmsg "enter tool dimensions" "tool number" 5016 "approx tool length" 5017 "tool diameter" 5018
            ;Check user pressed OK
            if [#5398 == 1] 
                if [[#5016 < 1] OR [#5016 > 99]]
                    ErrMsg "Tool must be in range of 0 .. 99"
                endif
        
                ;move to toolsetter coordinates
                g00 g53 x#4997 y#4998 
                ;move to 10mm above chuck height + approx tool length + 10
                g00 g53 z[#4999+6+#5017]
                ;measure tool length and pull 5mm back up
                g38.2 g91 z-20 f60
                g90
                ;back to safe height
                g0 g53 z#4996
                ;Store tool length, diameter in tool table
                ;but only if actually measured, 
                ;so leave tool table as is while rendering 
                if [#5397 == 0]
                    #[5400 + #5016] = [#5053-#4999]
                    #[5500 + #5016] = #5018
                    #[5600 + #5016] = 0 ;Tool X offset is 0
                    msg "tool length measured="#[5400 + #5016]" stored at tool "#5016
					
					
					#5011 = #5016
					m6 T[#5011]	;new tool during tool change
                endif
            endif
        endif
    endif
endsub
Dit werkt allemaal prima, freesjes worden keurig ingemeten.

Mijn sub change_tool ziet er nu zo uit:

Code: Selecteer alles

sub change_tool

    ;Use #5015 to indicate succesfull toolchange
    #5015 = 0 ; Tool change not performed

    ; Als new tool during toolchange niet hetzelfde is als actual tool
    If [ [#5011] <> [#5008] ]
			;Meet nieuwe frees in
			
		if [[#5380==0] and [#5397==0]] ;do this only when not simulating and not rendering
			;Check if toolsetter is calibrated
			if [[#4996 == 0] and [#4997 == 0] and [#4998 == 0] and [#4999 == 0]]
				errmsg "calibrate first, MDI: gosub calibrate_tool_setter"
				;end program
				m30
			else
				g0 g53 z#4996 ; move to safe z
				dlgmsg "enter tool dimensions" "tool number" 5016 "approx tool length" 5017 "tool diameter" 5018
				;Check user pressed OK
				if [#5398 == 1]
					
								
					;move to toolsetter coordinates
					g00 g53 x#4997 y#4998 
					;move to 10mm above chuck height + approx tool length + 10
					g00 g53 z[#4999+10+#5017]
					;measure tool length and pull 5mm back up
					g38.2 g91 z-20 f30
					;absolute distance mode
					g90
					;back to safe height ;motion in machine coordinate system
					g0 g53 z#4996
					;Store tool length, diameter in tool table
					;but only if actually measured, 
					;so leave tool table as is while rendering 
					if [#5397 == 0]
						#[5400 + #5016] = [#5053-#4999]
						#[5500 + #5016] = #5018
						#[5600 + #5016] = 0 ;Tool X offset is 0
						msg "tool length measured="#[5400 + #5016]" stored at tool "#5016
					#5015 = 1 ;indicate tool change performed
					endif
				endif
			endif
		endif
    else
        msg "Tool already in spindle"
        #5015 = 0 ;indicate tool change not performed

    endif    
                
    If [[#5015] == 1]   ;if tool change performed
		;msg Tool "actual tool" replaced by tool "new tool during tool change"
        msg "Tool "#5008" Replaced by tool "#5011""
        
		m6 T[#5011]	;new tool during tool change

		
	else msg "tool "#5011" allready in spindle"
		
    endif
		
    ;switch tool lengthe offset on
	G43 
        
EndSub      
Als iemand hier nog tips voor heeft hoor ik het graag!

Ik heb automatic tool change in de setup aangevinkt. Ik begrijp uit de handleiding dat bij een t#m6 (is t#m6 hetzelfde als m6t#?) in het programma de sub change_tool automatisch oproept. Wat ik nu alleen niet snap is dat als ik een t#m6 in mijn programma tegenkom de sub change_tool niet geladen wordt. Zodra ik t#m6 tegenkom springt eding er overheen en vervolgt het programma zonder dat ik een frees heb kunnen wisselen of een dialoog in kan vullen. Wat zie ik hier over het hoofd? Alvast bedankt.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13496
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Arie Kabaalstra »

Vreemd.. normaliter zou bij een Toolchange de Sub Change tool altijd aangeroepen moeten worden.

in het verleden (ik heb momenteel geen toolsetter.. hoog tijd dat ik er weer eens eentje ga bouwen), werkte het bij mij precies hetzelfde.
Ik heb toen de hele meetmacro moeten schrijven, en dat is grotendeels de macro zoals ie nu in EdingCNC zit.

Als ik Macro's aan het schrijven ben, dan gooi ik er op "kritische punten" nog wel eens een MSG in, dan kan ik zien waar het programma allemaal komt..

Overigens, had ik in mijn Macro bestand Sub M_tool nog altijd als separate sub staan, die riep ik gewoon aan vanuit Sub Change tool.
Ik doe zoveel mogelijk met aparte subs, dat geeft me later altijd de mogelijkheid om die subs vanuit een andere macro te benaderen, zodat ik geen dubbele code hoef te schrijven.
niek_saxofoon
Berichten: 99
Lid geworden op: 09 mar 2010 20:07
Locatie: Den Haag/Utrecht
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door niek_saxofoon »

Arie Kabaalstra schreef: 14 nov 2020 00:09 Vreemd.. normaliter zou bij een Toolchange de Sub Change tool altijd aangeroepen moeten worden.
.
Hoe zit dat normaal dan, want als je Eding CNC vers installeerd met de default macro.cnc staat daar ook een hele toolchange routine onder sub change tool, maar die wordt ook niet aangesproken. Wat bepaal nu of bij een m6 daar wel of niet naar gekeken wordt?
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 12045
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door hugo stoutjesdijk »

niek_saxofoon schreef: 13 nov 2020 23:51 Ik heb automatic tool change in de setup aangevinkt. Ik begrijp uit de handleiding dat bij een t#m6 (is t#m6 hetzelfde als m6t#?) in het programma de sub change_tool automatisch oproept. Wat ik nu alleen niet snap is dat als ik een t#m6 in mijn programma tegenkom de sub change_tool niet geladen wordt. Zodra ik t#m6 tegenkom springt eding er overheen en vervolgt het programma zonder dat ik een frees heb kunnen wisselen of een dialoog in kan vullen. Wat zie ik hier over het hoofd? Alvast bedankt.
Heb je dan een automatische toolchanger?
Of wissel je het gereedschap met de hand en wil je daarna meten?
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
niek_saxofoon
Berichten: 99
Lid geworden op: 09 mar 2010 20:07
Locatie: Den Haag/Utrecht
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door niek_saxofoon »

hugo stoutjesdijk schreef: 14 nov 2020 09:49
niek_saxofoon schreef: 13 nov 2020 23:51 Ik heb automatic tool change in de setup aangevinkt. Ik begrijp uit de handleiding dat bij een t#m6 (is t#m6 hetzelfde als m6t#?) in het programma de sub change_tool automatisch oproept. Wat ik nu alleen niet snap is dat als ik een t#m6 in mijn programma tegenkom de sub change_tool niet geladen wordt. Zodra ik t#m6 tegenkom springt eding er overheen en vervolgt het programma zonder dat ik een frees heb kunnen wisselen of een dialoog in kan vullen. Wat zie ik hier over het hoofd? Alvast bedankt.
Heb je dan een automatische toolchanger?
Of wissel je het gereedschap met de hand en wil je daarna meten?
Ik wissel met de hand en wil daarna inmeten.
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 12045
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door hugo stoutjesdijk »

Ik vraag het omdat je zegt automatic tool change aangevinkt te hebben, ik heb geen verstand van Eding, maar het lijkt me nogal tegenstrijdig.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Jasper
Berichten: 691
Lid geworden op: 05 jul 2019 09:39
Locatie: Gorinchem X5 Y2
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Jasper »

Ik zal de frees PC even opstarten, Volgens mij heb ik precies wat jij bedoelt.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13496
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Arie Kabaalstra »

hugo stoutjesdijk schreef: 14 nov 2020 10:26 Ik vraag het omdat je zegt automatic tool change aangevinkt te hebben, ik heb geen verstand van Eding, maar het lijkt me nogal tegenstrijdig.
Automatic Toolchange in EdingCNC wil zeggen dat de machine NIET stopt bij een M6, dit wordt ook op machines zonder ATC gebruikt, als je programma's maakt met slechts 1 gereedschap..

Die zet je erin, meet de boel in.. en drukt op start.. en dan gaat ie gewoon meteen aan de slag..

Als AutoToolchange uitstaat, dan stopt de machine bij een M6, zodat je het gereedschap kunt wisselen.. da's eigenlijk vooral bedoeld voor machines met verwisselbare gereedschaphouders.
Jasper
Berichten: 691
Lid geworden op: 05 jul 2019 09:39
Locatie: Gorinchem X5 Y2
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Jasper »

Ik gebruik de Sorotec Macro en heb User knop 5 (F6) die haalt de spindel naar boven en links voor, Tik het nieuwe tool nummer in en wissel dan de tool, Daarna geef je de geschatte lengte op en gaat hij naar de toolsensor.

Ik heb onder User Function 5 het volgende wellicht moet je de #**** aanpassen naar je eigen waardes want deze bevatten de voor mij benodigde posities die zijn opgezet tijdens de installatie van de Sorotec macro.

Code: Selecteer alles

Sub user_5
; ---------------------------------------------------------------------------------------
Dlgmsg "Which tool should be changed" "New tool number:" 5011
    IF [#5398 == 1] ;OK
        gosub change_tool
    ENDIF
endsub
; ***************************************************************************************
En gosub change_tool is dan dit

Code: Selecteer alles

sub change_tool
; ---------------------------------------------------------------------------------------
#5015 = 0                  ; Check: Was the tool changed successfully 1 = Yes
M5
M9
; ---------------------------------------------------------------------------------------
; 0 = ignore change
; ---------------------------------------------------------------------------------------
IF [[#4520] == 0]          ; Tool changer type 0 = ignore change 1 = start TcPos only 2 = start TcPos + measure
#5015 = 1                  ; Has the tool been changed successfully 1 = Yes
ENDIF

; ---------------------------------------------------------------------------------------
; 1 = Start TcPos only
; ---------------------------------------------------------------------------------------
IF [[#4520] == 1]           ;Tool changer type 0 = Make garnix 1 = Start TcPos only 2 = Start TcPos + measure
    #3503 = 1               ;Tool number already inserted 1 = Yes
    IF [[#5011] == [#5008]] THEN
        Dlgmsg "Tool already inserted. Change anyway?"
        if [#5398 == 1]     ;OK
            #3503 = 1
        ELSE
            #3503 = 0
        ENDIF
    ENDIF

    IF [#3503 == 1] THEN
        G53 G0 Z [#4523]              ;security level
        G53 G0 X [#4521] Y [#4522]    ;Tool change pos X Y
        Dlgmsg "Please change tool" "Old tool number:" 5008 "New tool number:" 5011
        if [#5398 == 1]               ;OK
            IF [#5011> 99] THEN
                Dlgmsg "Tool number invalid: Please select tool number 1..99"
                if [#5398 == 1]       ;OK
                    gosub change_tool
                ELSE
                    errmsg "Tool change canceled"
                ENDIF

            ELSE
                #5015 = 1               ;Has the tool been changed successfully 1 = Yes
            ENDIF
    ELSE
        errmsg "Tool change canceled"
    ENDIF

    ENDIF
ENDIF

; ---------------------------------------------------------------------------------------
; 2 = Approach TcPos + measure
; ---------------------------------------------------------------------------------------

IF [[#4520] == 2]                   ; Tool changer type 0 = Make garnix 1 = Start TcPos only 2 = Start TcPos + measure
    #3503 = 1                       ; Tool number already inserted 1 = Yes
    IF [[#5011] == [#5008]] THEN
        Dlgmsg "Tool already inserted. Change anyway?"
        if [#5398 == 1]             ; OK
            #3503 = 1
        ELSE
            #3503 = 0
        ENDIF
    ENDIF

        IF [#3503 == 1] THEN
            IF [[#5008]> 0]
                #3504 = 1           ; Flag whether break control was called by automatic 1 = automatic
                ; GOSUB user_3      ; Call up the break control
                #3504 = 0           ; Flag whether break control was called by automatic 1 = automatic
        ENDIF
        G53 G0 Z [#4523]            ; security level
        G53 G0 X [#4521] Y [#4522]  ; Tool change pos X Y
        Dlgmsg "Please change tool" "Old tool number:" 5008 "New tool number:" 5011
        if [#5398 == 1]; OK
            IF [#5011> 99] THEN
                Dlgmsg "Tool number invalid: Please select tool number 1..99"
                if [#5398 == 1]; OK
                    gosub change_tool
                ELSE
                    gosub change_tool
                ENDIF

            ELSE
                #5015 = 1           ; Has the tool been changed successfully 1 = Yes
                gosub user_2
            ENDIF
        ELSE
            errmsg "Tool change canceled"
        ENDIF

    ENDIF
ENDIF
; ---------------------------------------------------------------------------------------

IF [[#5015] == 1] THEN
    msg "Tool no .:" #5008 "with tool no .:" #5011 "changed"
	M6T [#5011]
    #5015 = 0; Has the tool been changed successfully 1 = Yes
ENDIF
; G01
endsub
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13496
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Arie Kabaalstra »

die haalt de spindel naar boven en links voor
Dat zou ik knap vinden.. op mijn machine kan de spindel namelijk niet verplaatsen in X of Y richting :lol:

Da's meteen het probleem met Macro's.. iedereen kan ze schrijven.. sommige macro's zijn machinespecifiek, en daar moet je (tenzij je echt een wizz-kid bent) niet in gaan zitten klooien..

Ik heb een Macro gezien van BZT waar subroutines inzitten om de hele machine in te stellen.. alle mogelijke macro's zitten erin.. maar de "Setup macro" bepaalt welke er gebruikt mogen worden.
Mooi systeem.. maar dusdanig complex dat je daar zelf niet aan wilt gaan zitten klooien..

't is voor het schrijven van Macro's zaak om eerst eens op een rijtje te zetten wat er nodig is, en alleen DAT in de Macro te zetten.
door de jaren heen heb ik wat ideetjes op gedaan, en mijn FreesbankMacro gaat over een tijdje op de schop.. ik wil wat dingen anders doen, Mijn Toolchange Macro ga ik helemaal opnieuw schrijven, omdat ik geen ATC heb.. die code kan er dus uit.. heb ik niet nodig.. en mocht ik in de toekomst een ATC op de Beagle knopen.. dan schrijf ik daar een aparte Macro voor, los van de meetmacro, zodat ik em separaat aan kan roepen.
Jasper
Berichten: 691
Lid geworden op: 05 jul 2019 09:39
Locatie: Gorinchem X5 Y2
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Jasper »

Als je trouwens dit wilt aanroepen in je gcode bestand dan kan je je post processor aanpassen van "M6" naar "gosub Change_Tool" of hoe je die macro dan ook gaat noemen.

Dat soort dingen werkt ook gewoon in een gcode bestand.
Heb gisteren nog mijn bed vlakken bestand aangepast met een pop up en foto of de tool sensor wel weg is na starten.

Dus ik open uitvlakken.nc en eerst meet hij de tool, dan kom er een pop up met "Is je tool sensor weg?" met foto dan kan ik OK of Cancel kiezen en na OK gaat hij verder en bij Cancel doet hij M30.
Jasper
Berichten: 691
Lid geworden op: 05 jul 2019 09:39
Locatie: Gorinchem X5 Y2
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door Jasper »

Speciaal voor Arie,

"Dan gaat hij naar de door mij ingestelde positie"
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 12045
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door hugo stoutjesdijk »

Jasper schreef: 14 nov 2020 11:43 Dus ik open uitvlakken.nc en eerst meet hij de tool, dan kom er een pop up met "Is je tool sensor weg?" met foto dan kan ik OK of Cancel kiezen en na OK gaat hij verder en bij Cancel doet hij M30.
Ervaring ? :lol: of vooruitziende blik
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
niek_saxofoon
Berichten: 99
Lid geworden op: 09 mar 2010 20:07
Locatie: Den Haag/Utrecht
Contacteer:

Re: automatisch gereedschap inmeten bij m6 toolchange

Bericht door niek_saxofoon »

Jasper schreef: 14 nov 2020 11:43 Als je trouwens dit wilt aanroepen in je gcode bestand dan kan je je post processor aanpassen van "M6" naar "gosub Change_Tool" of hoe je die macro dan ook gaat noemen.

Dat soort dingen werkt ook gewoon in een gcode bestand.
Heb gisteren nog mijn bed vlakken bestand aangepast met een pop up en foto of de tool sensor wel weg is na starten.

Dus ik open uitvlakken.nc en eerst meet hij de tool, dan kom er een pop up met "Is je tool sensor weg?" met foto dan kan ik OK of Cancel kiezen en na OK gaat hij verder en bij Cancel doet hij M30.
Ja, dit was het. In HSM voor elke tool de manual toolchange uitvinken, dan opent ie wel de sub change_tool
Plaats reactie