W systemie MyPlasm CNC funkcje detekcji materiału są zaimplementowane i gotowe do użycia co przedstawiono na poniższym filmie :
Dla systemu MACH 3 poztaram sie opisać poniżej :
Głowica pływająca ( w przygotowaniu )
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 unoszą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.
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)
Najłatwiejszy sposób zautomatyzowania to zmodyfikowanie makra M3 ( znajduje się w katalogu C:/Mach3/Macros/Plasma/M3.m1s ).
- code “G31 Z-10 F300”
- While IsMoving()
- Wend
- code “G00 Z-3”
- code “G00 Z1”
- While IsMoving()
- Wend
- DoSpinCW()
Bardziej zaawansowanym sposobem jest użycie bardziej złożonego 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