Plasma THC Corner Lock

More
10 years 3 weeks ago - 10 years 3 weeks ago #81292 by Rick G
Replied by Rick G on topic Plasma THC Corner Lock
In your panel the spinbox for velocity tolerance is
Code:
<spinbox> <width>"5"</width> <halpin>"vel-tol"</halpin> <min_>.01</min_> <max_>1</max_> <resolution>0.01</resolution> <initval>0.2</initval> <format>"1.2f"</format> <font>("Arial",10)</font>
Which means you have a min of .01 a maximum of 1 and default of .2
I believe the version of THC that you are using is looking for a percent tolerance of the velocity in the range of 1 to 100, not .01 to 1.
Code:
component thc "Torch Height Control"; description """ Torch Height Control Mesa THC > Encoder > LinuxCNC THC component The Mesa THC sends a frequency based on the voltage detected to the encoder. The velocity from the encoder is converted to volts with the velocity scale parameter inside the THC component. The THCAD card sends a frequency at 0 volts so the scale offset parameter is used to zero the calculated voltage. Component Functions If enabled and torch is on and X + Y velocity is within tolerance of set speed allow the THC to offset the Z axis as needed to maintain voltage. If enabled and torch is off and the Z axis is moving up remove any correction at a rate not to exceed the rate of movement of the Z axis. If enabled and torch is off and there is no correction pass the Z position and feed back untouched. If not enabled pass the Z position and feed back untouched. Physical Connections .br Plasma Torch Arc Voltage Signal => 6 x 487k 1% resistors => THC Arc Voltage In .br THC Frequency Signal => Encoder #0, pin A (Input) .br Plasma Torch Arc OK Signal => input pin .br output pin => Plasma Torch Start Arc Contacts HAL Plasma Connections .br encoder.nn.velocity => thc.encoder-vel (tip voltage) .br motion.spindle-on => output pin (start the arc) .br thc.arc-ok <= motion.digital-in-00 <= input pin (arc ok signal) HAL Motion Connections .br thc.requested-vel <= motion.requested-vel .br thc.current-vel <= motion.current-vel """; author "John Thornton"; license "GPLv2 or greater"; option singleton yes; // Input Pins pin in float encoder_vel "Connect to hm2_5i20.0.encoder.00.velocity"; pin in float current_vel "Connect to motion.current-vel"; pin in float requested_vel "Connect to motion.requested-vel"; pin in float volts_requested "Tip Volts current_vel >= min_velocity requested"; pin in float vel_tol "Velocity Tolerance (Corner Lock)"; pin in bit torch_on "Connect to motion.spindle-on"; pin in bit arc_ok "Arc OK from Plasma Torch"; pin in bit enable "Enable the THC, if not enabled Z position is passed through"; pin in float z_pos_in "Z Motor Position Command in from axis.n.motor-pos-cmd"; // Output Pins pin out float z_pos_out "Z Motor Position Command Out"; pin out float z_fb_out "Z Position Feedback to Axis"; pin out float volts "The Calculated Volts"; pin out bit vel_status "When the THC thinks we are at requested speed"; pin out float offset_value "The Current Offset"; // Parameters param rw float vel_scale "The scale to convert the Velocity signal to Volts"; param rw float scale_offset "The offset of the velocity input at 0 volts"; param rw float velocity_tol "The deviation percent from planned velocity"; param rw float voltage_tol "The deviation of Tip Voltage before correction takes place"; param rw float correction_vel "The amount of change in user units per period to move Z to correct"; // Global Variables variable float offset; variable float last_z_in; function _; ;; #include "rtapi_math.h" FUNCTION(_) { // convert encoder velocity to volts volts = (encoder_vel - scale_offset) * vel_scale; if(volts < 0){volts = 0;} // make sure volts is not negative offset_value = offset; if(enable){ float min_velocity = requested_vel -(requested_vel*(velocity_tol*0.01)); if(current_vel > 0 && current_vel >= min_velocity){vel_status = 1;} else {vel_status =0;} if(torch_on && arc_ok && vel_status){ // allow correction if((volts + voltage_tol) > volts_requested){ offset -= correction_vel; } if((volts - voltage_tol) < volts_requested){ offset += correction_vel; } last_z_in = 0; } if(!torch_on){ // remove any offset float z_diff; z_diff = z_pos_in - last_z_in; if(z_diff > 0 && offset != 0){ // torch is moving up if(offset > 0){ // positive offset if(offset > z_diff){ // remove some offset -= z_diff; } else {offset = 0;} } if(offset < 0){ // negative offset if(offset < z_diff){ // remove some offset += z_diff; } else {offset = 0;} } } last_z_in = z_pos_in; } z_pos_out = z_pos_in + offset; z_fb_out = z_pos_in; // keep axis motor position fb from being confused } if(!enable){ z_pos_out = z_pos_in; z_fb_out = z_pos_in; // keep axis motor position fb from being confused } }

That is to say if you set your speed at 100 with your g code and you set your tolerance at 20 any speed above 80 the THC will work. However your spinbox range does not allow that range.
Try changing the spinbox range to say 1 to 100, a default of 20 and perhaps a resolution of 1.
And comment out any setp you may have for velocity.

Rick G
Last edit: 10 years 3 weeks ago by Rick G.

Please Log in or Create an account to join the conversation.

More
10 years 3 weeks ago #81520 by EW_CNC
Replied by EW_CNC on topic Plasma THC Corner Lock
Ok, I made those changes, but did not seem to get a response from the velocity tolerance adjustment.
I watched hal pin motion.current-vel and noticed that it is not showing the same velocity reading as the axis display velocity, which is equal with the actual movement of the machine.
While cutting at G code F15, feed overide at 100%. It showed a motion.current-vel reading of .25.
With G code feed at 100 IPM motion.current-vel showed 1.6667.
Why do I get the two differant velocity readings?

Please Log in or Create an account to join the conversation.

More
10 years 3 weeks ago - 10 years 3 weeks ago #81521 by Rick G
Replied by Rick G on topic Plasma THC Corner Lock
G code is in inch per minute
motion.current-vel is in inch per second

So F15 / 60 = .25
Rick G
Last edit: 10 years 3 weeks ago by Rick G.

Please Log in or Create an account to join the conversation.

More
10 years 3 weeks ago #81522 by PCW
Replied by PCW on topic Plasma THC Corner Lock
Because the motion.currrent-vel pin is scaled in machine units per second, not machine units per minute

Please Log in or Create an account to join the conversation.

More
9 years 11 months ago - 9 years 11 months ago #82571 by echesortux
Replied by echesortux on topic Plasma THC Corner Lock
Hola, te respondo en espaƱol porque es mi lengua materna, igualmente voy a pedir que traduscan este texto asi lo puedes entender correctamente.
Tu tienes el mismo problema que tengo yo.
Lamentablemente el archivo plasma.xml que tu y yo tenemos de la pagina gnipsel.com/shop/plasma/plasma.xhtml no es correcto. El parametro vel-tol al que tu le ingresas el valor de la tolerancia de velocidad en el primer spindbox seguramente ha sido modificado o renombrado en el thc.comp
El thc.comp que debes tener instalado usa velocity-tol y no vel-to, para poder ingresar los valores desde el pyvcp debes cambiar <halpin>vel-tol<halpin> por <halpin>velocity-tol<halpin>
Con esto podras cambiar el valor desde el panel. Tambien debes modificar los parametros numericos para que el minimo sea 1 y el maximo 100 siendo estos un porcentaje de la velocidad
Te quedara algo asi:
<spinbox>
<width>"5"</width>
<halpin>"velocity-tol"</halpin>
<min_>1</min_>
<max_>100</max_>
<resolution>1</resolution>
<initval>20</initval>
<format>"1.2f"</format>
<font>("Arial",15)</font>
</spinbox>

Espero puedas traducirlo.
Saludos
Last edit: 9 years 11 months ago by echesortux.

Please Log in or Create an account to join the conversation.

More
9 years 11 months ago #82586 by Rick G
Replied by Rick G on topic Plasma THC Corner Lock
Yes, it appears that there have been different versions of the THC and the panel.
The current THC seems to expect a percentage input so the panel needs to have a spinbox with the proper range 0 to 100.
The slightly modified version I use needs a spinbox of 0 to 1.

Rick G

Please Log in or Create an account to join the conversation.

Time to create page: 0.265 seconds
Powered by Kunena Forum