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