Machsupport Forum

Mach Discussion => General Mach Discussion => Topic started by: gnorton on August 19, 2012, 01:44:53 PM

Title: Touch Off Macro Half Works
Post by: gnorton on August 19, 2012, 01:44:53 PM
I've got a touch off plate, but the software only half works.  By this I mean the tool comes down and stops when it touches the plate, but it does not then retract and it does not set the Z height.  Also, after running this macro I cannot manually jog the machine until I reset it.  Can someone point out what I'm doing wrong?  I "borrowed" this macro code from these forums (thanks to whomever wrote it).  The code seems OK to me.

Thanks.
Greg

Code: [Select]
'Tool Zero Setting Macro

' Change the following three lines to suit your machine
PlateThickness = GetOEMDRO(1001) ' Thickness of touch plate
RetractClearance = 0.100 ' Clearance above touch plate to retract to
ProbeFeed = 5      ' Feedrate to use for probing

' Define some constants
ZDRO = 2      ' Z Axis DRO
AbsoluteModeLED = 48   ' Absolute Coordinate Mode LED
IncrementalModeLED = 49   ' Incremental Coordinate Mode LED
FeedrateDRO = 818   ' OEM code for feedrate DRO
ProbeLED = 825      ' OEM code for probe input LED
ZTouchDRO = 2002   ' OEM code for DRO that holds Z touch position

' Do nothing if probe is already grounded
If GetOemLed(ProbeLED) = 0 Then

   ' Wait a few seconds for user to get touchplate in place
   Code "G4 P2"
   
   ' Save current feedrate
   CurrentFeed = GetOemDRO(FeedrateDRO)
   
   ' Save current coordinate mode
   AbsMode = GetOemLED(AbsoluteModeLED)

   ' Set absolute coordinate mode
   Code "G90"

   ' Zero Z DRO
   Call SetDro (ZDRO, 0.0000)

   ' Pause for DRO to update
   Code "G4 P0.5"

   ' Do the touch move
   Code "G31 Z-0.5 F" & ProbeFeed

   ' Wait for it to complete
   While IsMoving()
   Wend

   ' Delay a bit for Huh
   Code "G4 P0.25"

   ' Get the Z position where probe input triggered
   ZProbePos = GetVar(ZTouchDRO)

   ' Go back to touch position (G31 backs off after touch)
   Code "G0 Z" & ZProbePos

   ' Wait for it to complete
   While IsMoving ()
   Wend

   ' Set Z DRO to touch plate thickness
   Call SetDro (ZDRO, PlateThickness)

   ' Pause for DRO to update
   'Code "G4 P0.5"

   ' Retract Z to SafeZ, if enabled, else to RetractClearance above plate
   If(IsSafeZ() = 1) Then
      SafeZ = GetSafeZ
      If  SafeZ  > PlateThickness Then
         GotoSafeZ()
      End If
   Else
      RetractHeight = PlateThickness + RetractClearance
      Code "G0 Z" & RetractHeight
   End If
   
   ' Tell user we're done
   Code "(Z axis is now zeroed)"

   ' Reset feedrate to original value
   Code "F" & CurrentFeed
   
   ' Reset coordinate mode to original value
   If AbsMode = 0 Then
      Code "G91"
   End If
Else
   Code "(Z-Plate is grounded, check connection and try again)"
End If

Exit Sub
Title: Re: Touch Off Macro Half Works
Post by: Hood on August 19, 2012, 05:04:54 PM
Is your probe seen correctly by Mach, could you have its active state the wrong way?
Hood
Title: Re: Touch Off Macro Half Works
Post by: gnorton on August 19, 2012, 06:02:08 PM
Hood,

Yes, I believe the probe is being seen correctly by Mach.  On the diagnostics screen, the digitize LED lights up when the bit touches the plate.  Also, when executing the macro, the Z axis stops as soon as it touches the plate.  The code is also checking to see if the probe is already active when the macro starts, so I should have received a message to that effect if this were the case.

Thanks for your help.
Greg
Title: Re: Touch Off Macro Half Works
Post by: Hood on August 19, 2012, 06:16:54 PM
Oh well only other thing I can think of, assuming the macro is correct, that you have some noise on the probe.
Presume you are using the parallel port and not some external controller?
Hood
Title: Re: Touch Off Macro Half Works
Post by: gnorton on August 19, 2012, 06:40:51 PM
Hood,

That is correct, I'm using the parallel port.

Thanks.
Greg
Title: Re: Touch Off Macro Half Works
Post by: ger21 on August 19, 2012, 07:57:36 PM
Do you have a DRO 1001 on your screen for the plate thickness?

If not, change

PlateThickness = GetOEMDRO(1001) ' Thickness of touch plate

to

PlateThickness = .125 ' Thickness of touch plate

with the .125 being the thickness of your plate.
Title: Re: Touch Off Macro Half Works
Post by: gnorton on August 20, 2012, 10:08:41 AM
Gerry,

I modified the macro as you suggested and there was no change in behavior.  So I removed some of the complexity to try and locate the offending line.  It seems that the machine is just ignoring the retract move and I still get the message saying "Z Axis is now zeroed".  The Z axis DRO is being set properly, just no retraction move is done.

Any suggestions are welcome, below is the current version that I'm using that has been stripped down to the bare minimum.

Greg

Code: [Select]
'Tool Zero Setting Macro

' Change the following three lines to suit your machine
PlateThickness = 0.060 ' Thickness of touch plate
RetractClearance = 1.000 ' Clearance above touch plate to retract to
ProbeFeed = 5      ' Feedrate to use for probing

' Define some constants
ZDRO = 2      ' Z Axis DRO
' Wait a few seconds for user to get touchplate in place
Code "G4 P2"
   
' Do the touch move
Code "G31 Z-0.5 F" & ProbeFeed

' Wait for it to complete
While IsMoving()
Wend

' Delay a bit
Code "G4 P0.25"

' Set Z DRO to touch plate thickness
Call SetDro (ZDRO, PlateThickness)

Code "G0 Z0.250"
   
' Tell user we're done
Code "(Z axis is now zeroed)"

Exit Sub
Title: Re: Touch Off Macro Half Works
Post by: Hood on August 20, 2012, 10:25:40 AM
Do you have a licence? I am not sure if it is required or not for probing.
Hood
Title: Re: Touch Off Macro Half Works
Post by: ger21 on August 20, 2012, 10:35:03 AM

Try changing this:

   If(IsSafeZ() = 1) Then
      SafeZ = GetSafeZ
      If  SafeZ  > PlateThickness Then
         GotoSafeZ()
      End If
   Else
      RetractHeight = PlateThickness + RetractClearance
      Code "G0 Z" & RetractHeight
   End If

to this:

RetractHeight = PlateThickness + RetractClearance
Code "G0 Z" & RetractHeight


Retracting to SafeZ in a macro is dangerous, because the macro doesn't know if Safe Z is in work coordinates or machine coordinates.
Title: Re: Touch Off Macro Half Works
Post by: Tweakie.CNC on August 20, 2012, 11:15:16 AM
Hi Greg,

This is a shot in the dark but try adding the following line to your script, just before the Code "G0 Z0.250" line and see if that cures the problem.

DoOemButton (1003)

Tweakie.

Title: Re: Touch Off Macro Half Works
Post by: gnorton on August 20, 2012, 11:13:33 PM
OK, very strange behavior is happening now, see below.  But first to address the questions:

Hood - yes I'm using a licensed copy of Mach.

Gerry - thanks for the info about the safe Z retract.  I will add that back to the macro when I have figured out why it's not behaving properly after touching the plate.  For now I would be happy to get correct and consistent results from this macro.

Tweakie - I added your line "DoOemButton(1003)" where you specified.  This caused some very strange behavior.  What does this do?

1.  The direction of movement was frequently up instead of down when doing the probe move.  But it wasn't consistently wrong.  This seems to be before it even executed your new line.

2.  When your line was in the macro, after touching the plate, the machine moved on the X and Z axes simultaneously when it tried to retract.  It moved about 2 inches to the right as well as moving up about the 0.25 inches specified by the macro.

I am quite mystified by this, so if anyone can set me straight I would appreciate it very much.

Thanks to everyone.
Greg

Title: Re: Touch Off Macro Half Works
Post by: Tweakie.CNC on August 21, 2012, 03:04:25 AM
Hi Greg,

Sorry to say this but it sounds to me like your problems are a lot more deeply routed than just the operation of this probing script.

As there is nothing in the probing script which could possibly command any X Axis movement you should perhaps look at your machine setup in general as it is exhibiting signs of being extremely unstable.

It could possibly be with your Mach installation, your PC, the motion controller or even electrical noise pickup on your wiring but you would be wise to investigate and resolve this issue first.

Tweakie.
Title: Re: Touch Off Macro Half Works
Post by: gnorton on August 27, 2012, 04:50:07 PM
Tweakie,

Where would I even start for something like this?  I should note that the machine works fine in regular operation.  The only time I have this problem is when using this macro?  If it was a systemic problem with machine itself I would think that other odd behaviors would be showing up at other times when I'm using the machine.

Thanks for your input, I'm just not sure where to start looking right now.
Greg
Title: Re: Touch Off Macro Half Works
Post by: Tweakie.CNC on August 28, 2012, 02:07:38 AM
Hi Greg,

I understand your dilemma but the problem is not so much with your macro (which works fine here although, as Gerry has pointed out can be improved upon) as it is with the way in which the Mach3 software running on your PC handles it.

Because I and many others use the Auto Tool Zero function, without issue and on a daily basis I can only conclude that your problem will somehow be with your setup. If possible could you perhaps try the temporary use of another PC and see if this makes any difference ??

Tweakie.