Hello Guest it is October 22, 2019, 11:18:43 PM

Author Topic: Question for Plasma guys on material sensing  (Read 6912 times)

0 Members and 1 Guest are viewing this topic.

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Question for Plasma guys on material sensing
« on: November 29, 2016, 05:16:19 PM »
How do you plasma guys do material sensing, is it G31 G28 or some other way?
Do you have the routine in the M3 macro or do you have separate lines that your post processor spits out or some other method?

Reason I am asking is with mine I have been using a modified  M31 macro that comes with the CS Lab controllers but I am having endless problems with it. I was thinking of just modifying the M3 macro to do a G31, move to pierce height then  turn on the torch.

Hood
Re: Question for Plasma guys on material sensing
« Reply #1 on: November 29, 2016, 07:42:50 PM »
I am not sure what was under the covers of the one I worked on last weekend but is how it seamed to function. It would go down, probe the material height, then go up to the pierce height, pierce and go down at feedrate to cut height, then go on its merry way.

Mike
We never have the time or money to do it right the first time, but we somehow manage to do it twice and then spend the money to get it right.

Offline RICH

*
  • *
  •  7,368 7,368
    • View Profile
Re: Question for Plasma guys on material sensing
« Reply #2 on: November 29, 2016, 07:50:07 PM »
FWIW,
Here is the macro that  a friend uses. I think it  is run every time the torch is moved to the next cutting operation.
Takes care of warpage on thin material.
Quote
I am a complete dumb dumb about plasma.

Oh, BTW, Lazycam can be used for plasma...."if" I remember correctly you use the  Mill modul for pathing, but use the Plasma to generate the code. He uses it all the time and works fine.

Call SetOEMDRO(802, 0) 'Set Z DRO = 0.00
 Code "G31 Z-8.0 F60" 'probe surface
While IsMoving()
Wend
Code "G4 P.5" 'wait
ZprobePos = GetVar(2002) 'get contact point
Code "G0 Z" &ZprobePos 'return to point to remove overshoot
While IsMoving()
Wend
Call SetOEMDRO(802, 0) 'Set Z DRO = 0.00
While IsMoving()
Wend
Code "G4 P.5" 'wait
Code "G0 Z.480 F30" 'remove floating head travel
While IsMoving()
Wend
Code "G4 P.0" 'wait
Call SetOEMDRO(802,.100) 'Set Z DRO = 0.00
While IsMoving()
Wend
ActivateSignal(Output2)



Again, FWIW,

RICH

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: Question for Plasma guys on material sensing
« Reply #3 on: November 30, 2016, 02:49:36 AM »
Mike,
 yes they all tend to work that way, was more wondering the method used. I am using a modified CSMIO internal probing macro M31 but having issues. I was wondering if people are using the G31 or whether their height sensing was done by homing the Z.

Rich
 Using BobCAD for Mill, Lathe and now Plasma.

Thanks for the macro code, do you know if it is just a custom macro that he calls or is it part of the M3 macro? Any idea what Output 2 is for?
Re: Question for Plasma guys on material sensing
« Reply #4 on: November 30, 2016, 05:52:53 AM »
It must be using G31 because the switch is hooked up to the digitize input.
This was my first foray into Plasma so I am a little vague on how it works but we had to rewire the switch so that I know for sure.
Mike
We never have the time or money to do it right the first time, but we somehow manage to do it twice and then spend the money to get it right.

Offline Davek0974

*
  •  2,580 2,580
    • View Profile
    • DD Metal Products Ltd
Re: Question for Plasma guys on material sensing
« Reply #5 on: November 30, 2016, 06:12:02 AM »
G28.1 in a subroutine here.

Post just inserts the sub call, makes changing the routine easy as its only in one place :)
Bridgeport Mill, Mach3 V062, CSMIO-IP/A controller, AC Servo Drives

Offline RICH

*
  • *
  •  7,368 7,368
    • View Profile
Re: Question for Plasma guys on material sensing
« Reply #6 on: November 30, 2016, 10:06:47 AM »
Hood,
Will answer your question's later today.
 
Nice to see that there activity on plasma in here. I would venture to say "it's more of a lost child than the lathe". :D

Later,
RICH

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: Question for Plasma guys on material sensing
« Reply #7 on: November 30, 2016, 11:12:54 AM »
Thanks  for the answers.
 As I was using the M31 macro which is a kind of internal CS-Lab macro I already had the switch set as a probe input.
 So I quickly wrote a custom macro (m124.m1s) which basically mimicked what I had in the M31 macro but instead used G31. It seems to be working fine so far, I have used it from MDI and also a button on my panel and easily over 100 times one after the other and it has worked perfectly where the M31 would definitely have failed after a lot less attempts. I have not tried from G Code yet but hopefully that is it working, fingers crossed ::)


Hood

Offline RICH

*
  • *
  •  7,368 7,368
    • View Profile
Re: Question for Plasma guys on material sensing
« Reply #8 on: November 30, 2016, 03:09:31 PM »
Hood,

The plasma machine that my friend uses is very basic and has no input control so he installed a relay to automate pulling the trigger.Handle is on a floating head.
The M3 macro turns the plasma machine on after probing / locates top of material then adjusts heigth, and provides a signal to activate a relay ( Output 2), sets some basic feed rates.

So typical cycle is:
- initial axis moves
- M3
  Probe and set tip to material
  Output 2 from Mach triggers a relay which closes the trigger circuit.
  run gcode
 - M5
   turn off pasma before retracting via M5 macro.

Repeat above cycle for each new pathing to be cut.


RICH

MACROS & GCODE EXAMPLE
------------------------
M3 MACRO
------------
Present_Feed_Rate = GetOEMDRO(818)
DeactivateSignal(Output2)
Call SetOEMDRO(802, 0) 'Set Z DRO = 0.00
Code "G31 Z-8.0 F60.0" 'probe surface
While IsMoving()
Wend
Code "G4 P.5" 'wait
ZprobePos = GetVar(2002) 'get contact point
Code "G0 Z" &ZprobePos 'return to point to remove overshoot
While IsMoving()
Wend
Call SetOEMDRO(802, 0) 'Set Z DRO = 0.00
While IsMoving()
Wend
Code "G4 P.5" 'wait
Code "G0 Z.480" 'remove floating head travel
Code "F" & Prestent_Feed_Rate
While IsMoving()
Wend
Call SetOEMDRO(802,.100) 'Set Z DRO = 0.00
While IsMoving()
Wend
ActivateSignal(Output2)
'Pierce Delay
Code "G4 P1.0" 'wait for example 5 second delay
'put G4 P5.0 in GCodde after each M3 line or uncomment the G4 code line above.


M5 MACRO
---------
DeactivateSignal(Output2)


EXAMPLE OF some GCODE ( posted by LazyCam Plasma Module )
--------------------------------------------------------
N5 (File Name = 2 2"SQUAREs )
N10 (Default Plasma Post)
N15  G91.1
N20 G0  Z60.0000  (bad posting value / bug/ need to change Z value to suite)
N25 G0  X0.0000  Y0.0000
N30 G0  Z0.0000
N35 M3(PLasma On)
N40 G4 P0.3000 (vary P value to suite / or set dwell in M5 macro)
N45 G1  Y2.0000  F60.00
N50  X2.0000
N55  Y0.0000
N60  X0.0000
N65 G4P0.40
N70 M5 (Plasma Off)
N75 G0  Z60.0000 (bad posting value / bug/ need to change Z value to suite)
N80 G0  X3.0000  Y0.0000
N85 G0  Z0.0000
N90 M3(PLasma On)
N95 G4 P0.3000  (vary P value to suite / or set dwell in M5 macro)
N100 G1  X5.0000
N105  Y2.0000
N110  X3.0000
N115  Y0.0000
N120 G4P0.40
N125 M5 (Plasma Off)
N130 G0 Z60.0000 (bad posting value / bug/ need to change Z value to suite)
N135 M30

Offline Hood

*
  •  25,856 25,856
  • Carnoustie, Scotland
    • View Profile
Re: Question for Plasma guys on material sensing
« Reply #9 on: November 30, 2016, 03:21:04 PM »
Thanks Rich,
 what I have seems to be working at the moment but always good to have info just in case :)

Here is what I have in a custom macro m124.m1s

PierceHeight = GetUserDRO (1555)
ZOffset = GetUserDRO(1556)
XOffset = GetUserDRO(1557)
YOffset = GetUserDRO(1558)
ProbeSpeed = GetUserDRO(1559)
ZHeight = GetOemDRO(85)
Sleep 50

If ZHeight > -30 Then
Code "G91G0Z-30"
End If


SetHeight = (ZOffset - PierceHeight ) * -1

Code "G91G0Z20"
Code"G91"
Code"G0X" & XOffset & "Y" & YOffset
While IsMoving()
Wend


SetOutBit(90,10)
sleep 100
Code "G31Z-100F" & ProbeSpeed
While IsMoving()
Wend
ResetOutBit(90,10) 

 

Code"G91"
Code"G0X" & XOffset*-1 & "Y" & YOffset*-1 & "Z"& SetHeight
While IsMoving()
Wend
Code "G92Z" & PierceHeight
Code"G90"