Plasma settings

More
12 Feb 2016 12:57 #70039 by Rick G
Rick G created the topic: Plasma settings
In order to get a quality cut using a plasma torch there are several settings that effect the cut.
Settings such as kerf, pierce height, pierce delay, cut height, feed rate, amps, pressure, etc.
When traveling from one cut to another a Z safe position.
If using torch height control the proper voltage needs to be set.

In our case we use a Mesa THC card and John T's THC. We added panel buttons to Save, Show and Restore the plasma settings.
For safety I prefer to limit the travel speed in between cuts with travel_rate.

Arc trans stop is used to select if we want the machine to stop if it senses a loss of arc transfer, or just keep going in the case of a false arc transfer error.
Circle pierce, in order to help protect the tip during piercing thick material this moves the torch in a tiny circle while piercing (experimental).

Most of these settings are used by a light torch sub in place of a M3 when starting the cut. This probes for the top of the material, sets the Z coordinate, goes to pierce height, lights the torch, waits for pierce delay, goes to cut height then goes on to the cut.

Instead of keeping a cheat sheet next to the machine with the settings we use NGCGUI subs and store the settings with numbered parameters so they are available to all programs.
The subs are named for easy identification: material, thickness_tip_amps. The most common are in tabs, the rest selected with the custom tab.

To use we select a plasma settings sub, make any adjustments to the fields, finalize it and then run it.
The .var file has been edited for the numbered parameters so that they are saved even it the machine is turned off.

For simple cuts we may just write the short code needed. In several cases we use NGCGUI subs to make cuts such as circles, rectangles, etc.
For more complicated cuts we use Sheetcam and have edited the post to use the parameters. In all cases the numbered parameters can be used.
o<steel035_20t_20a> sub

(concept only edit for your use before using)

(info: steel .035 thick galv plasma cut)
;assumes top of material is 0
;feb 13, 2013

#<toolnum> =       #1 ( = 4 tool num)
#<kerf>	 =         #2 ( = .050 kerf)
#<pierce_height> = #3 ( = .19 Pierce height)
#<pierce_delay>  = #4 ( = .01 Pierce delay)
#<cut_height> =    #5 ( = .130 Cut height)
#<z_safe> =        #6 (= 1.25 Z safe)
#<feed_rate> =     #7 ( = 60 Feed rate)
#<tip> =           #8 ( = 20 amp)
#<amps> =          #9 ( = 20 amp)
#<pressure> =      #10 ( = 65 pressure)
#<voltage> =       #11 ( = 100)
#<thickness> =     #12 ( = .035 thickness)
#<main_cord> =   #13 (= 54 Main G cord)
#<temp_cord> =   #14 (= 55 Temp G cord)
#<arc_transfer_stop> = #15 (= 1 arc trans stop)
#<travel_rate>   = #16 ( = 200 travel speed)
#<circle_pierce> = #17 ( = 0 1 for circle pierce)

#<main_cord_n> = 0
#<temp_cord_n> = 0
#<voltage:adj> = 0

G17 (xy plane)
G20 (inches)
G40 (cancel cutter radius compensation)
G49 (cancel tool length offset)
G90 (absolute distance mode)
G94 (units/min feed rate)
G64 P.001 Q.001 (set path tolerance)

M53 P0 (disable the feed stop switch, allows movement even without arc OK signal to position machine, turn back on after light_torch3)

o201	if [[#<main_cord> EQ 59.3] OR [#<temp_cord> EQ 59.3]]
	(debug, bad Cord system G59.3 used for probe Main #<main_cord> Temp #<temp_cord>) 
        o200 return
o201   endif

o701	if [#<temp_cord> EQ #<main_cord>]
	(debug, Main cord and temp cord cannot be the same Main #<main_cord> Temp #<temp_cord>) 
	o700 return
o701   endif

o<check_cord3> call [#<main_cord>] [#<temp_cord>]; Assign number to valid coordinate system for use with g code commands such as G10 returns #<_m:cord> and #<_t:cord>
#<main_cord_n> = #<_m:cord>
#<temp_cord_n> = #<_t:cord>

o801	if [#<main_cord_n> EQ 0]
	(debug, bad Main cord #<main_cord_n>) 
	o800 return
o801   endif

o901	if [#<temp_cord_n> EQ 0]
	(debug, bad Temp cord #<temp_cord_n>) 
	o900 return
o901   endif

(debug, main cord #<main_cord> and #<main_cord_n>)
(debug, temp cord #<temp_cord> and #<temp_cord_n>)

;set numbered parameters

#3000 = #<toolnum>
#3001 = #<kerf>
#3002 = #<pierce_height>
#3003 = #<pierce_delay>
#3004 = #<cut_height>
#3005 = #<z_safe>
#3006 = #<feed_rate>
#3007 = #<tip>
#3008 = #<amps>
#3009 = #<pressure>
#3010 = #<voltage>
#3011 = #<thickness>
#3012 = #<main_cord>
#3013 = #<temp_cord>
#3014 = #<main_cord_n>
#3015 = #<temp_cord_n>
#3016 = #<voltage:adj>
#3017 = #<arc_transfer_stop>
#3018 = #<travel_rate> 
#3019 = #<circle_pierce>

F #<feed_rate>

M107 P#3010 Q#3016(set panel voltage)

o<steel035_20t_20a> endsub
The following user(s) said Thank You: BigJohnT, tommylight
More
13 Feb 2016 17:29 #70069 by BigJohnT
BigJohnT replied the topic: Plasma settings
I would forget to set the voltage spinner every now and then so I started directly feeding that to the thc component like this by modifying the sheetcam post and my ngcgui subs.
; set thc to 79 volts in the g code file
M68 E0 Q79

The hal is:
# reads the volts setting from the G code M68 E0 Q
net volts-requested thc-pid.volts-requested <= motion.analog-out-00

JT
The following user(s) said Thank You: TheFabricator
More
19 Feb 2016 11:49 #70368 by Rick G
Rick G replied the topic: Plasma settings
Hey John,

That's a neat idea.

One of the reasons I set this up, was so as not to forget a setting. With the numbered parameters saved to file they are automatically available.
I found that then I would forget to turn the THC on, so I reversed the logic so the THC is normally on and clicked to turn off.

I do something similar to you for the voltage adjustment as that is entered from the panel.
The voltage adjustment is saved with...
o<save3> sub
;Feb 17, 2014
; All numbered parameters are already saved automatically to var file

(save plasma voltage adjustment setting)
M66 E0 L0
#3016 = #5399
(debug, Saving settings voltage adjustment)
o<save3> endsub
The settings are restored/ shown with...

o<restore3> sub
;restore3.ngc
;Feb 17, 2014

G#3012
F#3006

(restore plasma voltage adjustment setting)
M107 P#3010 Q#3016(set panel voltage)

(debug, Tool no #3000)
(debug, Kerf #3001)
(debug, P Height  #3002, P Delay #3003)
(debug, Cut Height #3004, Z safe #3005)
(debug, Feed #3006, Tip #3007)
(debug, Amps #3008, Pres #3009)
(debug, Volts #3010, Thickness #3011)
(debug, M cord #3012, M cord  no. #3014)
(debug, T cord #3013, T cord no. #3015)
(debug, Voltage Adj #3016)
(debug, Arc trans stop #3017)
(debug, Travel rate #3018)
(debug, circle pierce #3019) 
o<restore3> endsub
M107 is something like...
#!/bin/bash
#m107 to set thc values
#voltage is P
#voltage adjustment is Q
voltage=$1
voltadj=$2
halcmd setp sum2.0.in1 $voltage
halcmd unlinkp pyvcp.spinbox.1.param_pin
halcmd setp pyvcp.spinbox.1.param_pin $voltadj
halcmd setp pyvcp.thc_volts_file $voltage
exit 0

And ih hal using motion.analog-in-00...
net thc.volts_adjustment pyvcp.volts-adjustment => sum2.0.in0 => motion.analog-in-00
net thc_volts_req_final thc.volts-requested pyvcp.thc_volts_req_final <= sum2.0.out 
net restore-thc halui.mdi-command-00 <= pyvcp.restore-thc
net save-thc halui.mdi-command-01 <= pyvcp.save-thc

When working with sheet metal I would sometimes get an arc transfer error right after pierce, probably because the pierce is so fast so I added an Arc trans stop variable to toggle that feature on or off.

Rick G
Time to create page: 0.067 seconds
Powered by Kunena Forum