macro wymiany narzędzia
: 12 maja 2010, 19:09
Witam bardzo proszę o pomoc z tym oto macrem. Wszystko ładnie chula aż do momentu kiedy jest wpisywana korekta długości narzędzia maszyna poprawnie liczy korektę długości
w jednym tylko przypadku gdy brana jest pod uwagę tylko wartość z1 jeśli podam w aby robił korektę od wyliczonej wartości z2 wychodzą jaja maszyna po pomiarze jedzie do pozycji zerowej osi z i jeżeli różnica w długości narzędzia wynosi 15mm i kliknę na przycisk go to zero to maszyna zamiast jechać na dół jedzie do góry
macro wpisuje na odwrót wartości przynajmniej tak mi się wydaje
bardzo proszę o pomoc bo mi już ręce opadają.
zero maszyny mam u góry
M6Start.m1s
Kod:
tool = GetSelectedTool()
SetCurrentTool( tool ) ; oryginalna częsc z macha
Code "g0"
Code "G53 z0" ; wybór ruchu i ruch do Z0 maszyny ( mozna tez przez G28 G91 Z0 )
While IsMoving()
Wend
Code "G28" ; ruch do pozycji zerowych wszystkich osi dla latwiejszej wymiany narzędzi u mnie
While IsMoving()
Wend
M6End.m1s
Kod:
dim Z,z1,z2,z3
dim tool ; pare zmiennych
z = 70.72
z3 = GetDRO(2) ; pobranie pozycji osi Z
z3 = z3 - 70
Code "g0"
Code "g53 x1.56 y-31.84" ; ruch do pozycji XY czujnika dlugosci narzędzi
While IsMoving()
Wend ; pętla, która czeka az maszyna dojedzie
Code "G31 Z" & z3 & "f600" ; funkcja która bedzie jechała osią Z w dół aż do napotkania sygnału "DIGITIZE" ale nie wiecej niz do wartości Z3 wyliczonej wyzej
While IsMoving()
Wend
Z1 = GetVar( 2002 ) ' pobranie osi Z maszyny , ta metoda jest dokladniejsza poniewaz podczas zderzenia jest zapamietywana wartosc i nie zalezy od predkosci hamowania silnika po zatrzymaniu
Z2 = Z+z1
message (z2) ; wyswietlenie wartosci na dolnym pasku wiadomosci
Code "G0"
Code "G53 z0"
While IsMoving() ; podjechanie do góry Z maszyny Z0
Wend
call SetOEMDRO(42,z2) jesli tutaj zamiast z2 wpisze z1 to jest git ale wtedy jak ustawie zero materiału to masztna nie bierze tego pod uwagę
Tool = GetDRO( 24 ) ; wpisanie wyliczonej wartosci do rejestru dlugosci narzedzia
Code "G43 H"&Tool ; i wywolanie korekty dla tego narzedzia
Code "G53 z-1"
While IsMoving()
Wend
Code "G53 z0"
While IsMoving()
Wend
w jednym tylko przypadku gdy brana jest pod uwagę tylko wartość z1 jeśli podam w aby robił korektę od wyliczonej wartości z2 wychodzą jaja maszyna po pomiarze jedzie do pozycji zerowej osi z i jeżeli różnica w długości narzędzia wynosi 15mm i kliknę na przycisk go to zero to maszyna zamiast jechać na dół jedzie do góry
macro wpisuje na odwrót wartości przynajmniej tak mi się wydaje
bardzo proszę o pomoc bo mi już ręce opadają.
zero maszyny mam u góry
M6Start.m1s
Kod:
tool = GetSelectedTool()
SetCurrentTool( tool ) ; oryginalna częsc z macha
Code "g0"
Code "G53 z0" ; wybór ruchu i ruch do Z0 maszyny ( mozna tez przez G28 G91 Z0 )
While IsMoving()
Wend
Code "G28" ; ruch do pozycji zerowych wszystkich osi dla latwiejszej wymiany narzędzi u mnie
While IsMoving()
Wend
M6End.m1s
Kod:
dim Z,z1,z2,z3
dim tool ; pare zmiennych
z = 70.72
z3 = GetDRO(2) ; pobranie pozycji osi Z
z3 = z3 - 70
Code "g0"
Code "g53 x1.56 y-31.84" ; ruch do pozycji XY czujnika dlugosci narzędzi
While IsMoving()
Wend ; pętla, która czeka az maszyna dojedzie
Code "G31 Z" & z3 & "f600" ; funkcja która bedzie jechała osią Z w dół aż do napotkania sygnału "DIGITIZE" ale nie wiecej niz do wartości Z3 wyliczonej wyzej
While IsMoving()
Wend
Z1 = GetVar( 2002 ) ' pobranie osi Z maszyny , ta metoda jest dokladniejsza poniewaz podczas zderzenia jest zapamietywana wartosc i nie zalezy od predkosci hamowania silnika po zatrzymaniu
Z2 = Z+z1
message (z2) ; wyswietlenie wartosci na dolnym pasku wiadomosci
Code "G0"
Code "G53 z0"
While IsMoving() ; podjechanie do góry Z maszyny Z0
Wend
call SetOEMDRO(42,z2) jesli tutaj zamiast z2 wpisze z1 to jest git ale wtedy jak ustawie zero materiału to masztna nie bierze tego pod uwagę
Tool = GetDRO( 24 ) ; wpisanie wyliczonej wartosci do rejestru dlugosci narzedzia
Code "G43 H"&Tool ; i wywolanie korekty dla tego narzedzia
Code "G53 z-1"
While IsMoving()
Wend
Code "G53 z0"
While IsMoving()
Wend