Plasma Questions

More
9 years 10 months ago #84646 by islander261
Replied by islander261 on topic Plasma Questions
Rick G

I checked the voltages a three different cutting heights .06", .07", .08". I did 6 tests at each height using the following MDI program:

G91
G01 Y8.0 F220
G90

I used a piece of fairly clean 14ga scrap as a test piece. The consumables (electrode, nozzle, shield) were all cleaned with a Scotch bright pad before starting. I estimate the electrode to be about at 50% of life. As usual for straight cuts the quality was all excellent. Light dross on first .375" of cut at most. Work clamp connection cleaned to bright finish before connection.

Now remember this is using the old Torchmate AVHC to read the arc voltage and control the torch height, a precision piece of equipment this isn't. So what happened.

.06" 75V
.07" 80V
.08" 86V

11V / .02" = 550V/inch. * .005 = 2.75V for a .005" change in cut height. So the slope of the arc voltage curve at the working height is about 1/2 what I previously estimated. Now this is not good news because this means we are working over a smaller span with a very noisy input signal. I watched the arc voltage with my old analog o'scope when setting up the voltage divider/protection circuit to use with the THCad board and was amazed at how noisy it was.

John

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

More
9 years 10 months ago #84658 by rodw
Replied by rodw on topic Plasma Questions
John,

If you go back to this link I posted earlier in this topic, you will find Rick G's motivation for his experimental THC.

forum.linuxcnc.org/38-general-linuxcnc-q...tions?start=10#84529

The limitation in cutting corrugated iron is how fast the Zaxis can move. If the material height is changing 40mm every 40mm in travel laterally, than the xy speeds must be low enough to allow the Z to keep up.

Its good you made progress. I've seen it suggested to run the THC output though a filter in HAL to help clean up noise.

Also PCW recommensd that the /32 option is selected on the THCAD board.

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

More
9 years 10 months ago #84727 by andypugh
Replied by andypugh on topic Plasma Questions

rodw wrote: Your welcome. I've tried to avoid it too becasue I have a background in the printing industry where postscript rules supreme but we have smart software to do the dirty work whereas with HTML you eventually have to drop to source code.


(Off Topic)

A friend of mine writes raw PostScript in a text editor any time he wants a diagram. I think he also codes loops and conditionals.
Clearly, though, he is a lunatic. Writing raw SVG is so much easier.

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

More
9 years 10 months ago #84821 by islander261
Replied by islander261 on topic Plasma Questions
Hello

I dumped the probing code out of the Animatics Smart Motor on my present Z axis and cobbled together this pseudo code for probing material top surface with a conductive probe. I am looking for suggestions on the best way to do this. Should I use an O code subroutine or HAL or HAL user Python code?
Code:
# Pseudo code for probing sheet top with conductive (ohmic) sensing and floating switch safety #Parameters # W_height = position above -Z soft limit that Z feedrate is reduced to probing feedrate, usually about -Z soft limit + thickness of # thickest material used + safety (.1" to .25") # probing_timeout = probing error occurred if it takes longer than this # probe_rate = feedrate to probe at # start Feed Hold X & Y Axis Reset and Start probing_timer Set Error to "" Enable Conductive (ohmic) Sensor if( Probe == True) Set Error to "Sensor_Shorted" Goto error_handler Move Z axis Position to W_height at Rapid_Feedrate Set Z feedrate to probe_rate do Z axis move in - direction while((Probe == False) && (float_switch == False) && (probing_timer < probing_timeout)) Stop Z axis move if(float_switch == True) Set Error to "-Z_Limit" Goto error_handler if(probing_timer >= probing_timeout) Set Error to "Timeout" Goto error_handler Set Z axis feedrate to probe_rate/2 do Z axis move in + direction while((Probe == True) && (float_switch == False) && (probing_timer < probing_timeout)) Stop Z axis move Disable Conductive (ohmic) Sensor if(float_switch == true) Set Error to "-Z_Limit" Goto error_handler if(probing_timer >= probing_timeout) Set Error to "Timeout" Goto error_handler Set part 0 to present Z axis position Return (1) error_handler Disable Conductive (ohmic) Sensor Set Z axis feedrate to Rapid_Feedrate Move Z axis to Safe_G0_Height Send Error to GUI Return (-1)

Things that I don't how to do for a more or less direct conversion of code are:
1. Make a velocity commanded move on an axis. Can this be done from HAL, G code or Python?
2. Call a specific piece of HAL code from inside G code program.
3. Call a specific piece of Python user code from inside G code program.

Pointers to examples of doing the above will be very helpful.

John

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

More
9 years 10 months ago - 9 years 10 months ago #84828 by rodw
Replied by rodw on topic Plasma Questions
I can't really answer your questions but I've reviewed your code.

Float Switch as a Limit Switch
I think there is an error in logic treating the float switch as a limit switch. If there is no material under the torch, nothing will be triggered and the axis will crash. You really need a separate limit switch for the lower end of travel. A lot of examples X axis mechanisms I looked at did not have a lower limit switch but I added one to my machine. (Due to space constraints, I used a mechanical micro switch instead of a proximity switch) I figured it would have a low duty cycle so should never wear out.

If your float switch and upper limit switch share the same output, there is no excuse for this when you are using a Mesa card which has inputs to burn.

Float Switch as Back up if Ohmic Circuit Fails
When probing, the float switch should be treated as a valid input as it should serve as a backup if the ohmic sensing circuit fails so it is definitely not an error if triggered while probing.

Gotos are considered bad form
I personally don't like using goto statements but they can be efficient for error handling but nested if statements also do the job without adding excessive code. I hope I've cleaned them out correctly.

Implement timeouts using current time
With time outs, somewhere you have to read the current time as you enter a routine for the first time and then check if the time exceeds this time plus desired delay. Normally in C, I would use a static variable that holds its value between calls. IN HAL, it seems global variables are used, so I've added two variables. One to hold the time and the other a flag that is true on the first call to the procedure. I did this as I treated the code as if it was an interrupt service routine in case this procedure actually gets called multiple times during execution from the servo thread. Don't forget to reset the flag on exit from the procedure.

So with those comments, here is what I came up with.
Code:
# Pseudo code for probing sheet top with conductive (ohmic) sensing and floating switch safety #Parameters # W_height = position above -Z soft limit that Z feedrate is reduced to probing feedrate, # usually about -Z soft limit + thickness of thickest material used + safety (.1" to .25") # probing_timeout = probing error occurred if it takes longer than this # probe_rate = feedrate to probe at # # Global/static/persistent variables, call them what you will start_time first_pass = 1 start if(first_pass == True) start_time = now time_out = start_time + probing_timeout first_pass = 0 Feed Hold X & Y Axis Set Error to "" Enable Conductive (ohmic) Sensor if( Probe == False) Move Z axis Position to W_height at Rapid_Feedrate Set Z feedrate to probe_rate while((Probe == False) && (float_switch == False) && (now < time_out)) Z axis move in - direction Stop Z axis move if(now >= time_out) Set Error to "Timeout" else Set Z axis feedrate to probe_rate/2 while((Probe == True) && (float_switch == False) && (now < time_out)) Z axis move in + direction Stop Z axis move Disable Conductive (ohmic) Sensor if(now >= time_out) Set Error to "Timeout" else Set part 0 to present Z axis position first_pass = 1 Return (1) else Set Error to "Sensor_Shorted" Disable Conductive (ohmic) Sensor Set Z axis feedrate to Rapid_Feedrate Move Z axis to Safe_G0_Height Send Error to GUI first_pass = 1 Return (-1)
Last edit: 9 years 10 months ago by rodw.

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

More
9 years 10 months ago #84829 by rodw
Replied by rodw on topic Plasma Questions
I also forgot to mention that I altered your do... while loops to a simple while statement. I figured it would be more efficient to check all the conditions before wasting time moving anything.

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

Time to create page: 0.203 seconds
Powered by Kunena Forum