Strona 1 z 1

spindle speed

: 17 paź 2024, 16:34
autor: jasiekk7
Czy ktoś wie dlaczego nie wyświetla się w ogóle "spindle speed" (realne obroty wrzeciona)?
Sygnały faza: A, faza B, index podłączone, w halshow podglądam encoder.0 i dobrze wskazuje obroty ale nie umiem tego sygnału przekazać do kontrolki "spindle speed".

Enkoder własnej roboty, 55 impuslów na obrót (tokarka, max obroty 2000rpm) - ale to nie ma znaczenia skoro obroty są.

Kod: Zaznacz cały

# Generated by stepconf 1.1 at Fri Jan 26 23:38:54 2024
# Jeśli zmodyfikujesz ten plik zmainy zostaną
# nadpisane gdy uruchomisz ponownie Stepconf
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hal_parport cfg="0xdcf8 out 0x0378 in"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0
loadrt encoder num_chan=1
loadrt pwmgen output_type=1

addf parport.0.read base-thread
addf parport.1.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 parport.1.write 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-rpm => pwmgen.0.value
net spindle-on <= spindle.0.on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 1000.0
setp pwmgen.0.scale 2000.0
setp pwmgen.0.offset 0.0
setp pwmgen.0.dither-pwm true
net spindle-cmd-rpm     <= spindle.0.speed-out
net spindle-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-cmd-rps     <= spindle.0.speed-out-rps
net spindle-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-at-speed    => spindle.0.at-speed

setp encoder.0.position-scale 55
setp encoder.0.counter-mode true
net spindle-position encoder.0.position => spindle.0.revs
net spindle-velocity-feedback-rps encoder.0.velocity => spindle.0.speed-in
# net spindle-velocity encoder.0.velocity => spindle.0.speed-in
net spindle-index-enable encoder.0.index-enable <=> spindle.0.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 estop-out       => parport.0.pin-01-out
net zstep           => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir            => parport.0.pin-07-out
net xstep           => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net xdir            => parport.0.pin-09-out
net xenable         => parport.0.pin-14-out
net spindle-pwm     => parport.0.pin-16-out


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

net spindle-phase-a encoder.0.phase-A <= parport.1.pin-05-in-not
net spindle-phase-b encoder.0.phase-B <= parport.1.pin-07-in-not
net spindle-index encoder.0.phase-Z <= parport.1.pin-10-in-not


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

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

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

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

Re: spindle speed

: 22 lis 2024, 08:45
autor: irischamplin
Wygląda na to, że problem może leżeć w interpretacji sygnału enkodera lub rzeczywistej konfiguracji sterowania. Sprawdź, czy sygnały enkodera są dokładnie mapowane na sterowanie „prędkością wrzeciona” i czy parametry w oprogramowaniu sterującym wrzecionem są ustawione poprawnie. Aby mieć pewność, że system odczytuje RPM dokładnie, może być konieczne skonfigurowanie odpowiedniego skalowania lub resolverów. Daj mi znać, jeśli potrzebujesz innej pomocy!

Re: spindle speed

: 22 lis 2024, 10:45
autor: tuxcnc
jasiekk7 pisze:
17 paź 2024, 16:34
nie umiem tego sygnału przekazać do kontrolki "spindle speed".
I czego oczekujesz?
Że ktoś nauczy się za Ciebie?
jasiekk7 pisze:
17 paź 2024, 16:34

Kod: Zaznacz cały

setp encoder.0.position-scale 55
setp encoder.0.counter-mode true
encoder.N.counter-mode bit rw

Enables counter mode. When true, the counter counts each rising edge of the phase-A input, ignoring the value on phase-B. This is useful for counting the output of a single channel (non-quadrature) sensor. When false (the default), it counts in quadrature mode. encoder.N.capture-position.tmax s32 rw Maximum number of CPU cycles it took to execute this function.
Zbudowałeś enkoder kwadraturowy, i zamiast skorzystać z czterokrotnie większej rozdzielczości i rozpoznawania kierunku, podłączyłeś go jako zwykły licznik korzystający z jednego kanału....

Re: spindle speed

: 22 lis 2024, 11:12
autor: jasiekk7
Działało to wcześniej na axis bez żadnej dodatkowej konfiguracji (ręcznej edycji plików). Potem zmieniłem na mach a teraz chciałem na gmocappy.
Konstrukcja enkodera nie ma więc znaczenia a problemem jest przepisanie wirtualnych sygnałów hal bo to nie, że źle pokazywało ale nic nie pokazywało.

Zresztą wróciłem już do axis (nie z tego powodu)

I nie - nie oczekuję, że się ktoś nauczy za mnie ale może ktoś już wie i nie jest zmanierowanym capem i się tą wiedzą podzieli.

Re: spindle speed

: 22 lis 2024, 11:57
autor: tuxcnc
jasiekk7 pisze:
22 lis 2024, 11:12
nie jest zmanierowanym capem i się tą wiedzą podzieli.
Po pierwsze, podzieliłem się wiedzą - enkoder kwadraturowy konfiguruje się jako kwadraturowy, bo są z tego bezdyskusyjne korzyści.
Po drugie, nie mam ochoty wyręczać leni, nieuków, ignorantów, a w szczególności chamów o roszczeniowym podejściu do życia.
Mam święte prawo nie mieć ochoty i nikt nie ma prawa robić mi z tego zarzutu.
EOT.

Re: spindle speed

: 22 lis 2024, 12:27
autor: jasiekk7
Masz święte prawo, dlatego nie wiem po co się odzywasz (w tym i w każdym innym wątku). Może nie zauważyłeś, ale nic od ciebie nie chcę. Liczyłem na pomocnych użytkowników forum.