Witam!
Wiem, że na forum było już pełno tematów odnośnie długości narzędzia jednak mój jest dość specyficzny.
Otóż potrzebowałbym napisać makro do wyliczania długości narzędzia za pomocą czujnika umieszczonego na brzegu stołu roboczego (w stałej niezmiennej pozycji).
Działanie polegało by na tym by w czasie pracy programu wywołanie zmiany narzędzia (m6) uruchamiało przejazd narzędzia w jedno konkretne miejsce, które określane jest przez krańcówki bazowania w osiach X, Y i Z (narzędzie wysunięte maksymalnie do góry) i tam dopiero następował zjazd osi Z do czujnika i zapisanie długości narzędzia (wyzerowanie osi Z bez zmiany wartości X i Y). Następnie narzędzie wracałoby do pozycji w której został wywołane polecenie pobrania długości narzędzia.
Ploter ma układ kartezjański gdzie oś Z do góry ma wartość dodatnie a w dół ujemne.
Czy ktoś mógłby mnie naprowadzić na właściwy tor?
Wykrywanie długości narzędzia na zbazowanym czujniku
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1417
- Rejestracja: 23 cze 2008, 10:38
- Lokalizacja: OOL lub DW
- Kontakt:
Znasz pisanie makr? czy chcesz plik i go wkleic??
Ten twój opis jest troche nie kompletny
kiedy zmieniasz narzedzie
po zmianie os ma zjechac dotknąc czujnika i zapisac to jako z0
krancówki to chyba nie najlepszy pomysł
bo gdy maszyna sie gdzies przesuneła to niestety po zbazowaniu całosc zmieni pozycje
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
While IsMoving()
Wend
Code "G28" ; ruch do pozycji zerowych wszystkich osi
While IsMoving()
Wend
Ten twój opis jest troche nie kompletny
kiedy zmieniasz narzedzie
po zmianie os ma zjechac dotknąc czujnika i zapisac to jako z0
krancówki to chyba nie najlepszy pomysł
bo gdy maszyna sie gdzies przesuneła to niestety po zbazowaniu całosc zmieni pozycje
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
While IsMoving()
Wend
Code "G28" ; ruch do pozycji zerowych wszystkich osi
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]
-
Autor tematu - Sympatyk forum poziom 2 (min. 50)
- Posty w temacie: 2
- Posty: 56
- Rejestracja: 23 maja 2011, 09:54
- Lokalizacja: legnica
1. Jestem jeszcze laikiem jeśli chodzi o pisanie makr
2. Jeśli bym dostał plik to byłbym bardzo wdzięczny:)
Wymiana narzędzia ma nastąpić ręcznie.
Tzn ręcznie zmieniam narzędzie, uruchamiam polecenie zmiany narzędzia (m6) i w tym momencie następuje bazowanie z pobraniem długości narzędzia.
Natomiast zmianie ulega tylko wartość osi Z.
Moim zdaniem określenie gdzie znajduje się czujnik długości musi być ustalone poprzez krańcówki (nie poprzez wartość np. X10.000 Y15.000), ponieważ często zmieniamy miejsce początkowe układu współrzędnych (raz na rogu stołu, innym razem na środku stołu).
Jeśli chodzi o rozjechanie się maszyny (wartości aktualnych współrzędnych) to myślę, że nie będzie z tym problemu bo używam serwo.
Najwyżej może gubić impulsy na linii PC->Servo
Czy w takim razie ten kod który otrzymałem jest dalej aktualny?
Dziękuję za pomoc
2. Jeśli bym dostał plik to byłbym bardzo wdzięczny:)
Wymiana narzędzia ma nastąpić ręcznie.
Tzn ręcznie zmieniam narzędzie, uruchamiam polecenie zmiany narzędzia (m6) i w tym momencie następuje bazowanie z pobraniem długości narzędzia.
Natomiast zmianie ulega tylko wartość osi Z.
Moim zdaniem określenie gdzie znajduje się czujnik długości musi być ustalone poprzez krańcówki (nie poprzez wartość np. X10.000 Y15.000), ponieważ często zmieniamy miejsce początkowe układu współrzędnych (raz na rogu stołu, innym razem na środku stołu).
Jeśli chodzi o rozjechanie się maszyny (wartości aktualnych współrzędnych) to myślę, że nie będzie z tym problemu bo używam serwo.
Najwyżej może gubić impulsy na linii PC->Servo
Czy w takim razie ten kod który otrzymałem jest dalej aktualny?
Dziękuję za pomoc