THC dla plazmy na LINUXCNC

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 3
Posty: 97
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: mazowieckie

THC dla plazmy na LINUXCNC

#1

Post napisał: marekms » 22 cze 2014, 10:46

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" :lol: 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



Tagi:

Awatar użytkownika

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

#2

Post napisał: markcomp77 » 22 cze 2014, 13:12

pomysł z przetworzeniem napięcia na częstotliwość - ciekawy
pomiar częstotliwości - nie taki bardzo prosty... ale może warto przemyśleć?

gdyby jednak zrobić prosty komparator okienkowy... to mamy już gotowy przetwornik A/D... dwu-
bitowy - bit "góa" i bit "dół" ;)
marekms pisze:tylko nie umiem pozmieniać plików .hal aby zamiast karty MESA wykorzystać LPT
można popatrzeć.... powinno się dać
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm


Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 3
Posty: 97
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: mazowieckie

re

#3

Post napisał: marekms » 22 cze 2014, 18:30

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
Ostatnio zmieniony 23 cze 2014, 08:05 przez marekms, łącznie zmieniany 1 raz.


jacek-1210
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1023
Rejestracja: 25 mar 2011, 20:16
Lokalizacja: Radomsko

#4

Post napisał: jacek-1210 » 22 cze 2014, 20:28

markcomp77 pisze:pomysł z przetworzeniem napięcia na częstotliwość - ciekawy
pomiar częstotliwości - nie taki bardzo prosty... ale może warto przemyśleć?

gdyby jednak zrobić prosty komparator okienkowy... to mamy już gotowy przetwornik A/D... dwu-
bitowy - bit "góa" i bit "dół" ;)

Takie "jednobitowce" przcież już są, choćby Prokopcia, tyle że jak to zaimplementować w linuxie żeby zawsze wiedział gdzie ma Z-kę ?
Jeśli moja rada Ci nie zaszkodziła, to może trochę POMOGŁa ? :wink:

Awatar użytkownika

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

#5

Post napisał: markcomp77 » 22 cze 2014, 20:53

jacek-1210 pisze:jak to zaimplementować w linuxie żeby zawsze wiedział gdzie ma Z-kę ?
Podczas zajarzenia, wypada ustalić manualnie warunki ostrego palenia.. mamy wartość "właściwą" dla Z i wynikającą z wysokości właściwą wartość napięcia Uz między plujką i stołem...

Dalej... wystarczy tylko pilnować stałej wartości napięcia Uz, które to napięcie określa realną wysokość - ponieważ plazma podaje stały prąd...

Gdyby faktycznie udało się odczytać napięcie i przetworzyć je jakoś do postaci możliwej do odczytania przez port LPT.. to jesteśmy w domu (temat do zastanowienia - JAK?)

Mając już w HALu odczytaną wartość napięcia, będą możliwe działania w celu jej stabilizacji...

Jak to zrobić bez kombinowania?.... wartość błędu do modułu PID.... i korekcja położenia osi Z
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm


Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 3
Posty: 97
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: mazowieckie

re

#6

Post napisał: marekms » 23 cze 2014, 07:58

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

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”