Porady - detekcja materiału

Głowica pływająca

Do wykrycia materiału bardzo często jest wykorzystywana głowica pływająca, warto ją jednak stosować zawsze, nawet jeśli wykrycie materiału jest realizowane w inny sposób. Dzięki temu program otrzyma informację o napotkaniu na przeszkodę (materiał) podczas opuszczania osi Z

Głowicę pływającą można zrealizować na dwa sposoby, w każdym przypadku palnik musi być luźno zawieszony na osi aby mógł się cofnąć gdy napotka na materiał

Jednym sposobem jest zamontowanie palnika do osi Z na dodatkowej prowadnicy, która unocząc się uruchamia przełącznik przekazujący informację do systemu sterowania

   -  lub  -  

Drugim sposobem jest zawieszenie całej osi w ten sposób, aby po napotkaniu na materiał możliwe było cofnięcie się nakrętki napędowej, wykrycie tego faktu można zrealizować poprzez montaż przełącznika podobnie jak w poprzednim przykładzie

 
 
 
Floating Head

W każdym przypadku należy poinformować program sterujący (np. MACH3) o uniesieniu palnika plazmowego. Styki przełącznika podłączamy i konfigurujemy wg dokumentacji istniejącego systemu CNC tak samo jak przełączniki home, limit, e-stop etc..

Jeśli chcemy aby wykorzystać to do wykrywania materiału - konfigurujemy przełącznik jako wejściowy sygnał PROBE w programie MACH3

Jeśli sygnał probe jest poprawnie skonfigurowany, w zakładce "Diagnostic Screen" powinna zaświecać się kontrolka DIGITIZE gdy palnik napotka na materiał

Program wykrywający materiał i ustalający wstępną odległość palnika od materiału z wykorzystaniem sygnału głowicy pływającej

Poniżej przedstawiam przykładowy prosty g-kod który ustali wstępną pozycję palnika od materiału

G31 Z-10 F300 (szukanie materiału z prędkością 300 do pozycji Z=-10)
G92 Z-3       (Zerowanie osi Z + przykładowa korekcja przełącznika)
G00 Z1        (podniesienie palnika 1mm nad materiał)
M3            (Załączenie plazmy)

Bardziej zaawansowanym sposobem jest użycie makra.
Przykładowe makro dla MACH3 przedstawiam poniżej:

Pobierz makro m300.m1s

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

Po skopiowaniu makra do katalogu "Mój Komputer / dysk C / Mach 3 / macros" pisanie programów staje się banalnie proste, poniżej kompletny przykład z wykorzystaniem powyższego makra

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)

 Innym sposobem (najszybszym) jest wykorzystanie funkcji układu THC wykrywającej główny łuk plazmowy (tnący). Podczas opuszczania palnika na materiał jest załączone źródło plazmy - ponad materiałem palnik nie ma kontaktu z materiałem więc nie ma łuku tnącego jeśli zbliży się na określoną odległość następuje zainicjowane łuku tnącego - wykrycie tego faktu jest przez program wykorzystane przez program do dokładnego określenia położenia materiału. Przez to, że palnik jest uruchamiany w dużej odległości od materiału, generuje o wiele większe zakłócenia, które mogą negatywnie wpłynąć na poprawną pracę elektroniki.

W tym przypadku sygnałowi PROBE należy przypisać pin podłączony do wyjścia ARC OK układu THC - kontrolka DIGITIZE powinna zaświecać się w momencie wykrycia łuku głównego przez układ THC (można zasymulować taki stan na potrzeby testu).

Poniżej przedstawiam przykładowy prosty g-kod który ustali wstępną pozycję palnika od materiału z użyciem sygnału ARC OK (skonfigurowany jako PROBE w programie MACH3)

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

Pobierz makro m301.m1s

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