Linux nie wraca na pozycję
-
Autor tematu - Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 4
- Posty: 20
- Rejestracja: 01 mar 2020, 04:11
Linux nie wraca na pozycję
Witam serdecznie. Nie znalazłem podobnego tematu więc zakładam nowy .
Zbudowałem maszynkę frezarkę do metalu i mam problem z linuxem .
chodzi o to , że nie wraca on na pozycję. Napisałem sobie procedurkę do wycinania otworów oczywiście wszystko sparametryzowane. . i zauważyłem , że gdy na jednym elemencie mam kilka otworów to za każdym następnym frez schodzi coraz niżej. Myślę sobie o co chodzi i pierwsze co to błąd w kodzie , niestety po wielokrotnym sprawdzaniu wszystkiego na symulatorze także okazało się , że maszyna nie wraca na pozycję.
Gdy w konsoli MDI zadałem jej ruch osi z od pozycji 0,0 do -70 to dojechała na dół idealnie do materiału czyli tak jak miało być następnie wpisałem G0 Z0 no i pojechało po czym z powrotem zadałem G0 Z-70 i maszyna wbiła frez w materiał . za każda taką operacja jest coraz niżej wrzeciono i nie mam pojęcia co jest grane .
Z pozostałymi osiami jest dokładnie to samo .
%
#<srednica_frezu> =6
#<srednica_otworu> =29
#<srodek_x> =0
#<srodek_y> =20
#<predkosc_posuwu> =480
#<zaglebienie_narzedzia> =0.4
#<glebokosc_otworu> =16
#<glebokosc_poczatkowa_Z> =-10
G21 G90 G61 G40
G0
G28
(przygotowanie)
G0
Z[#<glebokosc_poczatkowa_Z>]
(zjazd osi z na odpowiedni pozycje do startu)
X[#<srodek_x>]
y[#<srodek_y>+[1/2*#<srednica_otworu>]-1/2*#<srednica_frezu>]
(przygotowanie pozycji frezu w zależności od pozostałych parametrów jest to potrzebne ponieważ w procedurce podajemy tylko współrzędne środka okręgu oraz promień)
G91 G17 F[#<predkosc_posuwu>]
(przejście do współrzędnych przyrostowych)
G2 X0 Y[0-#<srednica_otworu>+#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z-0.5
G2 X0 Y[0+#<srednica_otworu>-#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z-0.5
(start właściwego programu , początek łagodne wejście w materiał)
O001 repeat [[[#<glebokosc_otworu>-[#<glebokosc_otworu>mod#<zaglebienie_narzedzia>]]/#<zaglebienie_narzedzia>]/2]
(główna pętla właściwe drążenie dziurska)
G91 G17
F[#<predkosc_posuwu>]
G2 X0 Y[0-#<srednica_otworu>+#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-#<zaglebienie_narzedzia>]
G2 X0 Y[0+#<srednica_otworu>-#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-#<zaglebienie_narzedzia>]
O001 endrepeat
G91 G17
G2 X0 Y[0-#<srednica_otworu>+#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-1/2*[#<glebokosc_otworu>mod#<zaglebienie_narzedzia>]]
G2 X0 Y[0+#<srednica_otworu>-#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-1/2*[#<glebokosc_otworu>mod#<zaglebienie_narzedzia>]]
G90 G0 G21
Z[#<glebokosc_poczatkowa_Z>]
X[#<srodek_x>]Y[#<srodek_y>]
(koniec i powrót na pozycje wejściową czyli na współrzędne środka okręgu)
%
Tak wygląda procedurka.
Niestety nie mogę tutaj dodać filmiku krótkiego z elementu frezowanego a zdjęć nie mam. Zgóry dziękuję za podpowiedzi.
Zbudowałem maszynkę frezarkę do metalu i mam problem z linuxem .
chodzi o to , że nie wraca on na pozycję. Napisałem sobie procedurkę do wycinania otworów oczywiście wszystko sparametryzowane. . i zauważyłem , że gdy na jednym elemencie mam kilka otworów to za każdym następnym frez schodzi coraz niżej. Myślę sobie o co chodzi i pierwsze co to błąd w kodzie , niestety po wielokrotnym sprawdzaniu wszystkiego na symulatorze także okazało się , że maszyna nie wraca na pozycję.
Gdy w konsoli MDI zadałem jej ruch osi z od pozycji 0,0 do -70 to dojechała na dół idealnie do materiału czyli tak jak miało być następnie wpisałem G0 Z0 no i pojechało po czym z powrotem zadałem G0 Z-70 i maszyna wbiła frez w materiał . za każda taką operacja jest coraz niżej wrzeciono i nie mam pojęcia co jest grane .
Z pozostałymi osiami jest dokładnie to samo .
%
#<srednica_frezu> =6
#<srednica_otworu> =29
#<srodek_x> =0
#<srodek_y> =20
#<predkosc_posuwu> =480
#<zaglebienie_narzedzia> =0.4
#<glebokosc_otworu> =16
#<glebokosc_poczatkowa_Z> =-10
G21 G90 G61 G40
G0
G28
(przygotowanie)
G0
Z[#<glebokosc_poczatkowa_Z>]
(zjazd osi z na odpowiedni pozycje do startu)
X[#<srodek_x>]
y[#<srodek_y>+[1/2*#<srednica_otworu>]-1/2*#<srednica_frezu>]
(przygotowanie pozycji frezu w zależności od pozostałych parametrów jest to potrzebne ponieważ w procedurce podajemy tylko współrzędne środka okręgu oraz promień)
G91 G17 F[#<predkosc_posuwu>]
(przejście do współrzędnych przyrostowych)
G2 X0 Y[0-#<srednica_otworu>+#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z-0.5
G2 X0 Y[0+#<srednica_otworu>-#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z-0.5
(start właściwego programu , początek łagodne wejście w materiał)
O001 repeat [[[#<glebokosc_otworu>-[#<glebokosc_otworu>mod#<zaglebienie_narzedzia>]]/#<zaglebienie_narzedzia>]/2]
(główna pętla właściwe drążenie dziurska)
G91 G17
F[#<predkosc_posuwu>]
G2 X0 Y[0-#<srednica_otworu>+#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-#<zaglebienie_narzedzia>]
G2 X0 Y[0+#<srednica_otworu>-#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-#<zaglebienie_narzedzia>]
O001 endrepeat
G91 G17
G2 X0 Y[0-#<srednica_otworu>+#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-1/2*[#<glebokosc_otworu>mod#<zaglebienie_narzedzia>]]
G2 X0 Y[0+#<srednica_otworu>-#<srednica_frezu>] R[1/2*#<srednica_otworu>-1/2*#<srednica_frezu>] Z[-1/2*[#<glebokosc_otworu>mod#<zaglebienie_narzedzia>]]
G90 G0 G21
Z[#<glebokosc_poczatkowa_Z>]
X[#<srodek_x>]Y[#<srodek_y>]
(koniec i powrót na pozycje wejściową czyli na współrzędne środka okręgu)
%
Tak wygląda procedurka.
Niestety nie mogę tutaj dodać filmiku krótkiego z elementu frezowanego a zdjęć nie mam. Zgóry dziękuję za podpowiedzi.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 16245
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Re: Linux nie wraca na pozycję
Mieszasz bez sensu przyrostowe z absolutnymi z dodatkiem G28 i dziwisz się że jeździ gdzie chce.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 7884
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Linux nie wraca na pozycję
Nie, to Linux ma problem z Tobą...
Zapewne przesadziłeś z prędkością i silnik gubi kroki, gubi kiedy jedzie w górę, bo ma większy opór...
Poza tym, helisę zrobisz G2/G3 z parametrem P, będzie mniej pisania i przejrzyściej.
A wystarczyło puścić w symulatorze żeby się nie kompromitować...
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1459
- Rejestracja: 25 maja 2006, 14:39
- Lokalizacja: koło.wlkp
Re: Linux nie wraca na pozycję
@tuxcnc
A te procenty nie robią mu kaszany ?. Kiedyś o tym wspominałeś żeby M2 używać nie procentów.
@ćwok123
Co do samej procedury Kamar zapodał kiedyś suba na takie tematy. Ja go trochę pod siebie zmodyfikowałem i generalnie to co napisałeś i wiele innych obskoczysz tym subem.
A te procenty nie robią mu kaszany ?. Kiedyś o tym wspominałeś żeby M2 używać nie procentów.
@ćwok123
Co do samej procedury Kamar zapodał kiedyś suba na takie tematy. Ja go trochę pod siebie zmodyfikowałem i generalnie to co napisałeś i wiele innych obskoczysz tym subem.
Kod: Zaznacz cały
( ------------------------------ )
( O T W O R D O K L A D N Y )
( ------------------------------ )
( Kamar )
( Time-stamp: <2015-10-01 13:27> )
( ------------------------------ )
( USTAWIENIA )
( ------------------------------ )
(info: Wycinanie spiralą dokładnego otworu lub kółka)
o<otwor_spirala1> sub
#<obr> = #1 (=0 obroty)
#<frez> = #2 (=10.0 Średnica freza)
#<Z_poczatkowe> = #3 (=0 Z początkowe)
#<sr_otworu> = #4 (=20 średnica)
#<glebokosc> = #5 (=-10 głębokość)
#<predkosc> = #6 (=500 prędkość)
#<skok> = #7 (=0.5 skok)
#<w_z> = #8 (=5 wyjazd Z)
#<w_x> = #9 (=0 wyjazd X)
#<w_y> = #10 (=0 wyjazd Y)
#<woda> = #11 (=0 <> chłodzenie)
( ------------------------------ )
( ------------------------------ )
#<promien_freza> = [#<frez> / 2] ( promien freza )
#<promien_otworu> = [#<sr_otworu> / 2] ( promien otworu )
#<promien> = [#<promien_otworu> - #<promien_freza>] ( dojazd )
g0 z5
g0 x0 y0
m3 s#<obr>
o1 if [#<woda> eq 1]
m8
o1 endif
#1 = 0
G0 X[-1 * #<promien>] F#<predkosc>
G0 Z1
g1 z0
#<akt_z> = #<Z_poczatkowe>
o100 while [#<akt_z> gt #<glebokosc>]
#<akt_z> = [#<akt_z> - #<skok>]
( jezeli za gleboko to jade na max )
o110 if [#<akt_z> lt #<glebokosc>]
#<akt_z> = #<glebokosc>
o110 endif
G2 X0 Y#<promien> R#<promien> Z[#<akt_z> + [0.75 * #<skok>]]
G2 X#<promien> Y0 R#<promien> Z[#<akt_z> + [0.5 * #<skok>]]
G2 X0 Y[-1 * #<promien>] R#<promien> Z[#<akt_z> + [0.25 * #<skok>]]
G2 X[-1 * #<promien>] Y0 R#<promien> Z#<akt_z>
o100 endwhile
( rownanie dolu )
G2 X0 Y#<promien> R#<promien> Z#<akt_z>
G2 X#<promien> Y0 R#<promien>
G2 X0 Y[-1 * #<promien>] R#<promien>
G2 X[-1 * #<promien>] Y0 R#<promien>
m5
g0 x#<w_x>
g0 y#<w_y>
g0 z#<w_z>
o<otwor_spirala1> endsub
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 7884
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Linux nie wraca na pozycję
M2 resetuje maszynę do ustawień domyślnych. procent pozostawia w takim stanie jak ustawił program.
Czyli użycie procentów samo w sobie nie jest błędem, ale może być przyczyną przykrej niespodzianki.
-
Autor tematu - Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 4
- Posty: 20
- Rejestracja: 01 mar 2020, 04:11
Re: Linux nie wraca na pozycję
Napisałem , że w symulatorze działa perfekt i nie ma problemu program tylko sama maszyna .
Po pierwsze to dopiero się uczę więc nie znam zaawansowanych trików programistycznych i dopiero się bawię zmiennymi , pętlami itd...
Po drugie maszyna nie wraca tam gdzie chcę w konsoli mdi i nie ma to nic wspólnego z napisanym programem.
Opisałem problem , że za każdym razem gdy zadam w maszynie polecenie g28 i po nim np z-70 to maszyna za każdą taką operacją zjeżdża niżej niż za poprzednim razem.
Silnik nie gubi kroków bo od dawna miałem ustawione optymalnie ze sporym zapasem i nie było wcześniej takich problemów.
Dzieje się tak na każdej z osi . tzn. x jak zadam 0 to maszyna jedzie po czym wpisuje np. 50 i póżniej znowu zero i znowu 50 to za każdym takim powtórzeniem maszyna zjeżdża o mniej niż 50 . Jedyne co mi przychodzi na myśl to to , że coś popierniczyłem gdzieś w ustawieniach i nie umiem sobie z tym poradzić
Po pierwsze to dopiero się uczę więc nie znam zaawansowanych trików programistycznych i dopiero się bawię zmiennymi , pętlami itd...
Po drugie maszyna nie wraca tam gdzie chcę w konsoli mdi i nie ma to nic wspólnego z napisanym programem.
Opisałem problem , że za każdym razem gdy zadam w maszynie polecenie g28 i po nim np z-70 to maszyna za każdą taką operacją zjeżdża niżej niż za poprzednim razem.
Silnik nie gubi kroków bo od dawna miałem ustawione optymalnie ze sporym zapasem i nie było wcześniej takich problemów.
Dzieje się tak na każdej z osi . tzn. x jak zadam 0 to maszyna jedzie po czym wpisuje np. 50 i póżniej znowu zero i znowu 50 to za każdym takim powtórzeniem maszyna zjeżdża o mniej niż 50 . Jedyne co mi przychodzi na myśl to to , że coś popierniczyłem gdzieś w ustawieniach i nie umiem sobie z tym poradzić
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 2123
- Rejestracja: 28 sty 2007, 16:12
- Lokalizacja: Łódź
Re: Linux nie wraca na pozycję
Największe szanse na popierniczenie jest wtedy gdy nie przypilnujesz poziomów sygnałów sterujących sterownikiem krokowca.
Po przetłumaczeniu:
Sprawdź czy zmiana kierunku następuje pomiędzy impulsami kroku czy w trakcie tego impulsu. Bo wtedy co nawrót to krok mniej.
Po przetłumaczeniu:
Sprawdź czy zmiana kierunku następuje pomiędzy impulsami kroku czy w trakcie tego impulsu. Bo wtedy co nawrót to krok mniej.
-
Autor tematu - Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 4
- Posty: 20
- Rejestracja: 01 mar 2020, 04:11
Re: Linux nie wraca na pozycję
A gdzie to się sprawdza i co to jest??qqaz pisze:Największe szanse na popierniczenie jest wtedy gdy nie przypilnujesz poziomów sygnałów sterujących sterownikiem krokowca.
Po przetłumaczeniu:
Sprawdź czy zmiana kierunku następuje pomiędzy impulsami kroku czy w trakcie tego impulsu. Bo wtedy co nawrót to krok mniej.
czy będzie do tego potrzebny 2 kanałowy oscyloskop??
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 2123
- Rejestracja: 28 sty 2007, 16:12
- Lokalizacja: Łódź
Re: Linux nie wraca na pozycję
wystarczy dwuuszaty łeb z rozumem.
Nie wiem gdzie to jest w LInuksie ale ze jest to prawie pewne.
Ustawienie że program impuls wysyła jako stan wysoki lub niski zależy od sprzętowego podłączenia sterowników do kompa.
Impuls jet wtedy gdy popłynie prąd przez leda w sterowniku krokowca. No i musisz popatrzeć na swoje kabelki przy jakim stanie wyjścia to nastąpi.
Dodane 17 minuty 18 sekundy:
to znaczy jaki stan wyjścia powinien być aby ten prąd popłynął.
I taki stan (wysoki/niski) ustawić w parametrach programu aby był tym impulsem.
Nie wiem gdzie to jest w LInuksie ale ze jest to prawie pewne.
Ustawienie że program impuls wysyła jako stan wysoki lub niski zależy od sprzętowego podłączenia sterowników do kompa.
Impuls jet wtedy gdy popłynie prąd przez leda w sterowniku krokowca. No i musisz popatrzeć na swoje kabelki przy jakim stanie wyjścia to nastąpi.
Dodane 17 minuty 18 sekundy:
to znaczy jaki stan wyjścia powinien być aby ten prąd popłynął.
I taki stan (wysoki/niski) ustawić w parametrach programu aby był tym impulsem.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 16245
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Re: Linux nie wraca na pozycję
Oho. kolejna teoria coby proste nie było proste
Cholera, trzynaście lat pracy z dziesiątkami krokowców bez jej znajomości.
Zmarnowane lata
Cholera, trzynaście lat pracy z dziesiątkami krokowców bez jej znajomości.
Zmarnowane lata