Is there any way to calibrate the VFD on a Series 2 to get the correct programed spindle speed ? Trying to get set up to do T/C tapping. My manual only has the procedure for calibration using MACH 3 .
Thanks
Is there any way to calibrate the VFD on a Series 2 to get the correct programed spindle speed ? Trying to get set up to do T/C tapping. My manual only has the procedure for calibration using MACH 3 .
Thanks
I T/C tap with PP and never messed with VFD calibration. I did hit the spindle with a tachometer a while back to make sure it was in the ballpark but the T/C is good for absorbing small errors..
Sorry for bringing up such an old thread, but figured it was better than starting a new one considering this is exactly what I'm trying to do.
So in regards to the original question, is there no way to calibrate the spindle speed in PP? I see others are T/C tapping without calibrating, and I have too, but I would like to know if it can be calibrated or not. I've tapped M3 threads with the Tormach T/C tapping head and get a lot of extension. No broken taps but I will be tapping smaller metric threads soon and feel the lack of spindle calibration could be a problem. If I get the amount of extension that I get with the M3 threads, I'm afraid M2 will just pull right out.
I've looked online for this answer, and this thread is about the closest I have come, but there seems to be no real answer. Will PP ever allow spindle speed calibration?
I've got a cheap optical tach permanently mounted, and just adjust the calculated rpm from PP conversational to get the correct speed. For example, 40 tpi at 12.5 ipm needs 500 rpm. My machine delivers 500 rpm when the program calls for 472. Calibrating the VFD works at one speed...but it's nonlinear, so it's off at another. Easier to just edit the rpm. Having a permanent, easy to read check on actual speed makes it easier to optimize cutting recipes, too.
I just did this yesterday and calibrated my 1100-3 VFD per Tormach documentation. The series 3 machine has an adjustable resistor that regulates the VFD. I too noticed the adjustment accuracy was good for a narrow speed range. So I picked 750 rpm for my +/- range. The T/C tapping head is cool. My first attempt broke the 4-40 tap; next time I will provide a fixture plate hole under the tapped hole. Always something.
http://www.tormach.com/uploads/31/TD...A_WEB-pdf.html
-uman
If you really want to dial in the RPM you can use the Lincurve module in Linuxcnc.
PP doesn't have it installed so you have to copy the "lincurve.ko" into the "rtlib" folder.
Then add this your .hal file. This is on my lathe and really made it accurate but you will have to modify the points to suit your needs.
It really isn't as complicated as I made it sound.
#added lincurve to correct for spindle actual/commanded differences
# Roughly: commanded RPM=Y actual RPM=X
loadrt lincurve personality=7
addf lincurve.0 servo-thread
setp lincurve.0.x-val-00 150
setp lincurve.0.y-val-00 0
setp lincurve.0.x-val-01 375
setp lincurve.0.y-val-01 200
setp lincurve.0.x-val-02 650
setp lincurve.0.y-val-02 500
setp lincurve.0.x-val-03 1200
setp lincurve.0.y-val-03 1000
setp lincurve.0.x-val-04 1750
setp lincurve.0.y-val-04 1500
setp lincurve.0.x-val-05 2300
setp lincurve.0.y-val-05 2000
setp lincurve.0.x-val-06 2400
setp lincurve.0.y-val-06 2200
#
net spindle-speed-raw motion.spindle-speed-out gearchange.0.speed-in
net spindle-speed gearchange.0.speed-out lincurve.0.in
net corrected-speed lincurve.0.out hm2_5i25.0.stepgen.02.velocity-cmd
Brian,
Would you explain a little more how to do this....."If you really want to dial in the RPM you can use the Lincurve module in Linuxcnc.
PP doesn't have it installed so you have to copy the "lincurve.ko" into the "rtlib" folder." I don't know much about Linux but and very interested in your solution posted.
Thanks
GTO & Adam -
I just wrote the following for you guys but I have not tested it on an 1100 (I don't have one!)
So please make a backup of your .hal file if you change anything.
You have to know how to get into the desktop and find the tormach_mill_5i25.hal file
Briefly: when you see the "TORMACH" splash screen hold down the left SHIFT and ALT keys to boot to desktop
Go here to learn more: LinuxCNC: Topics in PathPilot (1/2)
The attached file is lincurve.ko.txt - remove the .txt and place "lincurve.ko" into the "rtlib" folder which I believe is in the "Linuxcnc" folder.
OK, now to edit the tormach_mill_5i25.hal file (in the configs->tormach_mill folder)
Copy and paste this into your .hal file somewhere in the spindle section (really doesn't matter exactly where):
# Roughly: actual RPM=X & commanded RPM=Y - YOU EDIT THE FOLLOWING X,Y values TO SUIT YOUR MACHINE
loadrt lincurve personality=7
addf lincurve.0 servo-thread
setp lincurve.0.x-val-00 150
setp lincurve.0.y-val-00 0
setp lincurve.0.x-val-01 375
setp lincurve.0.y-val-01 200
setp lincurve.0.x-val-02 650
setp lincurve.0.y-val-02 500
setp lincurve.0.x-val-03 1200
setp lincurve.0.y-val-03 1000
setp lincurve.0.x-val-04 1750
setp lincurve.0.y-val-04 1500
setp lincurve.0.x-val-05 2300
setp lincurve.0.y-val-05 2000
setp lincurve.0.x-val-06 2400
setp lincurve.0.y-val-06 2200
#
________________________
***Now replace this:
# connect motion speed-out to input of spindle comp
net spindle-speed-raw motion.spindle-speed-out tormachspindle.speed-in
# connect output of spindle comp to stepgen
net spindle-speed tormachspindle.mcb-freq-out hm2_5i25.0.stepgen.04.velocity-cmd
***With This:
# connect motion speed-out to input of lincurve function
net spindle-speed-raw motion.spindle-speed-out lincurve.0.in
# Connect output of lincurve to tormachspindle
net corrected-speed lincurve.0.out tormachspindle.speed-in
# connect output of spindle comp to stepgen
net spindle-speed tormachspindle.mcb-freq-out hm2_5i25.0.stepgen.04.velocity-cmd
-------------------------
Good luck and let me know if it works!
Brian,
That is grandmaster level CNC-ing. Thank you!
Tormach should adopt this as a major bug fix. We're always being cautioned to use the right speed/feed/ipt relationship, yet (on my 1100 at least) a 15% variation is not unusual. Always to the high side, so not really a disaster (that is, more rpm than commanded). But...15% seems like a lot for tapping.
Observation: any time one updates PP, one will lose this addition (if I understand how PP updates work correctly).
Edited to add:
Is there any issue with changing the speed range? Tormach 1100 uses a dual pulley and software switch to set the speed range after pulley belt change. I haven't checked, but would not be surprised to find that a calibration curve for the high belt (250-5100 rpm nominal) is not the same as for the low belt (100-2000). If that's so, then one might want to use the pulley variable (I assume there is one) to pick the right calibration curve. Slightly more complex program.
Actually it isn't that much more complicated with a gear change - you can just use two different lincurve functions based on which gear is selected.
That requires a little bit of hal code but prob not too difficult.
I forgot to mention (although it's obvious) that one needs to be able to measure the actual rpm accurately - to really dial in the lincurve. My lathe (which I use this on) has an encoder so it measures its own actual rpm.
EDIT:
Yes - the .hal file I believe would be overwritten with updates so it's important to back it up.
Brian,
Finally got around to trying it toady and it worked great. Thanks for the explanation and files. I discovered that I could only use the 6 curve points apparently. I need to calibrate the speed from 300 to 5,000 rpm and would like a few more data points if possible, maybe up to 8 or 10 points. Can that be done easily or is there an inherent limit?
Thanks again.
Pat (GTOGuy)
Pat lincurve can have up to 16 points I believe. Just change the personality from 7 to whatever number and then add the data points as u need
EDIT: just reread your post - not sure why 7 points 'didn't work'. I do know there's a lower limit of commanded rpm in the tormach ini. So maybe stay within that range.
Frankly I can't believe it worked at all as I am no computer programmer or professional cnc machinist. I just pieced that together from the Hal and linuxcnc with some experience from using it on my lathe.
Brian,
I was surprised it didn't work beyond 6 points either. Initially, to test your program, I stuck with the 6 points you had and entered rpms from 300 to 2,000 and was surprised that the mill would not go beyond 2,200 (it would go to 5,000 rpm prior to the mod. Then I tried adding 11 points from 300 to 5,000 rpm and when it tried to load, it failed and had a message that said I need to install an update. I then when back to 6 points and spanned from 300 to 5,000 rpm and the mill would now rev up to the proper 5,000 rpm. I tried 8 points and the program would not load again. At this point, I have done my best to represent the points that get the entire range as close as I can using 6 points which is way better than before.
I fifure it has something to do with the linvurve.ko file only expecting 6 points. Since I can't read the lincurve.ko file in traditional text editors. I am a programmer in other languages so I am not afraid to try things to troubleshoot it but I need to be able to read the file to see what's going on.
Thanks again
Pat
Pat - that certainly is strange! Hopefully the 6 points is enough for you. What's really weird is I am using the 7 points on my non-tormach lathe w/ PathPilot and it works like a champ. I did a quick search thru the lincurve.ko and did see that it 'should' accept a personality=16.
Can you post your .hal file to look at, maybe theres something obvious that we are missing?
As a programmer I am sure it's a bit frustrating why it won't work. On my lathe i am using PP 1.9.4.b still. Not that I think that makes a big difference.
BTW - how accurate are your RPMs now?
Also, a shout out to Andy Pugh on LinuxCNC forums, he's the one who wrote the Lincurve module.
Did you change the personality on the loadrt lincurve line?
As brianbonedoc said, lincurve supports up to 16 points but the number of
points used needs to be specified when the component is loaded:
LINCURVE
for example as a quick test I did:
$ halcmd loadrt lincurve personality=16
$ halcmd show param lincurve
Parameters:
Owner Type Dir Value Name
50 s32 RW 0 lincurve.0.tmax
50 bit RO FALSE lincurve.0.tmax-increased
50 float RW 0 lincurve.0.x-val-00
50 float RW 0 lincurve.0.x-val-01
50 float RW 0 lincurve.0.x-val-02
50 float RW 0 lincurve.0.x-val-03
50 float RW 0 lincurve.0.x-val-04
50 float RW 0 lincurve.0.x-val-05
50 float RW 0 lincurve.0.x-val-06
50 float RW 0 lincurve.0.x-val-07
50 float RW 0 lincurve.0.x-val-08
50 float RW 0 lincurve.0.x-val-09
50 float RW 0 lincurve.0.x-val-10
50 float RW 0 lincurve.0.x-val-11
50 float RW 0 lincurve.0.x-val-12
50 float RW 0 lincurve.0.x-val-13
50 float RW 0 lincurve.0.x-val-14
50 float RW 0 lincurve.0.x-val-15
50 float RW 0 lincurve.0.y-val-00
50 float RW 0 lincurve.0.y-val-01
50 float RW 0 lincurve.0.y-val-02
50 float RW 0 lincurve.0.y-val-03
50 float RW 0 lincurve.0.y-val-04
50 float RW 0 lincurve.0.y-val-05
50 float RW 0 lincurve.0.y-val-06
50 float RW 0 lincurve.0.y-val-07
50 float RW 0 lincurve.0.y-val-08
50 float RW 0 lincurve.0.y-val-09
50 float RW 0 lincurve.0.y-val-10
50 float RW 0 lincurve.0.y-val-11
50 float RW 0 lincurve.0.y-val-12
50 float RW 0 lincurve.0.y-val-13
50 float RW 0 lincurve.0.y-val-14
50 float RW 0 lincurve.0.y-val-15
I'll bet that is the problem. I didn't realize that needed to be done so I'll try it. Need to study up on Linuxcnc and learn about it. Just experimenting around.
To answer Brian's question, the speed after using lincurve is excellent, within about 1 to 5 rpm at calibration points and since the original speed correlation (before applying lincurve mod) was basically 2 sloped lines with the exception of a weird blip at 4500 rpm,
Thanks everyone for your help. Great solution for threading accuracy. Is there an easy eay for me to view the contents of the lincurve.ko? Where do you recommend I start to learn about Linuxcnc to understand what's going on with these types of mods?
Pat