Linux nie wraca na pozycję

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
ćwok123
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 4
Posty: 20
Rejestracja: 01 mar 2020, 04:11

Linux nie wraca na pozycję

#1

Post napisał: ćwok123 » 19 wrz 2021, 19:40

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. :D :D . 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.




kamar
Lider FORUM (min. 2000)
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ę

#2

Post napisał: kamar » 19 wrz 2021, 20:39

Mieszasz bez sensu przyrostowe z absolutnymi z dodatkiem G28 i dziwisz się że jeździ gdzie chce.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7884
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Linux nie wraca na pozycję

#3

Post napisał: tuxcnc » 19 wrz 2021, 20:59

ćwok123 pisze:
19 wrz 2021, 19:40
mam problem z linuxem
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.
kamar pisze:
19 wrz 2021, 20:39
Mieszasz bez sensu przyrostowe z absolutnymi z dodatkiem G28 i dziwisz się że jeździ gdzie chce.
A wystarczyło puścić w symulatorze żeby się nie kompromitować...

Awatar użytkownika

senio
ELITA FORUM (min. 1000)
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ę

#4

Post napisał: senio » 19 wrz 2021, 23:14

@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.

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

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7884
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Linux nie wraca na pozycję

#5

Post napisał: tuxcnc » 20 wrz 2021, 05:43

senio pisze:
19 wrz 2021, 23:14
A te procenty nie robią mu kaszany ?. Kiedyś o tym wspominałeś żeby M2 używać nie procentów.
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
ćwok123
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 4
Posty: 20
Rejestracja: 01 mar 2020, 04:11

Re: Linux nie wraca na pozycję

#6

Post napisał: ćwok123 » 20 wrz 2021, 22:35

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ć


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2123
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: Linux nie wraca na pozycję

#7

Post napisał: qqaz » 20 wrz 2021, 22:47

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.


Autor tematu
ćwok123
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 4
Posty: 20
Rejestracja: 01 mar 2020, 04:11

Re: Linux nie wraca na pozycję

#8

Post napisał: ćwok123 » 20 wrz 2021, 22:55

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.
A gdzie to się sprawdza i co to jest??
czy będzie do tego potrzebny 2 kanałowy oscyloskop??


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2123
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: Linux nie wraca na pozycję

#9

Post napisał: qqaz » 20 wrz 2021, 23:23

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.


kamar
Lider FORUM (min. 2000)
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ę

#10

Post napisał: kamar » 21 wrz 2021, 05:54

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 :)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”