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: 1417
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
[b]MACH3 cnc[/b]Tworzenie Makr do palników magazynków THC OHC inne[b]EKRANY dla firm producentów maszyn[/b] Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 708 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: 4478
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: 1417
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
[b]MACH3 cnc[/b]Tworzenie Makr do palników magazynków THC OHC inne[b]EKRANY dla firm producentów maszyn[/b] Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 708 196 Tomek Komor [email protected]


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4478
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: 1417
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
[b]MACH3 cnc[/b]Tworzenie Makr do palników magazynków THC OHC inne[b]EKRANY dla firm producentów maszyn[/b] Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 708 196 Tomek Komor [email protected]


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4478
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: 1417
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
[b]MACH3 cnc[/b]Tworzenie Makr do palników magazynków THC OHC inne[b]EKRANY dla firm producentów maszyn[/b] Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 708 196 Tomek Komor [email protected]


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 4478
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)”