Prosba o sprawdzenie makra

Dyskusje na temat systemu Faunc

Autor tematu
thewilis
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 13
Rejestracja: 04 wrz 2013, 19:20
Lokalizacja: Łódź

Prosba o sprawdzenie makra

#1

Post napisał: thewilis » 14 paź 2015, 12:58

Witam serdecznie.
Jest to moje pierwsze podejscie do napisania makra
Makro powinno rozfrezowywac otwor do zadanej srednicy z maksymalnej glebokosci
Maszyna wysypuje sie na 3 linijce makra z komunikatem Invalid Character
Maszyna na której próbuje to odpalic to Hurco VM30i

Czy, ktorys z kolegow moglby rzucic okiem i podpowiedziec co robie nie tak ?

Pozdawiam

kod:

%
G54 G90
T8 M6
G0 X0 Y0 Z100
S6000 M3 M8

G65 P0070 F600 A8.5 B13 C3 D8 E8 F500 H0 I0.5 J9.99 K100
M30

O0070 ( START OF SUBRPOGRAM 0070 )

(A=8.5 -== HOLE DIAMETER ==- )
(B=13 -== HOLE DEPTH ==- )
(C=3 -== RETRACT PLANE ==- )
(D=8 -== RADIUS OFFSET NUMBER ==- )
(E=8 -== TOOL DIAMETER ==- )
(F=500 -== FEED ==- )
(H=0 -== VARIABLE RESET ==- )
(I=0.3 -== CUTTING DEPTH ==- )
(J=9.95 -== FINISH DIAMETER ==- )
(K=100 -== SAFE PLANE ==- )

G0 Z#3
G1 Z-#2 F#9 ( GO TO RETRACT PLANE )
G91 G1 G42 D#8 X[#1/2] ( COMPENSATION TURN ON )
N10 #11=#11+#4
G1 X#4
G2 I-[[#1/2]]+#11] J0 ( -== ENLARGING ==- )
IF[#11 LT [#5-#1-#4]]GOTO 10 (---------------------)
G91 G40 G1 X-[[#1/2]]+#11] ( COMPENSATION TURN OFF )
G91 G1 G42 D#8 X[#5/2]
G2 I-[[#5/2]] J0 ( FINISHING PASS )
G91 G40 G1 X-[[#1/2]]+#11]
G90 G1 Z#3 ( GO TO RETRACT PLANE )
G0 Z#6 ( RAPID TO SAFE PLANE )
M99 ( End of SUBPROGRAM 0070 )



Tagi:


mariusz123a
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 201
Rejestracja: 14 cze 2011, 22:05
Lokalizacja: ...

#2

Post napisał: mariusz123a » 21 paź 2015, 18:09

Masz problem z nawiasami, spróbuj w ten sposób i zadziała:

%
O0070( START OF SUBRPOGRAM 0070 )

(A=8.5 -== HOLE DIAMETER ==- )
(B=13 -== HOLE DEPTH ==- )
(C=3 -== RETRACT PLANE ==- )
(D=8 -== RADIUS OFFSET NUMBER ==- )
(E=8 -== TOOL DIAMETER ==- )
(F=500 -== FEED ==- )
(H=0 -== VARIABLE RESET ==- )
(I=0.3 -== CUTTING DEPTH ==- )
(J=9.95 -== FINISH DIAMETER ==- )
(K=100 -== SAFE PLANE ==- )

G0Z#3
G1Z-#2F#9
G91G1G42D#8X[#1/2]
N10#11=#11+#4
G1X#4
G2I-[[#1/2]+#11]
IF[#11LT[#5-#1-#4]]GOTO10
G91G40G1X-[[#1/2]+#11]
G91G1G42D#8X[#5/2]
G2I-[#5/2]J0
G91G40G1X-[[#1/2]+#11]
G90G1Z#3
G0Z#6
M99
%

Według mnie program nie dopracowany, powinieneś jeszcze dodać możliwość określenia średnicy od jakiej ma zacząć frezować.


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#3

Post napisał: PiRo_man » 23 paź 2015, 18:59

Witam,
Po pierwsze podałeś trochę mało informacji odnośnie kodu.
To, że parametr E określa średnicę narzędzia nic mi nie mówi. Przez ten parametr przekazujesz rozmiar narzędzia w sensie fizycznym? Czy numer korektora w tablicy narzędzi?
Po drugie w kodzie masz proste błędy, np.:

Kod: Zaznacz cały

G2 I-[[#1/2]]+#11] J0	( -== ENLARGING ==- ) 
dwa razy masz otwarty nawias, a zamykasz trzy...
Po trzecie możesz zmniejszyć liczbę parametrów (o ile maszyna Ci na to pozwoli) poprzez na przykład automatyczne pobieranie promienia narzędzia z tablicy narzędzi.

Ja w swoim makro (wykonującym to samo co Twoje) mam chyba 5, czy 6 parametrów, z uwzględnieniem wstępnego rozmiaru otworu (na przykład przy frezowaniu pogłębienia).

inż. Mateusz


mariusz123a
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 201
Rejestracja: 14 cze 2011, 22:05
Lokalizacja: ...

#4

Post napisał: mariusz123a » 24 paź 2015, 08:03

PiRo_man pisze:Witam,
Po pierwsze podałeś trochę mało informacji odnośnie kodu.
To, że parametr E określa średnicę narzędzia nic mi nie mówi. Przez ten parametr przekazujesz rozmiar narzędzia w sensie fizycznym? Czy numer korektora w tablicy narzędzi?
Odpowiadasz bez analizy programu i twierdzisz, ze podał za mało informacji, przeczytaj opis parametrów w szczególności opis D i E.

Po drugie twierdzisz, ze ma problem z nawiasami, spójrz co ja napisałem, czy nie napisalem o nawiasach i dodatkowo nie poprawiłem programu.

Po trzecie napisałem, ze program nie dopracowany, bo brakuje średnicy początkowej. Spojrz co Ty napisałeś, wspomniałeś, że masz program który uwzględnia średnicę poczatkową. Podziel się programem i wtedy uznam, że pomogleś. Na razie to tylko widzę, ze swoim postem objechaleś kolegę bez powodu i nic nowego nie wniosłeś do tematu. Nabijasz sobie tylko liczbę postów Panie inzynierze.

Amator Mariusz


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#5

Post napisał: PiRo_man » 24 paź 2015, 13:48

mariusz123a pisze:Odpowiadasz bez analizy programu i twierdzisz, ze podał za mało informacji, przeczytaj opis parametrów w szczególności opis D i E.
Przeanalizowałem program, ale nie mam zamiaru dopasowywać numerów zmiennych do parametrów - szkoda mi na to mojego bardzo cennego inżynierskiego czasu. A dla osoby która pisała makro opisanie parametrów zajmie maksymalnie dwie minuty.
mariusz123a pisze:Po drugie twierdzisz, ze ma problem z nawiasami, spójrz co ja napisałem, czy nie napisalem o nawiasach i dodatkowo nie poprawiłem programu.
Tutaj sam sobie przeczysz. Jakbym nie przeanalizował programu, na pewno nie wypisał bym mu konkretnej linii z przykładem.
mariusz123a pisze:Po trzecie napisałem, ze program nie dopracowany, bo brakuje średnicy początkowej. Spojrz co Ty napisałeś, wspomniałeś, że masz program który uwzględnia średnicę poczatkową.
W tym momencie nawiązywałem do Twojego postu, ale widocznie emocje stargane moim wyższym wykształceniem i tytułem inżyniera przed imieniem i nazwiskiem nie pozwoliły Ci tego zauważyć. Nie przejmuj się, ani trochę mnie to nie ruszyło, przyzwyczaiłem się już do tego, że w Polsce każdy ma do innych podejście typu: "ja najmądrzejszy, a ta reszta idiotów dookoła mnie...". Tym bardziej jak już liźnie trochę jakiś temat i coś już zaczyna wychodzić.
mariusz123a pisze:Podziel się programem i wtedy uznam, że pomogleś. Na razie to tylko widzę, ze swoim postem objechaleś kolegę bez powodu i nic nowego nie wniosłeś do tematu. Nabijasz sobie tylko liczbę postów Panie inzynierze.

Amator Mariusz
Podzielić się? No chyba żartujesz... Ja na tym zarabiam, więc nie widzę powodu dla którego miałbym się tym dzielić. Mam więcej różnego typu makr na FANUC'a, ale na pewno nie do rozdania.

Porównaj sobie dwie sytuacje.
Ogólny opis sytuacji: ślepa osoba stoi przed przejściem dla pieszych, i chce przejść na drugą stronę. Nie wie jednak kiedy zapala mu się zielone światło, ponieważ sygnalizacja nie wydaje żadnego dźwięku.
Pierwsza sytuacja:
Przechodzę koło tej osoby, i mówię: "idź, masz zielone światło".
Druga sytuacja:
Zaczynam krzyczeć na tą osobę, że gdzie ona się wybiera jak jest ślepa. Że zamiast siedzieć w domu, łazi i przeszkadza innym.

Ogarniasz różnicę?

To teraz powiedz mi w którym momencie "objechałem kolegę" i w jaki sposób. Proszę zacytuj mi ten fragment wypowiedzi w której koledze ubliżam.

Nie wiem co Wy macie z tym nabijaniem postów? Jest to dla Was jakiś wykładnik wiedzy? Czy jak? Proszę wyjaśnij mi to, bo już od jakiegoś czasu mnie to zastanawiam. Poza tym, jeśli moje posty są zbędne, to śmiało zgłaszaj je do moderatora. Koło d... mi to lata.

Twoje rozumowanie od mojego różni się tym, że w Twoim przekonaniu "pomoc" to w moim "wyręczenie kogoś w czymś". Jeśli kolega oczekuje pomocy, to w moim przekonaniu potrzebuje wskazówek, żeby zrozumieć to co napisał, i dlaczego to nie działa tak jak by chciał. A przez wstawienie gotowego kodu, na 99% jestem przekonany, że mimo, że kod mu zadziała, to i tak nie będzie wiedział dlaczego.
mariusz123a pisze:Panie inzynierze
To mi się podoba :)


-------------------------------------------------------------------------------------------
Wracając do tematu, jesteś mariusz123a pewny, że poprawiony przez Ciebie program zadziała?
Bo mi się wydaję, że nie. Ponieważ nawet jeśli maszyna czyta kilka bloków z rzędu, i ma możliwość po określeniu interpolacji z korekcją promienia narzędzia wykonać jakieś działanie, następnie wczytać współrzędne określając tym samym kierunek interpolacji i jednoznacznie stwierdzić czy frezowana jest kieszeń czy wyspa (czop), to problemem staje się tutaj ponowny ruch w tym samym kierunku, który blokuje w tym momencie maszynie możliwość określenia konturu po którym narzędzie ma się poruszać (wewnętrzny czy zewnętrzny).

Kod: Zaznacz cały

G91 G1 G42 D#8 X[#1/2] ( COMPENSATION TURN ON ) 
N10 #11=#11+#4 
G1 X#4 
Jak już pisałem wcześniej, nawet jeśli maszyna pominie blok N10 z działaniem, to i tak interpolacja drugi raz idzie w kierunku 'X'. Choć jestem przekonany, że już ten blok z sumą parametrów powoduje błąd. Spróbuj ten blok przenieść w inne miejsce, żeby zachowana była ciągłość bloków z interpolacją narzędzia.
mariusz123a pisze:G91G1G42D#8X[#1/2]
N10#11=#11+#4
G1X#4
W poprawionym przez Ciebie kodzie wygląda to tak samo, dlatego wnioskuję, że Twój kod również nie zadziała. Ale oczywiście mogę się mylić. :)

inż. Mateusz


PiRo_man
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 329
Rejestracja: 23 sie 2010, 21:32
Lokalizacja: Świerklany

#6

Post napisał: PiRo_man » 28 paź 2015, 17:32

Rozumiem, że problem został rozwiązany? :)

inż. Mateusz

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Fanuc”