I have a Bolton ZX45 mill onto which I have retrofit a three axis DRO. I am considering doing a CNC conversion. I have glass scales on all three axis. I read that you can use these scales in place of the encoders on the motors. Is it true that the glass scales are actually more accurate than the encoders for this use?
Thanks,
Papajoeslc
Similar Threads:
Thanks Jim,
That's just what I thought. So, do the scales provide the same type of positional data output to the CNC controller as the encoders do? Or do you have to get another type of controller for those scales?
Papajoeslc
The advantage of linear scales is that they totally ignore backlash becasue they only change if the axis moves. And yes, they can be used instead of a rotary encoder. Linuxcnc supports them but I'm not sure how to configure for them. I think they just output the same waveform a rotary encoder does. I would look closely at the Mesa ecosystem and Linuxcnc. It depends on whether you want to connect your PC ethernet or build it in to a control panel and if you are going touse steppers or servos. I would suggest you post some questions on the linuxcnc forum and others with much more knowledge than me will be sure to help. See https://forum.linuxcnc.org/
Rod Webster
www.vmn.com.au
Thanks Jim. I used Ditron on a lathe but I sold it! It was nice gear and very well priced.
The other advantage of using your DRO's is that you don't need to replace any of the lead screws with ballscrews or use linear rails as your machine will be backlash free from the get go.
LinuxCNC will allow interfacing with encoders via software and a parallel port but with limited bandwidth.
My preference would be to use Mesa cards. I use their Ethernet cards so if using steppers a 7i76e (which I use) will do everything including managing your spindle and then a 7i85 4 encoder input board to read the DRO's (But you could do it via a pci or pcie slot on your PC using a 5i25 or 6125 and a 7i76 and 7i85).
If you decided to use servos, the 7i77 includes the servo drive interfaces and the encoders but its not ethernet. You could connect it via a PCI or PCie board such as the 5i25 or 6i25 or use an ethernet 7i92.
Rod Webster
www.vmn.com.au
If you use servos, just remember to have both motor encoders (or a work-alike, like resolvers or hall-effect angular pickups) and the table encoders (i.e, your DRO glass scales). If you hook the glass scales to the servo drive's motor encoder interface; the backlash & phase-lag between the table movement and the motor shaft movement can cause hunting/thrashing issues.
Rod Webster
www.vmn.com.au
Yes, you can have some instabilities if you rely solely on the linear scales for feedback. There is a bit too much delay between the motor and the carriage for this.
What you need for good results is a dual loop controller. You use the encoder on the motor to stabilise the motor (I & D), and the linear scale for position feedback (P). I have been told that Galil make such devices, but I do not know what the Galil part number is, and finding that from their web site seems very difficult.
Galil and other 'older-generation companies' do make lots of older-generation controllers designed for RS485-type control. I could not find any which offered dual loop servo control AND a Step/Dir input compatible with the likes of Mach3/4.
However, be warned: such older-generation devices are a shade more expensive than the hobby-market ones. Like OUCH.
A web search on "dual loop control" does get a number of hits. Lots of theory from various web sites, but how many real devices are available and at what prices - dunno. I have not found many, and none with Step/Dir input. But at least the concept is very well known.
Cheers
Roger
Last edited by RCaffin; 08-31-2019 at 06:35 AM.
Thats the difference between Mach and Linuxcnc. The Mesa 7i77 of the top of my head supports 5 x analog servo controllers and 5 x encoder inputs. RS 485 does not come into it. In any case serial interfaces are nowhere as fast as the Linuxcnc servo thread the runs 1000 times a second!
Rod Webster
www.vmn.com.au
I have not had this problem with either servo or stepper driven machines with linear scales. Requires proper tuning of the servo loop. I have not run my servos as dual loop, just tie the motor encoder to the drive as normal, but read and control the position from the linear scales.
All of the Galil motion controllers made in the last 20 or more years will support dual loop. The later generations also have stepper dual loop control capability built in to the firmware to save programming time using the S-n command set.What you need for good results is a dual loop controller. You use the encoder on the motor to stabilise the motor (I & D), and the linear scale for position feedback (P). I have been told that Galil make such devices, but I do not know what the Galil part number is, and finding that from their web site seems very difficult.
All of the Galil 2xxx and 40x0 series controllers offer serial and ethernet communications, the 22x0, and 40x0 series also offers USB communications. There are Galil plugins available for Mach3/4. All of the Galil controllers are Step & Dir compatible.Galil and other 'older-generation companies' do make lots of older-generation controllers designed for RS485-type control. I could not find any which offered dual loop servo control AND a Step/Dir input compatible with the likes of Mach3/4.
Yup, expensive compared to the hobby class devices, these are real industrial class motion controllers, I use them exclusively on my machines. There are normally good deals on the used market from EBay vendors, but know what you are buying. For highest performance use the 18x6 or 40x0 controllers. Part #'s 18x0, 18x6, 20x0, 22x0, 40x0 (where x= # of axes) are fine. Other part numbers may work, but not recommended.However, be warned: such older-generation devices are a shade more expensive than the hobby-market ones. Like OUCH.
Last edited by Jim Dawson; 08-31-2019 at 08:00 PM.
Jim Dawson
Sandy, Oregon, USA
@rodw: rest assured I do NOT want to rely on RS485 comms!
@Jim: thank you for the info. I found the Galil web site very hard to navigate and their info was obscure. I have used Galil devices in the past, back when Jacob Tal wrote his manual on digital PID control. In fact, I still have a copy of it. I will check on eBay.
Now, if we could just persuade Gecko to come up with a dual-loop servo drive, at their pricing . . .
Cheers
Roger
Yes! Yes, it does. Generally speaking, the feedback from the scales wouldn't be 'turned up' nearly as much as the feedback from the motors - by how much, of course, depends on the servos, rigidity, and mass of the machine in question.Requires proper tuning of the servo loop.
Um.. that is a dual-loop. When you tie the motor encoders to the servo drive; you are creating the 'inner' loop; when you tie the linear scales back to your primary controller, that's the 'outer' loop.just tie the motor encoder to the drive as normal, but read and control the position from the linear scales.
FWIW, that's on my list of things to add to the ARM port of Grbl; assuming that chamnit doesn't get there first... then you wouldn't need GeckoDrives to do anything to their product line. I don't think I can reasonably add it to Grbl-mega; because a 16Mhz ATMega2560 just doesn't have the processor bandwidth to keep track of the quadrature signal coming off of the scales. I'd have to do some experimentation; but I believe that - depending on the maximum step rate desired - you could even interpose a SAMD21 or SAMD51 based Arduino (or clone) between Mach 3/4's step & direction output and the stepper or servo drivers, to get this function.Now, if we could just persuade Gecko to come up with a dual-loop servo drive, at their pricing . . .
I don't think I can reasonably add it to Grbl-mega; because a 16Mhz ATMega2560 just doesn't have the processor bandwidth
Which is sort-of the reason Warp9 went for an FPGA solution for their 6-axis controller: bandwidth. For some things the FPGA construction is rather akin to a GHz processor in response. However, programming an FPGA is not so easy.
Clearly, the older dinosaur controllers and drivers are approaching their end of life. Many of them try to be everything to everyone (RS485+USB+ethernet) and to do a lot of the trajectory control themselves, but that approach is just obsolete. (imho).
Cheers
Roger
Or better - not only are you getting fast logic; you are also getting asynchronous, parallel processing. I really wish that there was something like a SAMD51 + FPGA that was available in a QFP package, had open-source tools for both the ARM side and the FPGA side, and didn't cost a lot. The closest thing right now is a two-chip solution; using a SAMD51 plus an ICE40 FPGA... and the open-source tools for the FPGA aren't, as far as I know, officially supported.For some things the FPGA construction is rather akin to a GHz processor in response.
Yup, POWER!
But someone has to do it.
Cheers
Roger
Jim, could you be specific on which servo drivers you have used this way? DC or AC? You are using both encoders? Why would this not be considered a dual loop system? Which brands and model numbers of drives and motors specifically? I have always wanted to try this, especially if they can be used in older machines with less than ideal mechanics and/or worn screws without oscillating wildly.
Last edited by Halfnutz; 09-01-2019 at 09:43 PM.
Halfnutz
Great questions !
Let me answer the dual loop question first. In order to have a dual loop system it would require that position is tracked with 2 encoders. Normally this would be one on the motor and one on the load. If only the load encoder is used to track position, then it is not dual loop. In the case of AC servos, there is an encoder or resolver required on the motor for commutation and speed control (analogous to a tach on a brushed DC servo). I have installed systems like this using only the load encoder as the positioning feedback to the controller. I should note that this is normally only done when controlling the drive with an analog signal.
On all my systems I use either Renishaw or Ditron 1 micron magnetic linear encoders. Linear encoders eliminate any leadscrew error and provide some level of automatic backlash compensation. Having said that, there is no substitute for a tight machine. Also, 1 micron is the resolution, not the net accuracy. There is always some error but it's usually in the few micron/meter range.
On my milling machine X and Y axis I have Baldor brushed DC servos with Servo Dynamics drives. The motors have tachs installed but no encoders. All of the position feedback comes from the linear encoders. The Z axis is powered by a stepper motor with SureStep drive (STP-DRV-80100) that will accept an analog input, so to the system it looks like any other analog servo system, positioning feedback comes from the linear encoder. The mill normally positions to +- 2 microns (0.0001'') in all axes. The machine is about 30 years old, but still pretty tight. About 0.004'' backlash in the Y axis that I need to fix one day.
My router axes were powered by steppers with the same SureStep drives as above, and operated in step and direction mode, but I had linear encoders on each axis. So this was sort of a dual loop system in that it was positioned via step & direction but also had encoder feedback. I wrote some code that pretty much eliminated any following error and also did a position check at the end of the move to make a final position correction if needed. Typical net accuracy was +/- 0.001'', and that machine had a lot of wear and backlash, not bad for a 30 year old router that had a hard life. I retired it about 1.5 years ago.
You could use almost any AC or DC servo, or a stepper in this way. I've done it on servo systems up to about 20KW and as small as about 75 W. Works best if you can use analog control. I have never had a machine oscillate if the servos were properly tuned.
I hope this answers your questions.
Jim Dawson
Sandy, Oregon, USA
The motors have tachs installed but no encoders. All of the position feedback comes from the linear encoders.
Sounds like a classic PID control to me.
The tacho provides I & D while the linear scale provides P. This is actually a very old technique - which still works just fine even if it does not have a YouTube channel of its own.
With modern units the driver can convert the motor encoder signals into the equivalent of the tacho, for I & D. That is the only difference.
I too use Baldor (and equivalent) brushed DC servo motors. I like them.
@Jim: either Renishaw or Ditron 1 micron magnetic linear encoders.
Rough estimates of cost?
Cheers
Roger
Yes it is a PID control, but the entire PID loop is done in the controller. The tach only provides speed feedback to the drive.
Most modern AC servo drives have an encoder output built into the drive. This can be used in place of a load encoder and it works well in some applications. But the entire PID loop is done at the controller level.With modern units the driver can convert the motor encoder signals into the equivalent of the tacho, for I & D. That is the only difference.
We may really be saying the same thing here, but I'm maybe defining it differently.
The Renishaw units are crazy expensive, but are very good. I was able to buy mine used from an Ebay vendor. I think I paid about US$90 for each read head, and US$80 / meter of mag tape. I think new price is about US$320 for a read head.I too use Baldor (and equivalent) brushed DC servo motors. I like them.
@Jim: either Renishaw or Ditron 1 micron magnetic linear encoders.
Rough estimates of cost?
Cheers
Roger
The Ditron units are from China, Renishaw knockoffs. Quite high quality, and mine have been trouble free. I did a side by side test of the Renishaw and Ditron units and found no difference in accuracy. The only noted difference was that the Ditron units were a little more sensitive to the tape clearance distance, but not a problem. When I bought my read heads about 2 years ago they were US$90 and the mag tape was about US$30 / meter.
Jim Dawson
Sandy, Oregon, USA