macro wymiany narzędzia

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
kamil1986
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 316
Rejestracja: 10 cze 2007, 15:09
Lokalizacja: Ostrów

macro wymiany narzędzia

#1

Post napisał: kamil1986 » 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
Ostatnio zmieniony 14 maja 2010, 20:36 przez kamil1986, łącznie zmieniany 1 raz.



Tagi:

Awatar użytkownika

k-m-r1
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1418
Rejestracja: 23 cze 2008, 10:38
Lokalizacja: OOL lub DW
Kontakt:

#2

Post napisał: k-m-r1 » 13 maja 2010, 14:35

a kolega analizował krok po kroku?

bo na moje oko raz pracujesz w jednych współrzędnych raz w innych

zerknij na to GetOEMDRO (85) 'get ZPos Machine i z3 = GetDRO(2) ; pobranie pozycji osi Z
MACH3 cncTworzenie Makr do palników magazynków THC OHC inneEKRANY dla firm producentów maszyn Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 703 196 Tomek Komor [email protected]


Autor tematu
kamil1986
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 316
Rejestracja: 10 cze 2007, 15:09
Lokalizacja: Ostrów

#3

Post napisał: kamil1986 » 13 maja 2010, 16:01

Czy mógł by mi kolega to trochę bardziej łopatologicznie wytłumaczyć bo nie bardzo wiem o co chodzi macro znalazłem na forum i siedzę nad nim już kilka dni i kombinuje
z3 = GetDRO(2)to pobranie aktualnej pozycji osi proszę mnie poprawić jesli się mylę z
a GetOEMDRO (85) co oznacza? Może mnie kolega naprowadzić jak poprawić to macro aby działało poprawnie
Ostatnio zmieniony 14 maja 2010, 20:37 przez kamil1986, łącznie zmieniany 1 raz.


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4440
Rejestracja: 27 sie 2004, 21:59
Lokalizacja: Polska

#4

Post napisał: 251mz » 14 maja 2010, 07:15

Kolego możesz zacząć używać poprawnych nazw? Nie marco ani marko tylko MACRO...

Awatar użytkownika

k-m-r1
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1418
Rejestracja: 23 cze 2008, 10:38
Lokalizacja: OOL lub DW
Kontakt:

#5

Post napisał: k-m-r1 » 15 maja 2010, 07:05

251mz, to tylko nazwa nikt nie jest tu fahowcem piszmy jasno by każdy wiedział o co chodzi

M6End.m1s
Kod:
dim Z,z1,z2,z3
dim tool ; pare zmiennych
z = 70.72 do czego ta czesc

z3 = GetDRO(2) ; pobranie pozycji osi Z
z3 = z3 - 70 do czego te wyliczenia

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 to działanie co ma na celu

message (z2) ; wyswietlenie wartosci na dolnym pasku wiadomosci pominoł bym to

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" tego nie rozumiem
While IsMoving()
Wend
Code "G53 z0"
While IsMoving()
Wend
MACH3 cncTworzenie Makr do palników magazynków THC OHC inneEKRANY dla firm producentów maszyn Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 703 196 Tomek Komor [email protected]


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4440
Rejestracja: 27 sie 2004, 21:59
Lokalizacja: Polska

#6

Post napisał: 251mz » 18 maja 2010, 12:35

Mam pytanko z innej beczki...
Czy jest możliwość napisania własnego macra włączania i wyłączania chłodziwa?
Posiadam troche zagmantwane sterowanie i chciałbym otrzymywać do programu poprzez wejście potwierdzenie włączenia/wyłaczenia chłodziwa...

Awatar użytkownika

k-m-r1
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1418
Rejestracja: 23 cze 2008, 10:38
Lokalizacja: OOL lub DW
Kontakt:

#7

Post napisał: k-m-r1 » 18 maja 2010, 13:05

251mz, tak da sie sterowac ale po co?
moje pytanie co Tobie da sygnał że chłodziwo jest albo go nie ma
ja wiem że lepiej uproscic sterowanie chłodziwa niż kombinowac z programem

może dac czujnik gdziec niedaleko dyszy i zrobic zatrzymanie bądz dodatkową lampke informującom o braku chłodziwa w ten sposób dajesz sygnał np pauza do programu i nieruszy a lampka miga i wiesz że cos jest z chłodziwen
MACH3 cncTworzenie Makr do palników magazynków THC OHC inneEKRANY dla firm producentów maszyn Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 703 196 Tomek Komor [email protected]


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4440
Rejestracja: 27 sie 2004, 21:59
Lokalizacja: Polska

#8

Post napisał: 251mz » 18 maja 2010, 14:44

chodzi o to ,że mam jedno wolne wejście....
a wyjść nie mam , bo 5 bitami steruje magazynem 30 narzędziowym...
2 do 5 to 32 pozycje - zerowa odpada to zostaje 31 pozycji a ,że magazyn mam na 30 oprawek to 31 pozycje chce wykorzystać do załączania i wyłączania chodziwa....

w każdym bądź razie chodzi o to ze jak podam na wyjscia bitowo liczbę 31 to zeby program wiedział czy chłodziwo się załączyło czy wyłączyło...

Awatar użytkownika

k-m-r1
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1418
Rejestracja: 23 cze 2008, 10:38
Lokalizacja: OOL lub DW
Kontakt:

#9

Post napisał: k-m-r1 » 18 maja 2010, 22:56

a masz może wyjscie midi?

ale czy to nie utrudni g-code?
no i jak chcesz to zrobic bo mach odczyta 31 pozycje jako inne narzedzie z magazynku

najprosciej dokupic port lpt za 30 zł masz sledzia z kontrolerem

aha niekoniecznie pozycja bitowa 00000 odpada ja robie wyżłobienia i gdy następuje zmiana z 111111 na 00000 to w tym momęcie jest kolejne narzedzie robisz tajakby na tarczy rowki
MACH3 cncTworzenie Makr do palników magazynków THC OHC inneEKRANY dla firm producentów maszyn Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 703 196 Tomek Komor [email protected]


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4440
Rejestracja: 27 sie 2004, 21:59
Lokalizacja: Polska

#10

Post napisał: 251mz » 19 maja 2010, 09:44

Już mam obsadzone 2x LPT:))) potrzebowałem na liniały pomiarowe;)
Macro narzedzia
Chcę zrobić tak jeśli wystawię na wyjście binarnie od 2-31 to zacznie zmieniać się narzedzie , jeśli zakończy się zmiana narzedzia to na wejście zostanie podany sygnał i na wyjściu znów bedzie 00000
Macro chłodziwa
Jeśli na te same wyjścia co narzędzia wystawię 1 to załączy lub wyłaczy się chłodziwo a o załączonym lub wyłączonym chłodziwie bedzie informowało wejście w stanie wysokim lub niskim.....

Dlatego tyle wykorzystane gdyż maszyna to frezarka 3osiowa z możliwością dołaczenia 4 osi.... na 3ch osiach liniały pomiarowe (2gi lpt)

Czy da radę posterować tak chłodziwem jak myślę??
Oczywiscie te 5 wyjść binarnych oraz wejście potwierddzenia zmiany narzedzia i potwierdzenia załączenia chłodziwa dołączone i sterowane z uC

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”