Konfiguracja czujnika długości narzędzia w Mach3 pl

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
jr65
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 9
Rejestracja: 30 mar 2010, 23:03
Lokalizacja: Piekary Śląskie

Konfiguracja czujnika długości narzędzia w Mach3 pl

#1

Post napisał: jr65 » 28 wrz 2010, 13:59

Chciałem prosić o pomoc w konfiguracji czujnika długości narzędzia do programu Mach3 pl

przeglądałem to forum doczytałem się że potrzeny jest makr, ale niestety nie wiem jak powinien taki wyglądać, (napisać i udostępnić w postaci pliku do wgrania)
menu/Operator/EdytorVBSkrypt

Czujnik mam podłaczony do 15 pina do którego wejścia go przypisać w porty/piny chciałem prosić o pomoc krok po kroku jak to zrobić z pewnością innym początkującym też się przyda

dzięki bardzo



Tagi:

Awatar użytkownika

niko65
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 430
Rejestracja: 27 lut 2009, 00:05
Lokalizacja: Stary Sącz

#2

Post napisał: niko65 » 28 wrz 2010, 14:22



Autor tematu
jr65
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 9
Rejestracja: 30 mar 2010, 23:03
Lokalizacja: Piekary Śląskie

#3

Post napisał: jr65 » 28 wrz 2010, 16:07

Dzięki Nico65

Jeszcze jedno przypisałem Pin 15 do Próbe w zakładce diagnostyka zapala mi się kontrolka Digitizer wgrałem makro z linku powyżej uruchomiłem makro Oś Z zjeżdża do -20 później 0 oś jedzie na 20 staje zapisuje niby ok

Ale teraz pytanie niby proste, ale teraz jak wywołać tą procedurę akurat zera materiału jak wynika z makra nie widzę przycisku wywołujacego polecenie zera materiału czy długości narzędzia

W głownym oknie jest okienko "Dane Narzędzia", a w nim "Auto zero Narzedzia" (to chyba ten przycisk) ale po naciśnieciu wyskakuje mi w statusie Not Yet Implemented ( nie wprowadzono)
i niewiem co dalej ???

poniżej jest jeszcze przycisk "Pamiętaj" i "Powrót"

może mnie ktoś oświecić co dalej :sad:
Andrzej


krzysiekgrab
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 741
Rejestracja: 16 lip 2008, 15:07
Lokalizacja: Polska, Augustow

#4

Post napisał: krzysiekgrab » 28 wrz 2010, 18:32

jest taki folder mach3/ macros tam należy stworzyć makro ( najlepiej przypisać je do komendy m6- jest to wywołanie wymiany narzędzia), następnie będziemy mogli z g-kodu używając m6 wywołać wymianę narzędzia.
„Jeżeli nie znasz portu do którego płyniesz,
to żadne wiatry nie będą Ci sprzyjać”

Programowanie sterowników PLC Fatek, HMI Weintek, sterowniki maszyn CNC, Mach3;


jacek1708
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 3
Posty: 28
Rejestracja: 01 paź 2007, 21:49
Lokalizacja: W-wa

#5

Post napisał: jacek1708 » 28 wrz 2010, 21:17

Tu jest wszystko na kilka sposobów https://www.cnc.info.pl/topics45/autoze ... akro+mach3


Autor tematu
jr65
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 9
Rejestracja: 30 mar 2010, 23:03
Lokalizacja: Piekary Śląskie

#6

Post napisał: jr65 » 29 wrz 2010, 02:12

Dzięki Panowie działa :grin:

Mach3 wersja R2.60pl lepiej działa ten makr poniżej:

CurrentFeed = GetOemDRO(818) 'Get the current feedrate to return to later
PlateThickness = GetUserDRO(1151) 'Z-plate thickness DRO

If GetOemLed (825)=0 Then 'Check to see if the probe is already grounded or faulty
DoOEMButton (1010) 'zero the Z axis so the probe move will start from here
Code "G4 P2" ' this delay gives me time to get from computer to hold probe in place
Code "G31Z-20 F100" 'probing move, can set the feed rate here as well as how far to move
While IsMoving() 'wait while it happens
Wend
ZProbePos = GetVar(2002) 'get the axact point the probe was hit
Code "G0 Z" &ZProbePos 'go back to that point, always a very small amount of overrun
While IsMoving ()
Wend
Call SetDro (2, PlateThickness) 'set the Z axis DRO to whatever is set as plate thickness
Code "G4 P0.25" 'Pause for Dro to update.
Code "G0 Z20" 'put the Z retract height you want here
Code "(Z axis is now zeroed)" 'puts this message in the status bar
Code "F" &CurrentFeed 'Returns to prior feed rate
Else
Code "(Z-Plate is grounded!) " 'this goes in the status bar if aplicable
Exit Sub
End If



Dzięki bardzo :smile:
Andrzej

Awatar użytkownika

Piotrjub
Moderator
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1495
Rejestracja: 11 kwie 2005, 13:00
Lokalizacja: Gdansk

#7

Post napisał: Piotrjub » 29 wrz 2010, 16:37

patrząc jak się ludziska meczą podepnę makro napisane przez nas do MACH-a do czujnika długości narzędzia

Dim ZOFFSET, ZTOP, ZBOTTOM, ZGODOWN, ZABS, ZUPFINE, Z_SAFE
Dim ToolLen
Dim Tool
Dim SENS_Z, SENS_X, SENS_Y, Z_LIFT, Z_PARK, MAX_DTRAVEL
Dim SPD_FAST, SPD_FINE

' -----------------------------------------------------
' Configuration parameters
' -----------------------------------------------------
SENS_Z = -129 ' Sensor Z position
Z_SAFE = -45 ' Safe Z above sensor (for rapid move)
SENS_X = 8.17 ' Sensor X position
SENS_Y = 250 ' Sensor Y position
MAX_DTRAVEL = 100 ' Max down travel
SPD_FAST = 1000
SPD_FINE = 100 ' Fast and fine speeds
Z_LIFT = 1.5 ' Z lift for fine probing
Z_PARK = -5 ' Park after probe absolute Z position
' -----------------------------------------------------

Message( "Dokonuję pomiaru długości narzędzia..." )
If GetOEMLed(807) Then
Message( "TC ERROR: X Axis not referenced!" )
End
End If
If GetOEMLed(808) Then
Message( "TC ERROR: Y Axis not referenced!" )
End
End If
If GetOEMLed(809) Then
Message( "TC ERROR: Z Axis not referenced!" )
End
End If
If GetOEMLed(825) Then
Message( "TC ERROR: Czujnik pomiaru cały czas załączony! pomiar przerwany." )
End
End If
If GetOEMLed(11) Then
Message( "TC ERROR: Do pomiaru narzędzia wyłącz wrzeciono!" )
End
End If

Tool = GetDRO(24) ' Get current tool index
' narzedzie 0 nie podlega pomiarowi
If(Tool = 0) Then
Message( "TC INFO: Narzędzie nr:0 nie podlega pomiarom długości" )
End
End If

WaitForMove
Code("G43T0")
Code("G43H0") ' turn off tool lenght compensation
WaitForMove

' Move to PARK
Code("G0G53 Z" & Z_PARK)
WaitForMove
' Move to XY position of tool correction sensor
' Code("G0G53 X" & SENS_X & " Y" & SENS_Y)
Code("G0G53 X" & SENS_X)
WaitForMove
' Get actual Z offset
ZOFFSET = GetOEMDRO(49)
' Rapid go down to safe distance above sensor
Code("G0G53 Z" & Z_SAFE)
WaitForMove

' Probe
ZTOP = GetDRO(2) ' actual Z position
ZGODOWN = ZTOP - MAX_DTRAVEL ' max down travel
Code("G31 Z" & ZGODOWN & "f" & SPD_FAST)
WaitForMove
ZUPFINE = GetOEMDRO(85) + Z_LIFT
Code("G1G53 Z" & ZUPFINE & "f" & SPD_FAST) ' go up Z_LIFT
WaitForMove
' fine probe
Code("G31 Z" & ZGODOWN & "f" & SPD_FINE)
WaitForMove
ZBOTTOM = GetVar(2002) 'get probe activation point

' Lift Z to abs park position
Sleep(50)
Code("G0G53 Z" & Z_PARK)
WaitForMove

ZABS = ZBOTTOM + ZOFFSET
ToolLen = -(SENS_Z - ZABS)
WaitForMove
SetOEMDRO(42, ToolLen)
Code("G43T" & Tool) ' G43 to sync value in system
Code("G43H" & Tool) ' G43 to sync value in system
WaitForMove
Message ("Z Value : " & ToolLen)
' -----------------------------------------------------------------------------
Sub WaitForMove ()
While IsMoving()
Sleep(15)
Wend
End Sub

Awatar użytkownika

kostner
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1290
Rejestracja: 13 gru 2005, 04:41
Lokalizacja: Haan / Niemcy

#8

Post napisał: kostner » 30 wrz 2010, 00:58

Piotr ale makro zes od.....lil wow :)
Jeżeli prąd nas nie zabije to nas napewno nie wzmocni :(


jacek1708
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 3
Posty: 28
Rejestracja: 01 paź 2007, 21:49
Lokalizacja: W-wa

#9

Post napisał: jacek1708 » 30 wrz 2010, 15:54

Jak Kolega jest taki dobry w pisaniu "makra" to ja poproszę do czegoś takiego:

Awatar użytkownika

k-m-r1
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1418
Rejestracja: 23 cze 2008, 10:38
Lokalizacja: OOL lub DW
Kontakt:

#10

Post napisał: k-m-r1 » 30 wrz 2010, 20:39

Srodek centrowanie

Kod: Zaznacz cały


If GetOemLed (825) <> 0 Then 		'sprawdzanie stanu sondy
	Code "(Płyta próby jest uziemiona sprawdź  połączenie i spróbuj ponownie)" 
Else
	FeedCurrent = GetOemDRO(818) 	'bieżące ustawienia
	XCurrent = GetDro(0) 
	YCurrent = GetDro(1) 

	Code "G4 P1"			'Pauza 1 sek
	Code "F4"			'Niska prędkość obrotów

Rem	Sonda lewo
	
	XNew = Xcurrent - 3		'Sonda 3 cm w lewo
	Code "G31 X" &XNew
	While IsMoving()		'czeka na ruch do końca
	Wend
	XPos1 = GetVar(2000)		'lokalizacja sondy

	Code "G0 X" &XCurrent		'szybki powrót
Rem	Sonda prawo
	
	XNew = XCurrent + 3		'3 cm w prawo
	Code "G31 X" &XNew
	While IsMoving() 
	Wend
	XPos2 = GetVar(2000) 

	XCenter = (XPos1 + XPos2) / 2	'Środek jest między XPos1 i XPos2
	Code "G0 X" &XCenter		'szybki ruch do środka

Rem	Sonda w górę

	YNew = YCurrent + 3
	Code "G31 Y" &YNew
	While IsMoving() 
	Wend
	YPos1 = GetVar(2001) 

	Code "G0 Y" &YCurrent

Rem	Sonda w dół
	
	YNew = YCurrent - 3
	Code "G31 Y" &YNew
	While IsMoving() 
	Wend
	YPos2 = GetVar(2001) 

	YCenter = (YPos1 + YPos2) / 2

Rem	przejdź do centrum
	
	Code "G0 Y" &YCenter
	While IsMoving () 
	Wend

	Code "F" &FeedCurrent  		'przywrócić początkową wartość obrotów
End If

MACH3 cncTworzenie Makr do palników magazynków THC OHC inneEKRANY dla firm producentów maszyn Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 703 196 Tomek Komor [email protected]

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”