Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

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

Autor tematu
Adast
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 4
Rejestracja: 29 kwie 2020, 19:28

Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#1

Post napisał: Adast » 29 kwie 2020, 19:55

Witam, piszę jako nowy na forum mimo ze juz kilka lat czytam.
Przerobiłem małą tokarkę na CNC i mam problem z gwintowaniem.
Próbowałem macha i nie trafia w zwój mimo wypróbowania kilku wersji.
Testowałem Turbocnc i jest lepiej ale nie satysfakcjonuje mnie rozmierzanie narzędzi
i interface.
Teraz wziąłem się za Linuksa i na indeksie, mimo że w oscyloskopie hala widać sygnał
nie rusza do gwintu oraz nie przyjmuje posuwu na obrót.
konfigurowałem ze stepconfiga. Na razie wpisy w Halu to trochę czarna magia, podejrzewam że
trzeba coś dopisać.
Jutro postaram się zamieścić pliki ini i hal.
maszyna oczywiście na LPT jitter ok. 15000-20000.
pozdrawiam Adam



Awatar użytkownika

senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#2

Post napisał: senio » 30 kwie 2020, 09:47

1. W configu 3 piny oznaczone dla enkodera np 11,12 i 13 jako kolejno faza A B i Index - czyli pojedynczy otwór.

2. Negujesz - czyli klikasz "odwróć" przy jednej dowolnej fazie

3. Klikasz dalej, i w ostatniej karcie wpisujesz liczbę sygnałów czyli liczbę otworów w tarczy


Autor tematu
Adast
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 4
Rejestracja: 29 kwie 2020, 19:28

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#3

Post napisał: Adast » 30 kwie 2020, 11:28

Próbowałem i nie działa, nie mam dalszego okienka po zdefiniowaniu pinów.
Moja wersja Linuxa to2.7.14 . zamieszczam do sprawdzenia cały mój config
w folderze jest wszystko łącznie z programikiem testowym .
https://drive.google.com/file/d/1MJll-9 ... sp=sharing
Jak się nauczę w tych okienkach wpisywać tekst to udostępnię tylko który plik ?

Awatar użytkownika

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

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#4

Post napisał: tuxcnc » 30 kwie 2020, 18:05

Adast pisze:
29 kwie 2020, 19:55
Próbowałem macha i nie trafia w zwój mimo wypróbowania kilku wersji.
Ten fragment twojej wypowiedzi mocno mnie zastanawia, bo co prawda nie jestem fanem Macha, ale w takie cuda to nie wierzę.
Może popełniasz jakiś zupełnie inny błąd, no nie wiem, pomyliłeś indeks z którąś fazą, albo jesteś przekonany że enkoder ma inne właściwości niż rzeczywiście.
Jeśli coś nie chce działać nigdzie, to musi być jakaś taka głupia przyczyna ...

Uruchom http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ort_Tester i pokręcaj wrzeciono ręką.
"Lampki" Faz powinny migać "pierwsza, obie, druga, żadna ...", indeks powinien się zaświecać na chwilę, raz na obrót.
Oprócz braku indeksu przyczyną niedziałania posuwu synchronizowanego (G33 itp.) może też być odwrócona faza indeksu, wtedy zamiast net spindle-index <= parport.0.pin-15-in trzeba wpisać net spindle-index <= parport.0.pin-15-in-not
Poza tym, to nie bardzo rozumiem po co masz zanegowaną jedna fazę enkodera, to daje dokładnie tyle, że enkoder "liczy" w drugą stronę.

Awatar użytkownika

senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#5

Post napisał: senio » 30 kwie 2020, 20:29

tuxcnc pisze:
30 kwie 2020, 18:05
Ten fragment twojej wypowiedzi mocno mnie zastanawia, bo co prawda nie jestem fanem Macha, ale w takie cuda to nie wierzę.
Miałem to samo u siebie na Linuxie. Gdzieś po roku pracy tokarka nagle "zaczęła robić gwinty po swojemu". Sprawa prosta ale chwilę się głowiłem co jest grane. Na oscyloskopie były jajca. Mam na płytce enkodera od Marka układy w podstawkach. Jeden po prostu nie łączył i krzaczyło. Wyjąłem przemyłem izopropanolem wszystkie układy i podstawki, włożyłem i działa do dzisiaj już kilka lat.


Autor tematu
Adast
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 4
Rejestracja: 29 kwie 2020, 19:28

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#6

Post napisał: Adast » 30 kwie 2020, 21:47

Mam tylko indeks na wrzecionie, mach nie obsługuje enkodera.
Ktoś pisał że mu linux działał tylko z indeksem wrzeciona, w
HAL widać dobrze ten index. Sygnał na pewno jest dobry.
Zresztą w TURBOCNC gwint był dobry, na tym samym sprzęcie, tylko ten interfejs.
Podajcie jakiś działający config i hal żebym mógł porównać.

Awatar użytkownika

senio
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1459
Rejestracja: 25 maja 2006, 14:39
Lokalizacja: koło.wlkp

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#7

Post napisał: senio » 30 kwie 2020, 22:14

Masz hal od mojej tokarki

Kod: Zaznacz cały

# Generated by stepconf 1.1 at Wed Feb 18 18:38:15 2015
# Jeśli zmodyfikujesz ten plik zmainy zostaną
# nadpisane gdy uruchomisz ponownie Stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt encoder num_chan=1
loadrt pwmgen output_type=1

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf encoder.update-counters base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread


net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-at-speed => motion.spindle-at-speed
net spindle-cw <= motion.spindle-forward
net coolant-flood <= iocontrol.0.coolant-flood

setp encoder.0.position-scale 144.000000
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable
net spindle-phase-a encoder.0.phase-A
net spindle-phase-b encoder.0.phase-B
net spindle-index encoder.0.phase-Z

net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-03-out-invert 1
net xdir => parport.0.pin-03-out

net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir => parport.0.pin-07-out
setp parport.0.pin-07-out-invert 1

net cstep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 1
net cdir => parport.0.pin-05-out
net coolant-flood => parport.0.pin-08-out

net spindle-index <= parport.0.pin-11-in
net spindle-phase-a <= parport.0.pin-12-in-not
net spindle-phase-b <= parport.0.pin-13-in

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 60000
setp stepgen.0.dirsetup 60000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_2]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 60000
setp stepgen.1.dirsetup 60000
setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable axis.2.amp-enable-out => stepgen.1.enable

setp stepgen.2.position-scale [AXIS_5]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 35000
setp stepgen.2.dirsetup 35000
setp stepgen.2.maxaccel [AXIS_5]STEPGEN_MAXACCEL
net cpos-cmd axis.5.motor-pos-cmd => stepgen.2.position-cmd
net cpos-fb stepgen.2.position-fb => axis.5.motor-pos-fb
net cstep <= stepgen.2.step
net cdir <= stepgen.2.dir
net cenable axis.5.amp-enable-out => stepgen.2.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

Awatar użytkownika

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

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#8

Post napisał: tuxcnc » 01 maja 2020, 08:20

Adast pisze:
30 kwie 2020, 21:47
Mam tylko indeks na wrzecionie, mach nie obsługuje enkodera.
Ktoś pisał że mu linux działał tylko z indeksem wrzeciona, w
HAL widać dobrze ten index. Sygnał na pewno jest dobry.
Zresztą w TURBOCNC gwint był dobry, na tym samym sprzęcie, tylko ten interfejs.
Podajcie jakiś działający config i hal żebym mógł porównać.
No i czego się spodziewałeś ?
Że podasz parametry z sufitu i cudownie zadziała ?
W pliku TOKARKA.hal masz skonfigurowany normalny enkoder 100cpr i jeżeli taki enkoder założysz to wszystko zacznie działać.
Linuxcnc nie obsługuje gwintowania na samym indeksie, bo to daje trudne do przewidzenia rezultaty. Aczkolwiek gdy wrzeciono ma sporą masę a silnik sporą moc, to daje się nacinać drobne gwinty z małym przybraniem, ale gdy opory toczenia będą duże a wrzeciono będzie znacząco zwalniać pod obciążeniem, to będą wychodzić cuda.
Linuxcnc da się tylko oszukać, udając że istnieje enkoder wrzeciona o sygnałach A oraz Z i jednym impulsie na obrót.
Robi się to tak :

Kod: Zaznacz cały

net encoder-output parport.0.pin-15 => encoder.0.phase-Z encoder.0.phase-A
setp encoder.0.counter-mode 1
setp encoder.0.position-scale 1
Oczywiście przy założeniu że sygnał z czujnika masz faktycznie na pinie 15.
Musisz też pousuwać lub zakomentować niektóre inne wpisy dotyczące pinów enkodera, bo Ci będzie wywalało błąd przy starcie.
Nie chce mi się tego sprawdzać u siebie, bo szkoda czasu na takie rzeczy. Zrobienie przyzwoitego enkodera kwadraturowego to niewielki wysiłek oraz nakład pracy i środków, a efekt jest nieporównywalny. Ekstra dostajesz jeszcze możliwość użycia G33.1


Autor tematu
Adast
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 4
Posty: 4
Rejestracja: 29 kwie 2020, 19:28

Re: Gwintowanie oraz posuw na obrót tylko z indeksem problemw ustawieniu.

#9

Post napisał: Adast » 01 maja 2020, 12:08

Dziękuję za wyjaśnienie, spróbuję założyć enkoder mam na 100 impulsów tylko trochę z montażem problem, musiałem dać wydrukować dwa koła pasowe zębate.
Ciekawi mnie jeszcze posuw na obrót G95 bo też nie chce ruszyć. Jak będzie enkoder to może zadziała.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”