Strona 1 z 1
Frezarka cnc domowej roboty mach3
: 22 kwie 2019, 18:09
autor: kasinski1
Witam wszystkich potrzebuje jakiś skrypt na wymiane narzędzia.Chodzi o to żeby maszyna podjechała sobie pod probe i zmierzyła różnice wysokosci.Sciągnąłem takie macro z embi ale jest w nim jakiś błąd bo pod koniec nie przelicza róznicy.pozdr
Re: Frezarka cnc domowej roboty mach3
: 25 kwie 2019, 22:19
autor: kasinski1
Panowie/Panie pomóżcie mam takie macro pomiaru narzędzia ;problem w tym że coś nie chodzi u mnie jak trzeba.myli kierunki np.code "g90"
Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend odbiera tak że jedzie do góry a przecież z-20 a znowu za następnym wywołanie macra i oba pomiary dwóch narzędzi zrobi dobrze ale zamiast opuścić sie na zpoz to wyjeżdża do góry poza limit. Ciekawe bo mam wrażenie jakby jeździła jak chce. Oczywiscie współrzedne w machu pokrywają sie z tym co robi maszyna (ewidentnie cos jest nie tak programowego) ślicznie dziekuje wszystkim którzy pomogą.(wszystkie inne macra działaja (probe zero,center,corner itp)
'witam
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
' Deklaracja zmiennych
Dim X,Y,Z,px,py,pz,wx,wy,wz,d,zpoz
Dim tool,Hits,zs,zn,Hitn
Dim w
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Poniższe zmienne wymagają deklaracji przez użytkownika
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
wx= 10 ' Tutaj podajemy położenie punktu wymiany narzędzia w odniesieniu do krańcówek bazujących ( współrzędne maszynowe )
wy= 10
wz= 10 'wz - określa na jakiej wysokości ma ustawić się wrzeciono przy wymianie
'!!!!!!!!!!!!!!!!!!
px = 11 ' Tutajokreślamy punkt pomiaru narzędzia, również w odniesieniu do krańcówek bazujących
py = 11 ' (współrzędne maszynowe)
'!!!!!!!!!!!!
pz = 11 ' wysokość przejazdowa ( wysokość na jakiej odbywają się przejazdy na punkt pomiaru oraz wymiany
'pownna być jak najwyższa, tak aby narzędzie nie zachaczyło o obrabiany element, czy mocowanie
'""""""""""""""""""""""
'Koniec definicji
'""""""""""""""""""""""""""""
'"""""""""""""""""""""""""""""""""""""""
'Właściwy program
'"""""""""""""""""""""""""""""""
'zapamiętanie współrzędnych punktu wyjściowego
X = GetoemDRO( 83 )
Y = GetoemDRO( 84 )
zm=getoemdro(85)
Z = GetoemDRO( 180)
'message( (px)&(" , ")& (py)&(" , ")& (pz))
MsgBox ("Teraz nastąpi przejazd do spółrzędnych czujnika pomiaru narzędzia. Po czym jeżeli wrzeciono jest uruchamiane ręcznie, wyłącz je, a następnie kliknij ok") ' wyświetlenie komunikatu
Code "g53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend
w=Getoemled(11) ' zapamiętanie, czy wrzeciono było uruchomione
Code"m5" ' wyłączenie wrzeciona
Code " g53 G00 X" & px & "Y" & py 'szybki przejazd na pozycje czujnika
While IsMoving()
Wend
'!!!!!!!!!!!!!!!!!!!
Message ("Teraz nastąpi pierwszy pomiar") ' komunkat o rozpoczęciu pomiaru
' pomiar podzielony jest na dwa etapy, w opuszczenie może być dość szybkie; po wykryciu czujnika, następuje podniesienie o 2mm
' a nstępnie ponowny pomiar - tutaj prędkość powinna być miejsza, pozowli to na osiągnięcie większej precyzji pomiaru
Code "G31 Z-20 F50" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość pierwszego pomiaru - Wartość przy parametrze F, 50 oznacza 50mm/min
Wend
Code "G91 Z2 F50" 'podniesienie osi Z o 2 mm
While IsMoving() ' Tutaj możemy zmienić prędkość oraz drogę o ile ma się podnieść - podniesienie powinno spowodować wyłączenie czujnika
Wend
code "g90"
Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend
Hits = GetVar(2002) 'przechwycenie wysokości na jakiej zadziałał czujnik przy "starym" narzędziu
Code "G53 G00 Z" & pz 'podniesienie osi Z na wysokość przelotową
While IsMoving()
Wend
MsgBox ("Teraz nastąpi przejazd do współrzędnych wymiany narzędzia") ' komunikat o przelocie na punkt wymiany
Code "g53 G00 X" & wx & "Y" & wy 'przejazd na pozycje wymiany
While IsMoving()
Wend
Code "g53 G00 Z" & wz 'ustawienie osi Z na wysokości wymiany
While IsMoving()
Wend
MsgBox ("Wymień narzędzie i kliknij OK, Po czym nastąpi przejazd do spółrzędnych czujnika pomiaru narzędzia") ' komunikat
Code "g53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend
Code " g53 G00 X" & px & "Y" & py 'przejazd na pozycje czujnika
While IsMoving()
Wend
'!!!!!!!!!!!!!!!!!!!!!!!!!!m
MsgBox ("Teraz nastąpi drugi pomiar")'komunikato pomiarze drugiego narzędzia
Code "G31 Z-20 F50" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość pierwszego pomiaru - Wartość przy parametrze F, 50 oznacza 50mm/min
Wend
Code "G91 Z2 F50" 'podniesienie osi Z o 2 mm
While IsMoving() ' Tutaj możemy zmienić prędkość oraz drogę o ile ma się podnieść - podniesienie powinno spowodować wyłączenie czujnika
Wend
code "g90"
Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend
Hitn = GetVar(2002) 'przechwycenie wysokości na jakiej zadziałał czujnik przy "nowym" narzędziu
Code "G53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend
d= Hits- Hitn ' obliczanie różnicy długości
d =Abs(d)
'message(Hits)
'message(Hitn)
'message(d)
zpoz=0
If Hits < Hitn Then zpoz=zm+d ' na podstawie wysokości zadziałań czujnika przy pomiarach obliczana jest wartość współczynnika korekcji wysokości osi Z
If Hits > Hitn Then zpoz=zm-d
Code "G53 G00 X" & X & "Y" & Y 'przejazd na współrzędne punktu wyjściowego ( ten w którym zostało wywołane makro )
While IsMoving()
Wend
MsgBox ("włącz wrzeciono i kliknij OK") ' komunikat o włączeniu wrzeciona - w przypadku gdy włączamy je ręcznie
Code "G0 g53 Z" & zpoz ' opuszczenie narzędzia - jego koniec powinien znaleźć się tam gdzi przed wywyołaniem makra
While IsMoving()
Wend
Call setdro(2,z) ' ustawienie wspłrzędnych - ofset
If w = true Then Code"m3" ' automatyczne włączenie wrzeciona jeżeli było uruchomine przed pomiarem.
End