Konfiguracja czujnika długości narzędzia w Mach3 pl
-
Autor tematu - 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
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
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:
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 3
- Posty: 9
- Rejestracja: 30 mar 2010, 23:03
- Lokalizacja: Piekary Śląskie
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
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

Andrzej
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 1
- Posty: 741
- Rejestracja: 16 lip 2008, 15:07
- Lokalizacja: Polska, Augustow
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;
to żadne wiatry nie będą Ci sprzyjać”
Programowanie sterowników PLC Fatek, HMI Weintek, sterowniki maszyn CNC, Mach3;
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 3
- Posty: 9
- Rejestracja: 30 mar 2010, 23:03
- Lokalizacja: Piekary Śląskie
Dzięki Panowie działa
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

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

Andrzej
-
- Moderator
-
ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1494
- Rejestracja: 11 kwie 2005, 13:00
- Lokalizacja: Gdansk
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
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
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 6
- Posty: 1417
- Rejestracja: 23 cze 2008, 10:38
- Lokalizacja: OOL lub DW
- Kontakt:
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
[b]MACH3 cnc[/b]Tworzenie Makr do palników magazynków THC OHC inne[b]EKRANY dla firm producentów maszyn[/b] Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 708 196 Tomek Komor [email protected]