Enkoder wrzeciona tokarki Linux cnc problem - Tub 32

Dyskusje dotyczące toczenia, remontów, modernizacji, narzędzi. Tokarki konwencjonalne.

Autor tematu
kris79
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 208
Rejestracja: 22 lis 2006, 20:12
Lokalizacja: Poznań

Enkoder wrzeciona tokarki Linux cnc problem - Tub 32

#1

Post napisał: kris79 » 27 sie 2015, 21:45

Witam.
Przerabiam tokarkę na cnc i mam problem z uruchomienim enkodera wrzeciona.
Enkoder wykonałem sam tak jak w tym temacie
https://www.cnc.info.pl/topics54/enkode ... om_postgui

Obraz na oscyloskopie w HAL jest ok. Natomiast nie zdziała mi gwintowanie oraz nie wyświetla się prędkość obrotowa wrzeciona.

W pliku tokarki.ini mam:

Kod: Zaznacz cały

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 30000
SERVO_PERIOD = 1000000

[HAL]
HALUI = halui
HALFILE = Tokarka_TUB32.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[HALUI]
# dodaj polecenia halui MDI (maks 64) 

[TRAJ]
AXES = 3
COORDINATES = X Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 5.00
MAX_LINEAR_VELOCITY = 20.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl 
W pliku tokarka.hal mam:

Kod: Zaznacz cały

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0
loadrt encoder num_chan=1
loadrt pwmgen output_type=1

#KW add scale and lowpass, these will be used in custom_postgui.hal
loadrt scale count=1
loadrt lowpass count=1
loadrt abs count=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 0.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

#KW set the HAL encoder to 40 pulses per revolution.
setp encoder.0.position-scale 40

#KW connect the HAL encoder outputs to LinuxCNC.
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 xdir => parport.0.pin-02-out
setp parport.0.pin-09-out-reset 1
net zstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net zdir => parport.0.pin-06-out
net xstep => parport.0.pin-09-out
net spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out


net estop-ext <= parport.0.pin-15-in

#KW connect the HAL encoder inputs to the real encoder.
net spindle-index encoder.0.phase-Z <= parport.0.pin-11-in
net spindle-phase-a encoder.0.phase-A <= parport.0.pin-10-in
net spindle-phase-b encoder.0.phase-B <= parport.0.pin-12-in


setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 20000
setp stepgen.0.dirsetup 20000
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 20000
setp stepgen.1.dirsetup 20000
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

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => 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
w pliku custom_postgui.xml mam:

Kod: Zaznacz cały

# Tutaj dodaj swoje polecenia HAL
# Polecenia w tym pliku są wykonywane po uruchomieniu AXIS GUI (włączając panel PyVCP)

#sets spindle-at-speed true

#### The following code goes in custom_postgui.hal 
 
# **** Setup of spindle speed display using pyvcp -START ****
# **** Use ACTUAL spindle velocity from spindle encoder
# **** spindle-velocity bounces around so we filter it with lowpass
# **** spindle-velocity is signed so we use absolute component to remove sign
# **** ACTUAL velocity is in RPS not RPM so we scale it.
 
setp scale.0.gain 40
setp lowpass.0.gain 0.010000
net spindle-velocity => lowpass.0.in
net spindle-fb-filtered-rps lowpass.0.out => abs.0.in
net spindle-fb-filtered-abs-rps abs.0.out => scale.0.in
net spindle-fb-filtered-abs-rpm scale.0.out => pyvcp.spindle-speed
 
sets spindle-at-speed true
net spindle-at-speed       => pyvcp.spindle-at-speed-led
natomiast w pliku custompanel.xml mam:

Kod: Zaznacz cały

<?xml version='1.0' encoding='UTF-8'?>
<pyvcp>
         <vbox>       
         <bd>6</bd>
                <label>
                        <text>"Spindle Speed:"</text>
                        <font>("Helvetica",20)</font>
                </label>
                <bar>
                        <halpin>"spindle-speed"</halpin>
                        <max_>1000</max_>
                </bar>
                <label>
                        <text>"Spindle-At-Speed:"</text>
                        <font>("Helvetica",20)</font>
                </label>
                <hbox>
                    <label>
                            <text>"             "</text>
                            <font>("Helvetica",20)</font>
                    </label>
                    <led>
                        <halpin>"spindle-at-speed-led"</halpin> 
                        <size>30</size> 
                        <on_color>"green"</on_color>
                        <off_color>"red"</off_color>
                    </led>
                </hbox>
        </vbox>
</pyvcp>
co mam źle ustawione?
Już nie mam pomysłu co może być nie tak.



Tagi:


jarucki
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 818
Rejestracja: 11 sty 2011, 23:40
Lokalizacja: okolice nałęczowa

#2

Post napisał: jarucki » 01 wrz 2015, 09:16

Stepconf uruchom i zaznacz aby pokazywalo prędkość. Jesli sygnał jest widoczny to sprawdź polaczenia czy przypadkiem nie zamieniłeś kabli względem fazy A B oraz indexu. Zaznacz odznacz ptaszki podczas konfiguracj (stepconf wybór, przypisywanie portów lpt)
Skoro oscyloskop widzi to musi być odzew.
Może linijka gcodu jest nie poprawna czy używasz suba?


Autor tematu
kris79
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 208
Rejestracja: 22 lis 2006, 20:12
Lokalizacja: Poznań

#3

Post napisał: kris79 » 02 wrz 2015, 21:25

Dzięki za podpowiedź.
Uruchomiłem jeszcze raz stepconf i teraz wyświetla mi się prędkość obrotowa natomiast jak włączę suba kamara do gwintowania, to dojeżdza suport do miejsca rozpoczęcia gwintu, ale nie gwintuje tylko stoi w miejscu pomimo że się kręci wrzeciono.

Jak wpisałem komendę G33 Z-20 K3 to mam komunikat, że nie obsługuje tego wrzeciono czy coś w ym rodzaju (teraz nie pamiętam dokładnie)

co może być przyczyną że nie gwintuje?

Zauważyłem, że obroty lekko skaczą na licznik obrotów, czy powinny stać w miejscu?


jarucki
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 818
Rejestracja: 11 sty 2011, 23:40
Lokalizacja: okolice nałęczowa

#4

Post napisał: jarucki » 02 wrz 2015, 21:50

Nie będzie gwintowało jezeli np zamienisz fazę A z indexem a w stepconf tego nie oznaczysz. Jezeli np wszystko dobrze podlaczyles i przypisales należycie do odpowiednich portów lpt to pozostaje pobawic sie jeszcze checkboxami (znajdują sie podczas przypisywania portów lpt no fazy A B indexu)
Jeżeli nadal nie działa to być może cos nie halo z enkoderem.

Może wróćmy do początku jaki enkoder konkretnie zamontowałeś!
A cofając sie jeszcze wczesniej dlaczego jeszcze nie ma tematu z twoja tokarką po przeróbce na cnc!!!
Dawaj zdjęcia!!!


Autor tematu
kris79
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 208
Rejestracja: 22 lis 2006, 20:12
Lokalizacja: Poznań

#5

Post napisał: kris79 » 03 wrz 2015, 21:36

Czy to znaczy że jeśli zamieniłem fazę A z indeksem czyli w stepconfie np. mam podany zły pin do indeksu tak? Jak to najłatwiej sprawdzić?
Enkoder mam własnej roboty tarcza z aluminium i 3 transoptory szczelinowe. Jeden otwór w enkoderze jest dłuższy jako index.
Natomiast tematu nie ma, bo jeszcze nie skończyłem i nie mam czasu za bardzo na opisywanie i wstawianie zdjęć. Chciałem wstawić kilka zdjęć , ale mam komunikat że Załącznik-obraz musi być mniejszy niż 600 pixeli szerokości i 800 pixeli wysokości pomimo, że zmniejszyłem zdjęcia do 600x400. Bez sensu to jest. Daj na priv maila, to Ci wyślę parę zdjęć.


jarucki
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 818
Rejestracja: 11 sty 2011, 23:40
Lokalizacja: okolice nałęczowa

#6

Post napisał: jarucki » 03 wrz 2015, 21:46

kris79 pisze:Czy to znaczy że jeśli zamieniłem fazę A z indeksem czyli w stepconfie np. mam podany zły pin do indeksu tak? Jak to najłatwiej sprawdzić?.
Dokładnie TAK bynajmniej ja też tak miałem w jednym przypadku w innym nie działał mi Index....
jak najłatwiej sprawdzić polecieć po kabelkach :D port LPT masz opisany pinami (przyjrzyj się dobrze złączu)
kris79 pisze: Natomiast tematu nie ma, bo jeszcze nie skończyłem i nie mam czasu za bardzo na opisywanie i wstawianie zdjęć. Chciałem wstawić kilka zdjęć , ale mam komunikat że Załącznik-obraz musi być mniejszy niż 600 pixeli szerokości i 800 pixeli wysokości pomimo, że zmniejszyłem zdjęcia do 600x400. Bez sensu to jest. Daj na priv maila, to Ci wyślę parę zdjęć.
klikającj odpowiedź poniżej okna w którym piszesz wiadomość do społeczności forum masz wyjustowanym drugim napis "Kliknij tutaj aby wgrać zdjęcia i wstawić w treść posta
Kliknij na niego i wgraj zdjęcia
sprawdź połaczenia kabli czy niczego nie pomieszałeś :) Zdjęcia wstaw bo to może pomóc Tobie :)
Ładuj zdjęcia bo będzie łatwiej może masz nie tak zrobioną tarcze enkodera albo inna błahostka, po to jest forum :)

Awatar użytkownika

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

#7

Post napisał: senio » 03 wrz 2015, 22:41

kris79 pisze:Enkoder mam własnej roboty tarcza z aluminium i 3 transoptory szczelinowe. Jeden otwór w enkoderze jest dłuższy jako index.
Podałeś w konfiguracji ile masz otworów w tarczy ?

Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

#8

Post napisał: adam Fx » 03 wrz 2015, 22:53

Jak dodawać zdjęcia https://www.cnc.info.pl/topics16/dodawa ... t54481.htm
Co do enkodera czy przy srebrnej tarczy nie masz problemów ze lewymi sygnałami zawsze maluje na czarno.
Ustaw tarcze okienkiem INDEX na transoptorze INDEX i ręcznie poruszaj wrzecionem prawo lewo i patrz czy miga odpowiednia dioda (tzn. przypisana indexowi) na płycie głównej



Nawet bez silnika przy poprawnej funkcji powinien działać tak

w zał. konfig z tej tokarki ... możesz sobie porównać mój konfig - polecam do tego celu WinMerge

[ Dodano: 2015-09-03, 22:56 ]
zał
Załączniki
config6 ostateczny.rar
(25.95 KiB) Pobrany 250 razy
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos


Autor tematu
kris79
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 208
Rejestracja: 22 lis 2006, 20:12
Lokalizacja: Poznań

#9

Post napisał: kris79 » 04 wrz 2015, 17:40

Dziękuję wszystkim za podpowiedzi zaraz idę walczyć i jutro dam znać czy mi wyszło.
poniżej parę zdjęć:
Jak wyglądała na początku i jak wygląda teraz. Tokarka była skrobana ręcznie.

Obrazek

Obrazek

Obrazek

Obrazek

[ Dodano: 2015-09-05, 15:43 ]
No i wreszcie się udało dzięki waszej pomocy :)
Dzisiaj zrobiłem pierwszy gwint m12x1,75.

Mam parę pytań.
1. wpisałem w głębokość gwintowania 1,5 mm i zrobiło mi za płytki gwint, dopiero jak wpisałem 3mm to dało się nakrętkę wkręcić chociaż wydaje się być lekko za głęboko (są ostre wierzchołki gwintu). Czy ta głębokość ma być wpisywana razy 2?

2. Po zakończeniu gwintowania nóż pozostał na końcu gwintu i nie wrócił do miejsca skąd zaczął. Jak komenda wraca nóż do pozycji początkowej - g28 wraca do pozycji home.

3. Czy można kręcić wrzecionem ręką bądź automatycznie w przerwie między jednym gwintowaniem, a poprawieniem gwintu drugi raz? - czy trafi w tą samą nitkę gwintu?
Czego nie można robić, żeby nie zgubił "nitki gwintu"?


jarucki
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 6
Posty: 818
Rejestracja: 11 sty 2011, 23:40
Lokalizacja: okolice nałęczowa

#10

Post napisał: jarucki » 05 wrz 2015, 16:57

Ladna osłona na śrubeczkę kulowa :)

Jak gwintowanie? Gada?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Toczenie / Tokarki Konwencjonalne”