Układ zamieniający impulsy na wartość napięcia 0-10V

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 19
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#81

Post napisał: noel20 » 12 paź 2013, 15:35

Rozumiem, że to moje dane?
Na wykresie ładnie to wygląda, ale powiedzmy akurat w okolicy 50% wypełnienia, dla np chińczyka na wodzie zmiana wartości wyjściowego napięcia analogowego o 0,5V powoduje, rozbieżność prędkości obrotowej o ponad 1000 obr/min.
Choć jak sobie pomyślę, to najpewniej nie ma to znaczenia przy większości obróbek bo i tak wrzeciono pod obciążeniem bardziej zwalnia.
P.S. Dzięki za wykres. Mi się robić go nie chciało :P

[ Dodano: 2013-10-12, 15:53 ]
Marckomp, ktoś wspominał wcześniej, że masz taki układ zmieniający pwm na dc. Współpracuje on z takim przebiegiem z linuxa?
A może w linuxie da się zmienić, żeby zmieniając prędkość wrzeciona w programie zmieniała się częstotliwość, a nie wypełnienie?



Tagi:

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 18
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#82

Post napisał: markcomp77 » 12 paź 2013, 17:04

noel20 pisze:A może w linuxie da się zmienić, żeby zmieniając prędkość wrzeciona w programie zmieniała się częstotliwość, a nie wypełnienie?
tak
tylko konfiguracje hal generaowaną ze stepgen trzeba zmodyfikować
tj. zamienić moduł pwngen na coś co generuje częstotliwość proporcjonalną do chcianego napięcia...

[ Dodano: 2013-10-12, 17:07 ]

Kod: Zaznacz cały

linuxcnc-dev/linuxcnc-dev/src/hal/components$ ls *.c
at_pid.c    encoder_ratio.c  mux_generic.c  siggen.c        supply.c
boss_plc.c  freqgen.c        pid.c          sim_encoder.c   threads.c
counter.c   lcd.c            pwmgen.c       stepgen.c       watchdog.c
debounce.c  matrix_kb.c      sampler.c      streamer.c      weighted_sum.c
encoder.c   modmath.c        sampler_usr.c  streamer_usr.c
tyle mamy do wybodu

[ Dodano: 2013-10-12, 17:18 ]
siggen.c
'siggen.c', is a HAL component that generates square, triangle, sine, cosine, and sawtooth waves. I expect that it will mostly be used for testing. It is a realtime component.

It supports any number of signal generators, as set by the insmod parameter 'num_chan'. Alternatively,use the names= specifier and a list of unique names separated by commas. The names= and num_chan= specifiers are mututally exclusive.

Each generator has a number of pins and parameters, whose names begin with 'siggen.x.', where 'x' is the generator number.
Generator numbers start at zero.

Each generator is controlled by three pins. 'frequency' sets the frequency in Hertz. 'amplitude' sets the peak amplitude, and 'offset' sets the DC offset. For example, if 'amplitude' is 1.0 and 'offset' is 0.0, the outputs will swing from -1.0 to +1.0. If 'amplitude' is 2.5 and 'offset' is 10.0, then the outputs will swing from 7.5 to 12.5.

There are six output pins: 'square', 'triangle', 'sine', 'cosine', 'clock', and 'sawtooth'. All six run at the same frequency, amplitude, and offset.

This component exports one function per signal generator, called 'siggen.x.update'. It is a floating point function.


[ Dodano: 2013-10-12, 17:21 ]
stepgen.c
'stepgen.c', is a HAL component that provides software based step pulse generation. The maximum step rate will depend on the speed of the PC, but is expected to exceed 5KHz for even the slowest computers, and may reach 25KHz on fast ones. It is a realtime component.

It supports up to 16 pulse generators. Each generator can produce several types of outputs in addition to step/dir, including quadrature, half- and full-step unipolar and bipolar, three phase,
and five phase. A 32 bit feedback value is provided indicating the current position of the motor in counts (assuming no lost steps), and a floating point feedback in user specified position units is also provided.


[ Dodano: 2013-10-12, 17:23 ]
freqgen.c
'freqgen.c', is a HAL component that generates step pulses at a specific frequency in software. The maximum step rate will depend on the speed on the PC, but is expected to exceed 1KHz for even the slowest computers, and may reach 10KHz on fast ones. It is a realtime component.

Note that this is _not_ the preferred step pulse generator for EMC2. This module simply generates a frequency (velocity). A separate PID or other loop is needed to turn EMC's position commands into velocity commands, and the PID loop needs to be tuned, which adds unneccessary complexity to the machine setup. For EMC and other applications that use position instead of velocity commands, the component "stepgen" is preferred. It contains a built in, pre-tuned position to velocity converter. This module is provided only for special cases where it is more appropriate.
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 19
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#83

Post napisał: noel20 » 12 paź 2013, 19:11

tylko konfiguracje hal generaowaną ze stepgen trzeba zmodyfikować
tj. zamienić moduł pwngen na coś co generuje częstotliwość proporcjonalną do chcianego napięcia..
Fajnie, że można, ale przyznaje bez bicia, że nie wiem ja to zrobić.
Gdzie szukać tych plików? Wyszukiwarka nie znalazła pwmgen.c

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 18
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#84

Post napisał: markcomp77 » 12 paź 2013, 19:24

pwmgen.c to plik źródłowy komponenta HAL, o którym nie koniecznie trzeba wiedzieć...
jednak w tym pliku najlepiej opisane jest jak działa PwnGen...
Plik ten znajduje się w katalogu pozostałych komponentów hal:

Kod: Zaznacz cały

...linuxcnc-dev/src/hal/components
w wersji źródłowej... oczywiście

poza czytaniem tam informacji, nic nie trzeba z tym robić
nie trzeba przekompilowywać...

w tym miejscu znajdują sie również komponenty pozwalające na generowanie sygnału częstotliwości (przynajmniej trzy mogą to robić: siggen.c, stepgen.c, freqgen.c)

naszym zadaniem będzie modyfikowanie plików *.hal z katalogu konfiguracji naszej maszyny
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 26
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#85

Post napisał: mc2kwacz » 12 paź 2013, 20:47

W tym układzie, to chyba wszystko co się tylko dało jest źle zrobione albo bez sensu :roll:

Awatar użytkownika

Zienek
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 3730
Rejestracja: 13 gru 2008, 19:32
Lokalizacja: Szczecin
Kontakt:

#86

Post napisał: Zienek » 12 paź 2013, 20:48

To popraw. I napisz co było źle i dlaczego.

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 19
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#87

Post napisał: noel20 » 18 paź 2013, 22:24

Poradziłem się odpowiednich osób i w skrócie nieliniowość wcześniej zaprezentowanego układu wynikała ze zbędnego użycia dławików i tranzystora typu darlington.
Teraz zrobiłem taki układ za ich poradą:
Obrazek
Dodatkowo w linuxie ustawiłem offsety. Dolny na 0,02 a górny na 19900. Układ ma liniowość na poziomie 1%:
Obrazek
Aha, i napięcie podaję na tranzystor 10,6V


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 26
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#88

Post napisał: mc2kwacz » 19 paź 2013, 01:03

No widzisz. Jak jeszcze byś usunął zbędny T1 (zapytaj "odpowiednie osoby" po co on tam jest, chętnie się dowiem), to miałbyś prawie układ który proponowałem, bez zbędnych kilku stron dyskusji. :roll:


251mz
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 4478
Rejestracja: 27 sie 2004, 21:59
Lokalizacja: Polska

#89

Post napisał: 251mz » 19 paź 2013, 08:23

T1 wprawdzie byłby zdatny jak byś sterował jakimś większym prądem.
Ale do sterowaniem falownikiem potrzebne jest chyba 5mA więc tranzystor w transoptorze radzi sobie spokojnie :)

Ogólnie tutaj poprę kolegę mc2kwacz,
Wystarczyłby transoptor i 5 elementów biernych ....

Awatar użytkownika

Autor tematu
noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 19
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#90

Post napisał: noel20 » 19 paź 2013, 20:28

Tylko trzeba prąd puścić przez ten tranzystor optopizolatora i stabilizować go na emiterze. Nie wiem czy to poprawne rozwiązanie. A tak w tym układzie T1 neguje sygnał, bo po opto też jest zanegowany.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”