Plasma Touch Off

More
07 Jun 2011 15:59 #10358 by BigJohnT
BigJohnT created the topic: Plasma Touch Off
After a recent suggestion I've changed my plasma touch off subroutine. My plasma uses a floating head and a micro switch connected to the probe input.
o<touchoff> sub
(#1 pierce height, #2 pierce delay, #3 cut height)
F10
G38.2 Z-1.75 (Probe to find the surface)
G92 Z-0.070 (Set Z Probe Switch Offset)
G1 Z#1
M3 S1
M66 P0 L1 Q5 (Wait for Arc OK from Torch)
G4 P#2 (Pause for pierce delay)
F25
Z#3 (goto cut height)
o<touchoff> endsub
M2

An example file using touchoff.ngc
G20 (Units: Inches)
G40 (Cancel Cutter Comp)
G90 (Absolute Mode)
G64 P0.005 (Continuous mode + path tolerance)
G92 X0 Y0
o<touchoff> call [0.100] [0] [0.08] (Touchoff and start cutting)
F70
G1 X32.1
M5 (Torch Off)
G0 Z0.500
X0.000
G92.1 (Cancel offsets and set to zero)
G0 Z0
M2

John
More
19 Jul 2012 03:16 #22167 by tensaiteki
tensaiteki replied the topic: Re:Plasma Touch Off
I modified John's touch off subroutine.

Now if the torch fails to fire/arc doesn't transfer, it will re-probe and try again instead of just taking off without cutting. If it fails four times in a row, the head will raise up 2 inches and pause the program to allow access to change the torch consumables. Resuming/un-pausing the program will restart the probing and torch firing attempts.

o<touchoff> sub
(#1 pierce height, #2 pierce delay, #3 cut height)

#<arc-fails> = 0

F40
 o100 do   
    G38.2 Z-1.25 (Probe to find the surface)
    G91
    G1 Z0.185 (Raise up to Z0)
    G90
    G92 Z0 (Set Z0)
    G1 Z#1  (Raise to pierce height)
    M3 S1   (Fire torch)
    M66 P0 L1 Q2 (Wait 2 seconds for Arc OK from Torch)
     o200 if [#5399 EQ -1] (Check to see if torch failed to fire)
      (MSG, Arc Fail)
      M5
      #<arc-fails> = [#<arc-fails> + 1]
        o300 if [#<arc-fails> GT 3.0000] (Check if torch has failed 4 times in a row)
          Z2.0000 (raise torch high enough to change consumables)
          #<arc-fails> = 0 (reset arc failure counter)
          M1 (pause)
        o300 endif
     o200 endif
  o100 while [[#5399 EQ -1]]
 G4 P#2 (Pause for pierce delay)
 F25
 Z#3 (goto cut height)
o<touchoff> endsub
M2

Usage is the same as in John's first post.
More
19 Jul 2012 14:30 #22191 by BigJohnT
BigJohnT replied the topic: Re:Plasma Touch Off
Excellent!

I'll give that a try next time I cut a part...

Thanks for sharing
John
More
06 Dec 2014 00:50 #53721 by jd896
jd896 replied the topic: Re:Plasma Touch Off
sorry to jump in here but im having a hard time getting this to work now ive added a m66 E0 L0 pin into the mix (used to set pierce time on screen)

the m66 command uses variable #5399 as used here

the hard time im having is to find another variable the will keep this arc monitoring working

thanks
More
30 Jul 2017 15:02 #96682 by UnfinishedBusiness
UnfinishedBusiness replied the topic: Plasma Touch Off
I've been using tensaiteki's touchoff routine with retry's for some time with great success. One problem i've been having is if the probe switch sticks on complicated part nests with hundreds of starts, G38.2 will stop the program if the probe is closed when its called. Its difficult to jump back in to a nest like this....

I've added an additional M66 and if statement that checks if the probe is contacted before G38.2 is called. This allows the opportunity to service the issue before G38.2 aborts the program. Important to know, add a hal connection linking the probe input to digital input 1. (Ex "net probe-in <= motion.digital-in-01 <= parport.0.pin-10-in-not")
o<touchoff> sub
(#1 pierce height, #2 pierce delay, #3 cut height)

#<arc-fails> = 0

F20
 o100 do
    M66 P1 L0 Q0 (Wait 1 second to see if probe is already closed)
    o400 if [#5399 EQ 1]
	(MSG, Contact already closed before calling G38.2!)
	G0 Z2.0000
        M0
    o400 endif
    G38.2 Z-1.250 (Probe to find the surface)
    G91
    G1 Z0.020 (Raise up to Z0)
    G90
    G92 Z0 (Set Z0)
    G1 Z#1  (Raise to pierce height)
    M3 S1   (Fire torch)
    M66 P0 L1 Q2 (Wait 2 seconds for Arc OK from Torch)
     o200 if [#5399 EQ -1] (Check to see if torch failed to fire)
      M5
      #<arc-fails> = [#<arc-fails> + 1]
        o300 if [#<arc-fails> GT 3.0000] (Check if torch has failed 4 times in a row)
          Z2.0000 (raise torch high enough to change consumables)
	  (MSG, Change Consumables!)
          #<arc-fails> = 0 (reset arc failure counter)
          M0 (pause)
        o300 endif
     o200 endif
  o100 while [[#5399 EQ -1]]
 G4 P#2 (Pause for pierce delay)
 F25
 Z#3 (goto cut height)
o<touchoff> endsub
M2
More
30 Jul 2017 21:27 #96704 by rodw
rodw replied the topic: Plasma Touch Off
Very interesting. I've saved this and will give it a go. Because I am starting off with plasma, I would like to add a way to do a dry run without the touchoff if my torch is disabled in the console so I might see if I can extend this.
More
01 Aug 2017 13:44 #96833 by islander261
islander261 replied the topic: Plasma Touch Off
Rod

You may find it handy to actually have your machine touch off when doing a dry run. I have a "Torch Enable" button and when it is not true my touch off routine doesn't wait for the arcok signal from the plasma power supply. One thing I have found is that this is nice when used with intentionally introduced probing errors to get all actions and responses the way I want them.

John
More
01 Aug 2017 20:20 #96858 by rodw
rodw replied the topic: Plasma Touch Off
John thanks, thats how I've got mine configured and with the current touch off, it will keep going in a dry run but if you implement this code, I don't think it will so I want to work out a way to skip the loop in this if the torch is disabled.
Moderators: Rick G
Time to create page: 0.085 seconds
Powered by Kunena Forum