rozważania o CNC

Maj 21, 2018, 03:28:50
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Strony: [1]   Do dołu
  Drukuj  
Autor Wątek: M67, 68 - sterowanie wyjściem analogowym (przez PWM)  (Przeczytany 2832 razy)
markcomp
Administrator
*****
Offline Offline

Wiadomości: 10869



WWW
« : Czerwiec 20, 2011, 05:18:26 »

sterowanie wyjściem analogowym


na poczatku pliku HAL znajduje się linia ładowania "motmod"
Cytuj
loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] [traj_period_nsec=period]
[num_joints=[0-9]] ([num_dio=[1-64]] [num_aio=[1-16]])

gdzie musimy zarezerwować ilość wyjść analogowych za pomocą "num_aio"

przekazanie parametrów z linii gcodu

M67( 8 )  E-NN Q-WAR

gdzie:
NN - numer wyjscia analogowego
WAR - wartość dla wyjścia analogowego

WAR do zmiennej: motion.analog-out-NN

przekazanie motion.analog-out-NN do generatora PWM

net pwm-NN <= motion.analog-out-NN => pwmgen.NN.value

zmienna pwmgen.NN.value wpływa na współczynnik wypełnienia generatora PWM


« Ostatnia zmiana: Czerwiec 20, 2011, 05:29:34 wysłane przez markcomp » Zapisane

markcomp
Administrator
*****
Offline Offline

Wiadomości: 10869



WWW
« Odpowiedz #1 : Czerwiec 20, 2011, 05:34:49 »

Przykład:

M67 E0 Q1000

w pliku HAL

loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses base-thread
net pwm-value-0 <= motion.analog-out-0 => pwmgen.0.value
setp pwmgen.0.enable 1
net pwm-0 pwmgen.0.pwm  parport.1.pin-09-out

jeszcze trzeba ustawić parametry generatora PWM

Cytuj
(float) pwmgen.<chan>.pwm-freq -- Desired PWM frequency, in Hz. If 0.0, generates PDM instead of PWM. If set higher than internal limits, next call of update_freq() will set it to the internal limit. If non-zero, and dither is false, next call of update_freq() will set it to the nearest integer multiple of the make_pulses() function period.

(bit) pwmgen.<chan>.dither-pwm -- If true, enables dithering to achieve average PWM frequencies or duty cycles that are unobtainable with pure PWM. If false, both the PWM frequency and the duty cycle will be rounded to values that can be achieved exactly.

czyli wystarczy ustawić zamiast PWM -> PDM (gęstości)... przetwornik PWM2DC to przełknie...

setp pwmgen.0.pwm-freq 0
« Ostatnia zmiana: Czerwiec 20, 2011, 11:14:10 wysłane przez markcomp » Zapisane

Strony: [1]   Do góry
  Drukuj  
 
Skocz do:  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC
Manuscript design by Bloc Strona wygenerowana w 0.041 sekund z 17 zapytaniami.