Thread: g31 code probe
well gentlemen, three months ago i never thought id be asking for help with g code..if im honest i didnt think id be this far in............im after a piece of code to put into mach3 to get my touch off probe working.iv seen some posts on other forums but im not a member so cant copy the code.....weve got my touch off fitted and wired so on my mach plasma screen it shows a digitise light when activated but does nothing more...would like it to zero my dro and lift up to a designated point........
im learning and its a steep curve.if im using the wrong termonology please correct me...............
What do you need it to do exactly? You have a probe that will detect the top of the work and set Z DRO to a preset value?
I've just been working on this for my router, based heavily on code published elsewhere (including 53 pages of posts on CNCZone in just one topic, making sure that I had the latest version...). It's pretty straightforward, Just a couple of lines of code to do the work. Plus a couple of dozen lines to sort out issues like units, abs/inc mode, coord display mode, etc...
Be happy to throw something together if you really can't find what you want elsewhere but I would suggest that you pick up a known version from CNCZone - worth signing up to it for that alone.
Probing is really pretty simple, and the simplest is to place your probe a few mm over the touch plate (less than 3 mm in my example), zero Z by clicking on the button and simply type for example: G31 Z-3 F400 (assuming you have mm units). The code will start move your Z towards the touch plate with a speed of 400mm/min and will stop as soon as the probe touches the plate, or as soon as it reaches -3 mm, whichever come first. If the probe stops after it touched the plate you can zero Z again and that's it.
Yes, there are fancier ways of doing it as well but either you take the code you think fits your needs or create your own which fits your ideas of how it should behave. Anyway, I can paste my code in here for anyone to use, but cannot promise to spend time discussing it or how to connect the touch plate/probe and so on. There is plenty public information about this on the Internet.
Sorry, I had no time last night. Will try again tonight.
Here is the code I use for the auto Z zero. Use it at your own risk.
You need to add this code to a button macro. When the code is added and the button is pushed, assuming you have done the configuration right, the Z axis will start moving down at 400mm/min. When the probe touches the touch plate it will stop, back off 0.5mm and will make a new probing at 4mm/min. When probing is done the probe will move up 2mm and the DRO will display the touch probe height + 2mm. This way the probing is extremely accurate. The touch plate height is critical, you have to measure and enter your own value in ZOffset.
Good luck in using it, but please note, use it at your own risk, I take no responsibility for any damage or injury. Test well before the first use, and every time you attach the probe before running the code. You must test it to see if the electrical contact is OK. The probe must be placed less than 20mm above the touch plate, the execution stops if no contact made within 20mm. If you want to change that then change the value of ZMove.
CurrentFeed = GetOemDRO(818) ZMove = 20.00 'Total lenght of Probe to move before stop or no contact made. ZOffset = 1.47 ' Plate Hight. Replace the value with your touch plate height ZSal = ZOffset + 2.00 '+ Free Hight. Will position the probe 2 mm over the material. StopZmove = 0 If GetOemLed (825)=0 Then DoOEMButton (1010) Code "G31 Z-"& ZMove & "F400" While IsMoving() Sleep(200) Wend Probepos = GetVar(2002) ' Improve accuracy Code "G0 Z" & Probepos + 0.5 ' Move back a bit to get a new reading While IsMoving() Sleep(200) Wend Code "G31 Z-" & ZMove & "F4" ' Move very slow for greater accuracy While IsMoving() Sleep(200) Wend Probepos = GetVar(2002) ' Z var for probe If Probepos = - ZMove Then responce = MsgBox ("**ERROR** " , 4 , "Probe **ERROR**" ) Code "G0 Z10" StopZmove = 1 Code "F" &CurrentFeed End If If StopZmove = 0 Then Code "G0 Z" & Probepos While IsMoving () Sleep (200) Wend Call SetDro (2, ZOffset) Code "G0 Z" & ZSal While IsMoving() Sleep(200) Wend Code "(Z zeroed)" Code "F" &CurrentFeed End If Else Code "(Check Ground Probe)" End If Exit Sub '-------------------
thanks for your help yet again chaps.thankyou
By Noplace in forum General ElectronicsReplies: 1Last Post: 18-06-2016, 10:12 AM
By Davek0974 in forum Machine DiscussionReplies: 13Last Post: 03-06-2016, 01:58 PM
By dudz in forum CAD & CAM SoftwareReplies: 8Last Post: 02-11-2015, 10:51 PM
RFQ: Cooler probeBy DAHammond in forum Projects, Jobs & RequestsReplies: 0Last Post: 10-06-2015, 04:18 PM
By CambiumMachines in forum Manufacturer NewsReplies: 0Last Post: 09-01-2013, 03:56 AM