Clube CNC Brasil

Registre-se ou faça seu Login e tenha acesso a todas as fotos e anexos de nosso Clube.



Autor Tópico: Auto zero do eixo Z parando fora do ponto.  (Lida 1768 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline Renato Ferreira

  • Resina
  • *
  • Mensagens: 5
  • Total Likes: +0/-0
  • Topic Likes: +0/-0
  • Sexo: Masculino
  • Clube CNC Brasil
  • Sexo: Masculino
Auto zero do eixo Z parando fora do ponto.
« Online: 14/10/18 - 20:05 »
Já tentei de tudo, já assisti vídeos, busquei no fórum e nada de encontrar a solução.
Eu uso este script para fazer o zero do eixo Z:

Código: Voce nao tem permissao p/ ver este link. Registre-se ou faca Login
'*************************************************************************************************************
'*********************************** Z AXIS TOUCH PLATE SCRIPT FOR MACH3 *************************************
'******FONT*************************     FOR BOTH INCH AND MM UNITS      *************************************
'*********Courier*******************   CHARLIE SARSFIELD REV11 JAN/2018  *************************************
'***********************************     WWW.YOUTUBE.COM/SUNNY5RISING    *************************************
'***********************************         SUNNY5RISE@GMAIL.COM        *************************************
'*************************************************************************************************************

'----- USER VARIABLES FOR DISTANCES, FEED RATES, TOUCH PLATES, OPTIONS ---------------------------------------
If GetParam("Units") = 0 Then
 '* METRIC VALUES *
 VarUnits = "  MM"
 VarMaxDistance = -25.4 'MAX Z TRAVEL * ALWAYS MAKE NEGATIVE
 VarFeedRate = 127 'MM/MIN DOWN FEEDRATE
 VarStandOff = 1.27 'STANDOFF DISTANCE ABOVE PROBE CONTACT
 VarTouchPlate = 20 'PRIMARY/DEFAULT TOUCH PLATE THICKNESS
 VarSecondPlate = 0.038 'SECONDARY TOUCH PLATE THICKNESS * OPTION FOR CHOICE DIALOG
 VarThirdPlate = 0.012 'TERTIARY TOUCH PLATE THICKNESS * OPTION FOR CHOICE DIALOG
Else
 '* SAE VALUES *
 VarUnits = " INCH"
 VarMaxDistance = -1.0 'MAX Z TRAVEL * ALWAYS MAKE NEGATIVE
 VarFeedRate = 5 'INCH/MIN DOWN FEEDRATE
 VarStandOff = 0.05 'STANDOFF DISTANCE ABOVE PROBE CONTACT
 VarTouchPlate = 0.79 'PRIMARY/DEFAULT TOUCH PLATE THICKNESS
 VarSecondPlate = 0.0015 'SECONDARY TOUCH PLATE THICKNESS * OPTION FOR CHOICE DIALOG 
 VarThirdPlate = 0.0005 'TERTIARY TOUCH PLATE THICKNESS * OPTION FOR CHOICE DIALOG
End If

VarRunTheChoice = 1 'RUN PLATE CHOICE DIALOG?  0=NO  1=YES

VarDelayInSec = 0 'DEFAULT SECONDS TO DELAY MOTION
VarBeepOrSpeak = 2 'COUNTDOWN AUDIO: 0=NONE 1=BEEP 2=SPEAK
VarSecOfAudio = 5 'COUNTDOWN SECOND AT WHICH AUDIO BEGINS

VarCompleteAudio = 3 'END SIGNAL: 0=NONE 1=BEEP 2=SPEAK 3=WAV_AUDIO_FILE
VarWavAudioFile = "C:\MACH3\ToolCompleteSND1.wav" 'WAV_AUDIO_FILE LOCATION

'*************************************************************************************************************
'*************************************************************************************************************

'----- GET INITIAL ENVIRONMENT SETTINGS FOR LATER REINSTATEMENT ----------------------------------------------
VarInitialLinearMode = GetOemDRO(819)        'LINEAR MODE  G00/G01
VarInitialDistMode = GetOemLED(48)           'DISTANCE MODE G90/G91   
VarInitialFeedRate = GetOemDRO(818)          'FEEDRATE
VarInitialInhibit = GetParam("ZInhibitOn")   'Z INHIBIT STATUS  OFF/ON
VarInitialZScale = GetParam("ZScale")      'Z SCALE VALUE
VarInitialFRO = GetOemDRO(821)      'FEEDRATE OVERRIDE PERCENTAGE
Message ""              'CLEAR STATUS LINE TEXT


'----- CHECK DIGITIZE STATE; 0=CLEAR 1=ACTIVE ----------------------------------------------------------------
If GetOemLED (825) <> 0 Then
 MachMsg("Digitize Status Not Clear. Check Probe/Connections And Try Again!","*** ERROR! ***",0)
 End 'END SCRIPT
End If


'----- CHECK IF USER WANTS TO RUN PLATE CHOICE DIALOG --------------------------------------------------------
If VarRunTheChoice = 1 Then RunTheThing 'RUN SUBROUTINE 


'----- ACTIVATE TIME DELAY IF USED ---------------------------------------------------------------------------
If VarDelayInSec <> 0 Then
 Do Until VarDelayInSec = 0 'LOOP UNTIL SECONDS = ZERO
  Message VarDelayInSec 'DISPLAY SECONDS VALUE IN STATUS LINE
   If VarDelayInSec < VarSecOfAudio + 1 Then
Select Case VarBeepOrSpeak
       Case 1 'OPTION BEEP
        Beep
       Case 2 'OPTION SPEAK
            Speak(VarDelayInSec)
        End Select
   End If   
  Sleep 1000   'PAUSE 1 SEC.
  VarDelayInSec = VarDelayInSec - 1 'REDUCE SECONDS BY 1 AFTER EACH LOOP
 Loop
End If


'----- PREPARE FOR MOVE ----- MOVE PROBE DOWN TOWARD CONTACT -------------------------------------------------
SetParam("ZInhibitOn",0) 'TURN Z INHIBIT OFF
SetParam("ZScale",1.0) 'SET Z SCALE TO 1.0
DoOemButton(1014) 'CANCEL FEED OVERRIDE
SetOemDRO(802,0)  'ZERO Z AXIS DRO
Sleep 200 'DELAY TO ALLOW DRO TO CHANGE
Message "Auto Tool Zero Running..."
Code "G90 G31 Z" &VarMaxDistance &"F" &VarFeedRate 'MOVE DOWN @ FEEDRATE
 While IsMoving() 'WAIT UNTIL MOVE IS COMPLETE BEFORE PROCEEDING
 Wend


'----- GET Z CONTACT POSITION AND TEST FOR MAX TRAVEL ------ MOVE TO STANDOFF ------ UPDATE Z AXIS DRO -------
If GetVar(2002) <= VarMaxDistance + .001 Then   
 MachMsg("Maximum Travel Reached. Reposition Z Axis Closer To Touch Plate And Try Again!","*** OOPS! ***",0)
 Message ""
 RETURNSTATE    'CALL REINSTATE SUBROUTINE
 End 'END SCRIPT
Else
 Beep
 Code "G90 G0 Z" &GetVar(2002) 'MOVE TO CONTACT POINT DUE TO OVERRUN
  While IsMoving()
  Wend
 SetOemDRO(802,0) 'ZERO Z AXIS DRO
 Sleep 200
 Code "G90 G0 Z" &VarStandOff 'MOVE TO STANDOFF DISTANCE
  While IsMoving ()
  Wend
 SetOemDRO(802, VarStandOff + VarTouchPlate)     'SET Z DRO (STANDOFF + PLATE THICKNESS)
 Sleep 200
  Select Case VarCompleteAudio
    Case 1 'OPTION BEEP
      Beep
    Case 2 'OPTION SPEAK
      Speak("Tool Zero Complete.")
    Case 3 'OPTION WAV_AUDIO_FILE
      PlayWave(VarWavAudioFile)
  End Select
 Message "Auto Tool Zero Complete! ***Remove Touch Plate***"
End If
RETURNSTATE     'CALL REINSTATE SUBROUTINE
End 'END SCRIPT

'******************************************* SUBROUTINES BELOW ***********************************************

'----- SUBROUTINE TO RETURN INITIAL SETTINGS -----------------------------------------------------------------
Sub RETURNSTATE
 'REINSTATE INITIAL FEEDRATE
 Code "F" &VarInitialFeedRate
 
 'REINSTATE DISTANCE MODE  0=G91  -1=G90
 If VarInitialDistMode = 0 Then Code "G91" Else Code "G90"

 'REINSTATE LINEAR MODE  0=G00  1=G01
 If VarInitialLinearMode = 0 Then Code "G00" Else Code "G01"

 'REINSTATE Z INHIBIT STATUS 0=OFF 1=ON
 If VarInitialInhibit = 1 Then SetParam("ZInhibitOn",1)
 
 'SET Z SCALE TO INITIAL VALUE
 If VarInitialZScale <> 1.0 Then SetParam("ZScale",VarInitialZScale)

 'SET FEEDRATE OVERRIDE TO INITIAL VALUE
 If VarInitialFRO <> 100 Then SetOemDRO(821,VarInitialFRO)
End Sub


'----- DIALOG SUBROUTINE FOR TOUCH PLATE CHOICE AND TIME DELAY -----------------------------------------------
Sub RunTheThing
  Dim PlateList$ (2) 'DECLARE 3 ITEM ARRAY FOR PLATE SIZE LIST
  If GetParam("Units") = 0 Then
    'MM FORMATTING FOR LISTBOX
PlateList (0) = Format(VarTouchPlate,"00.000")   'FILL ARRAY 1
PlateList (1) = Format(VarSecondPlate,"00.000")   'FILL ARRAY 2
PlateList (2) = Format(VarThirdPlate,"00.000")   'FILL ARRAY 3
  Else
    'INCH FORMATTING FOR LISTBOX
PlateList (0) = Format(VarTouchPlate,"0.0000")   'FILL ARRAY 1
PlateList (1) = Format(VarSecondPlate,"0.0000")   'FILL ARRAY 2
PlateList (2) = Format(VarThirdPlate,"0.0000")   'FILL ARRAY 3
  End If

 Dim UnitList$ (0) 'DECLARE 1 ITEM ARRAY FOR UNIT LISTBOX
UnitList (0) = VarUnits   'FILL ARRAY 1

 'SETUP DIALOG CONTROLS
 Begin Dialog PlateChoice 110,68,"Touch Plate"
  ListBox 15,20,35,30, PlateList$(),.Lstbox2
ListBox 64,20,25,10, UnitList$(),.Listbox1
  GroupBox 8,8,95,45,"Choose Plate Thickness",.GroupBox1
OKButton 57,34,37,12
Text 13,55,100,15, "Delay"
TextBox 37,55,30,10, .SecText
        Text 70,55,30,15, "Seconds"         
 End Dialog

 Dim Dlg1 As PlateChoice
 Dlg1.SecText = VarDelayInSec 'FILL SECONDS TEXTBOX WITH DEFAULT VALUE

  Button = Dialog (Dlg1) 'SHOW DIALOG AND WAIT FOR BUTTON REPLY

  If Button = 0 Then 'IF CLOSE BUTTON
   Message "Auto Tool Zero CANCELED"
   End 'END SCRIPT
  End If

  'CHECK THAT SECONDS WAS ENTERED NUMERIC
  If IsNumeric(Dlg1.SecText) = True Then
        VarDelayInSec = Int(Dlg1.SecText)
  Else
MachMsg("*****  SECONDS MUST BE ENTERED IN NUMERIC FORMAT! *****", _
"  Substance Abuse Is Not Recommended  ",0)
RunTheThing 'RESTART SUB
  End If
 
 'SET PLATE VARIABLE BASED ON PLATE CHOICE
 PlateNum = Dlg1.Lstbox2
 Select Case PlateNum
      Case 0 'PRIMARY PLATE
        'WILL USE PRIMARY/DEFAULT THICKNESS
      Case 1 'SECONDARY PLATE
      VarTouchPlate = VarSecondPlate
      Case 2 'TERTIARY PLATE
        VarTouchPlate = VarThirdPlate
 End Select
End Sub

'*************************************************************************************************************
'*************************************************************************************************************         
     

Como podem ver nó início do código em "METRIC VALUES"  A espessura do probe é de 20 mm (VarTouchPlate = 20      'PRIMARY/DEFAULT TOUCH PLATE THICKNESS) e a distância que a fresa deve parar após tocar o probe é de 1,27 mm (VarStandOff = 1.27      'STANDOFF DISTANCE ABOVE PROBE CONTACT)

Acontece não sei porque, se isso é uma falha do script ou da interface entre a máquina e o PC rsrsrs, a fresa está parando muito acima dos 1,27 mm acima do probe. A máquina está subindo uns 60mm acima do probe e no eixo Z indica que subiu 20mm. No momento ela está subindo até tocar no fim de curso e volta cerca de 5 mm sem ativá-lo. Muito estranho este comportamento. Quando instalei o script ele funcionou sem problemas e ao final emitia uma voz robótica "Tool zero complete". Acho que muitos já devem ter usado este script, não consigo visualizar no script onde está o valor que faz a máquina subir até esta posição,  se alguém puder ajudar agradeço. 
« Última modificação: 14/10/18 - 20:07 por Renato Ferreira »

Clube CNC Brasil

Auto zero do eixo Z parando fora do ponto.
« Online: 14/10/18 - 20:05 »

 

SiteLock