Tips - detection of material

Floating Head

To detect the material, a floating head is very often used. However, it should always be used even if the detection of material is realized in a different way. Thus, the program will receive information about an obstacle (material) while leaving the Z axis – this option significantly protects against collision.

Floating head can be realized in two ways. In each case, the burner must be loosely hung on the axis, because it must have be ability to go step back when it encounters the material. With the use of heavy elements, a discharge strain so as not to exert much pressure on the material.

JThe first method of detection is attachment of the burner to the Z axis on an additional track that starts the switch forwarding the information to the control system via drifting.

- lub -

The second method is to install the whole “Z” axis in such a way that when it encounters the material, the drive nut is withdrawn. The detection of this fact can be achieved by an assembly of the switch as in the previous example.

Floating Head

In any case, you should inform the control program (e.g. MACH3) about the elevation of the plasma torch. You should connect and configure switch contacts according to the documentation of existing CNC system just like switches: home, limit, e-stop, etc.

If you want to use it in the MACH3 program for the detection of material – you should configure the switch as the PROBE input signal.

DIGITIZE signal should illuminate when lifting the head

Detecting the material and fixing the initial distance from the material program by means of a floating head signal.

Below we present an example of a simple g-code, which will determine the initial position of the torch from material.

Before starting of the program, you should reset the Z axis – by touching the torch to the material.

G31 Z-10 F300 (found material feed 300 to Z=-10 position)
G92 Z-3       (zero Z + example corection switch)
G00 Z1        (move to Z=1mm above material)
M3            (plasma start)

Very simple way to automatization it is modyficate code M3 ( in C:/Mach3/Macros/Plasma/M3.m1s  folder ). 

b1

code "G31 Z-10 F300"

While IsMoving()
Wend 
code "G00 Z-3"
code "G00 Z1"
While IsMoving()
Wend 
DoSpinCW()

all of M3 code in your program will translate to : Material Detect and start plasma.

before M3 code should be code to position torch above material 10-20mm ( before detection ).

A more advanced way is the use of "proffesional" macro.
Sample macro for the MACH3 is present below:

Download m300.m1s macro

HeightOfDetect = 20
SpeedOfDetect = 300
Offset = 5
HeightOfTransfer = 2
HeightOfPierce = 5
HeightOfCut = 1
Delay = Param1()

Dim MaterialPos As Double

If GetOEMDro(186)>HeightOfDetect Or GetOEMDro(186) Then code "G00 Z" & HeightOfDetect
While IsMoving()
Wend

message("Detecting of material pos.")
code "G31 Z-10 F" & SpeedOfDetect
While IsMoving()
Wend
If GetOEMDro(186)=-10 Then
message("No material detected")
code "G00 Z" & HeightOfDetect
While IsMoving()
Wend
1: GoTo 1
Else
MaterialPos = GetOEMDro(186) + offset
message("Material detected pos = " & MaterialPos)
code "G00 Z" & MaterialPos + HeightOfTransfer
While IsMoving()
Wend
DoSpinCW()
If Delay>200 Then
code "G00 Z" & MaterialPos + HeightOfPierce
While IsMoving()
Wend
End If
Sleep(Delay+1)
code "G00 Z" & MaterialPos + HeightOfCut
While IsMoving()
Wend
End If

After copying the macro to the “My Computer / C drive / Mach3 / macros” catalogue, the writing of programs becomes very easy. Below, we show a complete example with the use of the above macro.

G00 Z40       (podniesienie palnika)
G00 X100 Y100 (przejazd do pozycji wpalenia)
M300 P1000    (Uruchomienie makra, czas przebicia 1000ms)
G01 X10 Y10   (cięcie)
M5            (wyłączenie palnika)
G00 Z40       (podniesienie palnika)

 Another way (the fastest one) is the use of the Compact THC 150 function, which detect the main (cutting) plasma arc. When lowering the burner on the material, a plasma source is attached – over the burner, the material has no contact with the material so that there is no cutting arc. If it will approach to a predetermined distance, a cutting arc is initiated. Detection of this fact is used by the program to determine an exact location of the material. Because of the fact that the burner is started at a large distance from the material, it generates a much more interferences that can have a negative impact on a proper operation of the electronics.

In this case, the PROBE signal must be assigned to a pin connected to the ARC OK output (THC system) – DIGITIZE indicator should be lighted when the main arc is detected by the THC system (such a status can be simulate for the test).

Below we present an example of a simple g-code that will determine the initial position of the burner from the material using the ARC OK signal (configured as PROBE in the MACH3 program).

G00 Z20            (ustawienie palnika ok 20mm nad materiał)
M3                 (Załączenie plazmy)
G31 Z-10 F300      (szukanie materiału z prędkością 300 do pozycji Z=-10)
G92 Z3             (Zerowanie osi Z + przykładowa korekcja)
G00 Z6             (podniesienie palnika 6mm nad materiał)
G04 P1000          (czas przebijania materiału 1000ms/1s)
G00 Z1             (obniżenie palnika 1mm nad materiał)

Alternatywne makro dla MACH3

Download m301.m1s macro

HeightOfDetect = 10
SpeedOfDetect = 300
Offset = 5
HeightOfPierce = 5
HeightOfCut = 1
Delay = Param1()

Dim MaterialPos As Double

If GetOEMDro(186)>HeightOfDetect Or GetOEMDro(186) Then code "G00 Z" & HeightOfDetect
While IsMoving()
Wend

DoSpinCW()
sleep(200) message("Detecting of material pos.")
code "G31 Z-10 F" & SpeedOfDetect
While IsMoving()
Wend
If GetOEMDro(186)=-10 Then
DoSpinStop() message("No material detected")
code "G00 Z" & HeightOfDetect
While IsMoving()
Wend
1: GoTo 1
Else
MaterialPos = GetOEMDro(186) - offset
message("Material detected pos = " & MaterialPos)
If Delay>200 Then
code "G00 Z" & MaterialPos + HeightOfPierce
While IsMoving()
Wend
End If
Sleep(Delay+1)
code "G00 Z" & MaterialPos + HeightOfCut
While IsMoving()
Wend
End If