Macro wymiany narzędzia w machu
-
Autor tematu - Specjalista poziom 1 (min. 100)
- Posty w temacie: 2
- Posty: 134
- Rejestracja: 09 mar 2007, 12:27
- Lokalizacja: częstochowa
Macro wymiany narzędzia w machu
Witam
Mam problem z pomiarem narzędzia w mach3. Kilkudniowa zabawa z macrami z forum dała mizerne rezultaty, a dochodzę do wniosku że praca bez czujnika długości i pomiaru narzędzia w niektórych przypadkach jest niemożliwa, np. w przypadku obróbki wymagającej kilku narzędzi. Do tej pory radziłem sobie w ten sposób że po ustawieniu zera detalu, wyzerowaniu osi, odjeżdżałem do punkty pomiarowego (klocek aluminiowy), i opuszczałem wrzeciono do momentu dotknięcia czoła frezu do sztabki. Wartość z licznika zapisywałem (Z1), po czym wymieniałem narzędzie na inne, znowu podjazd czołem do sztabki, odczyt odległości (Z2). Korekta dla narzędzia to Z2-Z1, przejazd w miejsce zerowe i wpisanie tej różnicy dla Zetki. Jest to kłopotliwe, bo np. gdy narzędzie się złamie to po pomiarze i trzeba szukać wysokości na czuja. Oprócz frezarki mam ploter kimli z pomiarem długości narzędzia i tam jest to rozwiązane dość wygodnie, bo przed obróbką dokonuje sie pomiaru narzędzia, a potem ustala punkt zerowy detalu dojeżdżając do jego krawędzi, jakakolwiek wymiana narzędzia podczas pracy wywołuje korektę narzędzia i czoło frezu jest zawsze w tym samym miejscu.
Macra pobrane z forum próbowałem modyfikować, ale zawsze wywołanie korekty narzędzia było błędne. Czujnik do prób mam prowizoryczny, ale to nie w nim problem.
Naprawdę będę wdzięczny za każdą informację pozwalającą rozwiązać ten problem, ew. o kontakt do kogo mógłbym się zgłosić.
Pozdrawiam
Mam problem z pomiarem narzędzia w mach3. Kilkudniowa zabawa z macrami z forum dała mizerne rezultaty, a dochodzę do wniosku że praca bez czujnika długości i pomiaru narzędzia w niektórych przypadkach jest niemożliwa, np. w przypadku obróbki wymagającej kilku narzędzi. Do tej pory radziłem sobie w ten sposób że po ustawieniu zera detalu, wyzerowaniu osi, odjeżdżałem do punkty pomiarowego (klocek aluminiowy), i opuszczałem wrzeciono do momentu dotknięcia czoła frezu do sztabki. Wartość z licznika zapisywałem (Z1), po czym wymieniałem narzędzie na inne, znowu podjazd czołem do sztabki, odczyt odległości (Z2). Korekta dla narzędzia to Z2-Z1, przejazd w miejsce zerowe i wpisanie tej różnicy dla Zetki. Jest to kłopotliwe, bo np. gdy narzędzie się złamie to po pomiarze i trzeba szukać wysokości na czuja. Oprócz frezarki mam ploter kimli z pomiarem długości narzędzia i tam jest to rozwiązane dość wygodnie, bo przed obróbką dokonuje sie pomiaru narzędzia, a potem ustala punkt zerowy detalu dojeżdżając do jego krawędzi, jakakolwiek wymiana narzędzia podczas pracy wywołuje korektę narzędzia i czoło frezu jest zawsze w tym samym miejscu.
Macra pobrane z forum próbowałem modyfikować, ale zawsze wywołanie korekty narzędzia było błędne. Czujnik do prób mam prowizoryczny, ale to nie w nim problem.
Naprawdę będę wdzięczny za każdą informację pozwalającą rozwiązać ten problem, ew. o kontakt do kogo mógłbym się zgłosić.
Pozdrawiam
Tagi:
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 2
- Posty: 320
- Rejestracja: 12 lut 2006, 18:56
- Lokalizacja: Dolnośląskie
Ja mam cudem jakimś zrobiłem takie makro:
Narzędziem nr 0 "łapię" zero materiału, klikam na "zerowanie materiału" i frez jedzie na punkt pomiarowy i zapamiętuje zero materiału. Po zmianie freza klikam "zerowanie" , frez jedzie na punkt i zeruje się.
Narzędziem nr 0 "łapię" zero materiału, klikam na "zerowanie materiału" i frez jedzie na punkt pomiarowy i zapamiętuje zero materiału. Po zmianie freza klikam "zerowanie" , frez jedzie na punkt i zeruje się.
- Załączniki
-
- HiddenScript.rar
- (515 Bajtów) Pobrany 754 razy
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 7
- Posty: 1417
- Rejestracja: 23 cze 2008, 10:38
- Lokalizacja: OOL lub DW
- Kontakt:
do pracy z kilkoma narzędziami dobrze jest miec magazynek ułątwia prace a reczna zmiana narzędzia no cóż ... też wyjscie
faniron,
o co chodzi z
a dokładnie linijka 2 i 4 MsgBox to wiadomosc w dodatkowym oknie
faniron,
o co chodzi z
Kod: Zaznacz cały
If Tool = 0 Then
Response = MsgBox ("Did you zero off the part First?", 4 , "Set up offset")
If (Response = 6) Then 'Yes
ZPos = Zpos - ZMove
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 7
- Posty: 1417
- Rejestracja: 23 cze 2008, 10:38
- Lokalizacja: OOL lub DW
- Kontakt:
a może to tak w pl napisac?
ja osobiście zrobił bym tak
w połowie wysokości osi Z umieścił bym blaszkę która byłą by czujnikiem lub sam czujnik
kolejna rzecz to pbunkt zerowy maszyny umieścił bym X0 Y0 Z09z tą różnica żę Z0 było by w momencie gdy oś Z jest podniesiona maksymalnie)
i chyba nic prostrzego jak
pomiar pierwszy do stałego punktu w maszynie między blaszką i ...
przyjmiemy na to do wierzchołkiem nakrętki wrzeciona bądz innej czesci która nie jest zmieniana i ruszana w jakikolwiek sposób
pomiar drugi po założeniu narzędzia podjazd do tej samej blaszki z której jest wysyłany sygnał w momencie dotknięcia na jakiś pin i z czytywana wysokość Z-ki następnie wpisanie jej wartosci do rejestru dlugosci narzedzia i wywolanie korekty dla tego narzedzia
nalerzy przy tym pamiętac o maxymalnej długosci narzędzia skrawającego dostosowanej do każdej maszyny z osobna tak samo jak kilka innych wartosci makra
a możę ktoś ma inny pomysł na uniwersalny pomiar długoci narzędzia ?
ja osobiście zrobił bym tak
w połowie wysokości osi Z umieścił bym blaszkę która byłą by czujnikiem lub sam czujnik
kolejna rzecz to pbunkt zerowy maszyny umieścił bym X0 Y0 Z09z tą różnica żę Z0 było by w momencie gdy oś Z jest podniesiona maksymalnie)
i chyba nic prostrzego jak
pomiar pierwszy do stałego punktu w maszynie między blaszką i ...
przyjmiemy na to do wierzchołkiem nakrętki wrzeciona bądz innej czesci która nie jest zmieniana i ruszana w jakikolwiek sposób
pomiar drugi po założeniu narzędzia podjazd do tej samej blaszki z której jest wysyłany sygnał w momencie dotknięcia na jakiś pin i z czytywana wysokość Z-ki następnie wpisanie jej wartosci do rejestru dlugosci narzedzia i wywolanie korekty dla tego narzedzia
nalerzy przy tym pamiętac o maxymalnej długosci narzędzia skrawającego dostosowanej do każdej maszyny z osobna tak samo jak kilka innych wartosci makra
a możę ktoś ma inny pomysł na uniwersalny pomiar długoci narzędzia ?
-
Autor tematu - Specjalista poziom 1 (min. 100)
- Posty w temacie: 2
- Posty: 134
- Rejestracja: 09 mar 2007, 12:27
- Lokalizacja: częstochowa
Nareszcie, po paru godzinach prób, udało się pomierzyć narzędzia, koledze faniron dziękuję, punkcik leci
. Chodziarz wydaje mi się że to jeszcze nie to czego szukam. Przeglądam makra z różnych forum i nie mogę znaleźć takiego które ( tak to sobie wyobrażam) : po uruchomieniu maszyny, oczywiście bazujemy osie, klikamy na button wymiana narzędzia - maszyna jedzie w pkt. wymiany narzędzia,komunikat by założyć narzędzie , jeśli tak to dokonuje pomiaru długości; następnie na zero materiału, a kolejne wymiany narzędzia będą powodowały że po wciśnięciu "go to Zero" czoło frezu będzie zawsze na tej samej wysokości. Dobrze byłoby gdy podczas pracy stwierdzimy że należy ręcznie zmienić pkt. zerowy materiału to w pomiarze też by to było uwzględnione.
Gotowego na pewno nie znajde, ale pokombinować ze skryptami nie zaszkodzi, a może ktoś ma pomysł, jakby coś podobnego stworzyć? Co do magazynka narzędzi, to jest mi niepotrzebny na razie, bardziej istotny jest ten pomiar, który jest mniej skomplikowany niż ster. magazynkiem, zresztą mam wrzeciono na tuleje eo25 i nie wiem jakby można było zrealizować wymianę bez przerabiania lub wymiany wrzeciona. Popieram pomysł stworzenia uniwersalnego sposobu pomiaru narzędzia, pomimo tego że każda maszyna jest inna, ale gdyby wszystko było dobrze opisane i zakładało kilka wariantów zastosowań to mogło by się udać i wielu osobom oszczędzić trudności. Pozdrawiam

Gotowego na pewno nie znajde, ale pokombinować ze skryptami nie zaszkodzi, a może ktoś ma pomysł, jakby coś podobnego stworzyć? Co do magazynka narzędzi, to jest mi niepotrzebny na razie, bardziej istotny jest ten pomiar, który jest mniej skomplikowany niż ster. magazynkiem, zresztą mam wrzeciono na tuleje eo25 i nie wiem jakby można było zrealizować wymianę bez przerabiania lub wymiany wrzeciona. Popieram pomysł stworzenia uniwersalnego sposobu pomiaru narzędzia, pomimo tego że każda maszyna jest inna, ale gdyby wszystko było dobrze opisane i zakładało kilka wariantów zastosowań to mogło by się udać i wielu osobom oszczędzić trudności. Pozdrawiam
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 7
- Posty: 1417
- Rejestracja: 23 cze 2008, 10:38
- Lokalizacja: OOL lub DW
- Kontakt:
hmm wracając do tematu wymiany można zrobic magazynek narzedzi i wysterowac zmiane narzedzia na osobnym porcie np jakis port COM
a pmiar narzedzia wykonac da sie w 3 rużnych osiach zalerzy to od parametru GetVar (2002) zmian na 2000 lub 2001 spowoduje pobranie wartosci z innej osi maszyny ja wiem tylko o tych osiach X Y Z
a przy pisaniu makra i oczekiwaniu na to iż maszyn skonczy ruch radze zastosowacmniej procesor obciąża i komp niemuli tak bardzo
[ Dodano: 2009-02-19, 17:23 ]
poprawka do GetVar
jeśli by ktoś pomiar musiał zrobic w innej osi
a pmiar narzedzia wykonac da sie w 3 rużnych osiach zalerzy to od parametru GetVar (2002) zmian na 2000 lub 2001 spowoduje pobranie wartosci z innej osi maszyny ja wiem tylko o tych osiach X Y Z
a przy pisaniu makra i oczekiwaniu na to iż maszyn skonczy ruch radze zastosowac
Kod: Zaznacz cały
While ismoving()
Sleep 100
Wend
[ Dodano: 2009-02-19, 17:23 ]
poprawka do GetVar
Kod: Zaznacz cały
[2000] X współrzędne
[2001] Y współrzędne
[2002] Z współrzędne
[2003] A współrzędne
[2004] B współrzędne
[2005] C współrzędne
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 1
- Posty: 316
- Rejestracja: 10 cze 2007, 15:09
- Lokalizacja: Ostrów
jest to wypowiedz uzytkownika pit202 i jego marco znzlazlem na forun sam nie testowalem ale komus moze sie pezydac
moze sie komuś przyda , moj sposob na pomiar frezów , dziala to tak , wpisujemy w MDI " T1 M6" i maszyne jedzie i czeka az zalozymy jakis frez a potem jedzie i mierzy sobie dlugosc, po tym dopiero mozemy podjechac pod przedmiot i wyzerowac "Z" dla np. G55 , potrzebne do tego są 2 skrypty które sam napisałem , oto one : ( aby dzialalo powinno wystarczyc podmienic je )
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() ; ale nie wiem dlaczego tak zrobilem
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)
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" ; ta czesc jest najbardziej tajemnicza, musialem tak zrobic
While IsMoving() ; poniewaz bez tego przy zalozeniu krutszego ( albo dluzszego )
Wend ; freza maszyna jechala do góry pomimo ze byla na samej górze i naciskała na LIMIT Z
mam nadzieje , ze komus sie to przyda, ktos to sprawdzi i opisze , poniewaz duzo ludzi sie o to pyta, ja juz nie mam maszyny na ktorej moge to sprawdzic , pisalem to conajmniej 2 lata temu i juz niewiele pamietam.
moze sie komuś przyda , moj sposob na pomiar frezów , dziala to tak , wpisujemy w MDI " T1 M6" i maszyne jedzie i czeka az zalozymy jakis frez a potem jedzie i mierzy sobie dlugosc, po tym dopiero mozemy podjechac pod przedmiot i wyzerowac "Z" dla np. G55 , potrzebne do tego są 2 skrypty które sam napisałem , oto one : ( aby dzialalo powinno wystarczyc podmienic je )
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() ; ale nie wiem dlaczego tak zrobilem
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)
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" ; ta czesc jest najbardziej tajemnicza, musialem tak zrobic
While IsMoving() ; poniewaz bez tego przy zalozeniu krutszego ( albo dluzszego )
Wend ; freza maszyna jechala do góry pomimo ze byla na samej górze i naciskała na LIMIT Z
mam nadzieje , ze komus sie to przyda, ktos to sprawdzi i opisze , poniewaz duzo ludzi sie o to pyta, ja juz nie mam maszyny na ktorej moge to sprawdzic , pisalem to conajmniej 2 lata temu i juz niewiele pamietam.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 7
- Posty: 1417
- Rejestracja: 23 cze 2008, 10:38
- Lokalizacja: OOL lub DW
- Kontakt:
czy ktoś ma możliwosc i chęci sprawdzenia tego
dowiedziałem sie żę można ustawiac stany na wybranym porcie i odczytywac stany dziki temu mozna w łątwy sposób zrobic magazynek wraz z czujnikami do pomiaru długosci nażedzia oraz inne ciekawe pomysły da się zrealizować czy ktoś ma możliwosc sprawdzenia??
Kod: Zaznacz cały
Serial port
You can send bytes of raw data to a serial port. The port number (i.e. n in COMn) to be used and the baud rate for transmission is set in Config>Logic. RTS/CTS hardware flow control protocol will be used to control large volumes of data but this will not be normally required. Data is transmitted 8 data bits, 1 stop bit No Parity by a call of SendSerial.
Sub SendSerial (chars as String)
Example: to write the value of X DRO to an LCD display connected to the serial (RS232) port.
Call SendSerial ("X-Axis = " & GetDRO (0))
[edit]
Foreign ports
Scripts can access ports on the PC which are additional to the one (or perhaps two) parallel port(s) defined in Config>Ports and Pins. These are accessed at the basic hardware port address level and you will have to be aware of the details of the individual port addresses, allocation of data and status bits etc.
Function GetPortByte (pAddr as Integer) as Byte
Sub PutPortByte (pAddr as Integer, bData as Byte)
This feature should be used with great care as, if misused, it can interfere with any peripheral on your system, including the hard-driv
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 2
- Posty: 152
- Rejestracja: 26 mar 2005, 16:25
- Lokalizacja: Starachowice
Witam,
Temat ciekawy. Z tego co wiem to jest tez mozliwosc uzycia protokolu ModBus RTU, ktory obsluguja sterowniki PLC. Tyle ze przy sterowniku PLC trzeba jeszcze go zaprogramowac.
Tak czy inaczej, nie wiem czy nie lepszym, tanszym i szybszym rozwiazaniem jest zastosowanie PoKeys55 (opis w tym watku: https://www.cnc.info.pl/topics45/pokeys ... 9650#97743
A tutaj manual do pluginu dla PoKeys55. Brzmi zachecajaco...
Pzdr
Piotr
Temat ciekawy. Z tego co wiem to jest tez mozliwosc uzycia protokolu ModBus RTU, ktory obsluguja sterowniki PLC. Tyle ze przy sterowniku PLC trzeba jeszcze go zaprogramowac.
Tak czy inaczej, nie wiem czy nie lepszym, tanszym i szybszym rozwiazaniem jest zastosowanie PoKeys55 (opis w tym watku: https://www.cnc.info.pl/topics45/pokeys ... 9650#97743
A tutaj manual do pluginu dla PoKeys55. Brzmi zachecajaco...
Pzdr
Piotr