LM331-typowy przetwornik U/f f do 500 kHz, KA4151 to samo tylko f do 100kHz (zakres f ustawia się doborem rezystorów i kondensatora) i kilka elementów (7rezystorów, 2 potencjometry i 2 kondensatory ) na wyjściu generuje przebieg prostokątny o wypełnieniu 50% i częstotliwości proporcjonalnej do napięcia wejściowego z błędem liniowości 0,03%. Można dodać jeszcze optoizolację (transoptor, 2 rezystory), oczywiście dzielnik wejściowy (max 5 rezystorów i 2diody). Więc nie bardzo widzę problem z przekształceniem napięcia łuku plazmowego na postać możliwą do odczytnia przez LPT. Nie wiem tylko jaką max częstotliwość jest w stanie odczytać na wejściu LPT.
Przecież jest w składnikach .hal obsługa encodera do pomiaru prędkości wrzeciona:
prędkość wrzeciona .
Komponent thc.comp właśnie zawiera :
konwerter częstotliwości na napięcie:
// convert encoder velocity to volts
volts = (encoder_vel - scale_offset) * vel_scale;
mechanizm porównawczy:
88 if(torch_on && arc_ok && vel_status){ // allow correction
89 if((volts + voltage_tol) > volts_requested){
90 offset += correction_vel;
91 }
92 if((volts - voltage_tol) < volts_requested){
93 offset -= correction_vel;
94 }
95 last_z_in = 0;
96 }
97 if(!torch_on){ // remove any offset
98 float z_diff;
99 z_diff = z_pos_in - last_z_in;
100 if(z_diff > 0){ // torch is moving up
101 if(offset > 0){ // positive offset
102 if(offset > z_diff){ // remove some
103 offset -= z_diff;
104 }
105 else {offset = 0;}
106 }
107 if(offset < 0){ // negative offset
108 if(offset < z_diff){ // remove some
109 offset += z_diff;
110 }
111 else {offset = 0;}
112 }
113 last_z_in = z_pos_in;
114 }
115 }
i mechanizm wykonawczy:
116 z_pos_out = z_pos_in + offset;
117 z_fb_out = z_pos_in; // keep axis motor position fb from being confused
118 }
119 if(!enable){
120 z_pos_out = z_pos_in;
121 z_fb_out = z_pos_in; // keep axis motor position fb from being confused
122 }
Marek
Znaleziono 3 wyniki
Wróć do „THC dla plazmy na LINUXCNC”
- 23 cze 2014, 07:58
- Forum: LinuxCNC (dawniej EMC2)
- Temat: THC dla plazmy na LINUXCNC
- Odpowiedzi: 5
- Odsłony: 1274
- 22 cze 2014, 18:30
- Forum: LinuxCNC (dawniej EMC2)
- Temat: THC dla plazmy na LINUXCNC
- Odpowiedzi: 5
- Odsłony: 1274
re
Przecież jest w składnikach .hal obsługa encodera do pomiaru prędkości wrzeciona:
prędkość wrzeciona
Komponent thc.comp właśnie zawiera :
konwerter częstotliwości na napięcie:
// convert encoder velocity to volts
volts = (encoder_vel - scale_offset) * vel_scale;
mechanizm porównawczy:
88 if(torch_on && arc_ok && vel_status){ // allow correction
89 if((volts + voltage_tol) > volts_requested){
90 offset += correction_vel;
91 }
92 if((volts - voltage_tol) < volts_requested){
93 offset -= correction_vel;
94 }
95 last_z_in = 0;
96 }
97 if(!torch_on){ // remove any offset
98 float z_diff;
99 z_diff = z_pos_in - last_z_in;
100 if(z_diff > 0){ // torch is moving up
101 if(offset > 0){ // positive offset
102 if(offset > z_diff){ // remove some
103 offset -= z_diff;
104 }
105 else {offset = 0;}
106 }
107 if(offset < 0){ // negative offset
108 if(offset < z_diff){ // remove some
109 offset += z_diff;
110 }
111 else {offset = 0;}
112 }
113 last_z_in = z_pos_in;
114 }
115 }
i mechanizm wykonawczy:
116 z_pos_out = z_pos_in + offset;
117 z_fb_out = z_pos_in; // keep axis motor position fb from being confused
118 }
119 if(!enable){
120 z_pos_out = z_pos_in;
121 z_fb_out = z_pos_in; // keep axis motor position fb from being confused
122 }
Marek
prędkość wrzeciona
Komponent thc.comp właśnie zawiera :
konwerter częstotliwości na napięcie:
// convert encoder velocity to volts
volts = (encoder_vel - scale_offset) * vel_scale;
mechanizm porównawczy:
88 if(torch_on && arc_ok && vel_status){ // allow correction
89 if((volts + voltage_tol) > volts_requested){
90 offset += correction_vel;
91 }
92 if((volts - voltage_tol) < volts_requested){
93 offset -= correction_vel;
94 }
95 last_z_in = 0;
96 }
97 if(!torch_on){ // remove any offset
98 float z_diff;
99 z_diff = z_pos_in - last_z_in;
100 if(z_diff > 0){ // torch is moving up
101 if(offset > 0){ // positive offset
102 if(offset > z_diff){ // remove some
103 offset -= z_diff;
104 }
105 else {offset = 0;}
106 }
107 if(offset < 0){ // negative offset
108 if(offset < z_diff){ // remove some
109 offset += z_diff;
110 }
111 else {offset = 0;}
112 }
113 last_z_in = z_pos_in;
114 }
115 }
i mechanizm wykonawczy:
116 z_pos_out = z_pos_in + offset;
117 z_fb_out = z_pos_in; // keep axis motor position fb from being confused
118 }
119 if(!enable){
120 z_pos_out = z_pos_in;
121 z_fb_out = z_pos_in; // keep axis motor position fb from being confused
122 }
Marek
- 22 cze 2014, 10:46
- Forum: LinuxCNC (dawniej EMC2)
- Temat: THC dla plazmy na LINUXCNC
- Odpowiedzi: 5
- Odsłony: 1274
THC dla plazmy na LINUXCNC
John Thornton opublikował thc.comp , niestety z wykorzystaniem karty Mesa 5i20. Tym co podoba mi się w tym rozwiązaniu (oczywiście poza wykorzystaniem karty Mesa) to to że funkcje THC są realizowane całkowicie przez AXIS (ustawienia parametrów i regulacje thc) czyli można skorzystać z przykładowych konfiguracji np THC300 czy MP1000 i mieć wszystkie parametry i ustawienia na jednym ekranie, oraz możliwość sterowania THC bezpośrednio przez Gcode np. przy zwalnianiu posuwu na końcu konturu.
Do przetworzenia napięcia łuku na częstotliwość można wykorzystać prosty układ na LM331/KA4151 i podpiąć do AXIS jak enkoder prędkości wrzeciona
"Tylko"
dobre tylko nie umiem pozmieniać plików .hal aby zamiast karty MESA wykorzystać LPT.
Co prawda John Thornton pisze że LPT może mieć zbyt małą prędkość reakcji ale sprawdzić nie zaszkodzi.
Marek
Do przetworzenia napięcia łuku na częstotliwość można wykorzystać prosty układ na LM331/KA4151 i podpiąć do AXIS jak enkoder prędkości wrzeciona
"Tylko"

Co prawda John Thornton pisze że LPT może mieć zbyt małą prędkość reakcji ale sprawdzić nie zaszkodzi.
Marek