High resolution linear encoder & 7i77

More
17 May 2015 17:03 #58780 by MrFouFou
Hello,

I've got some questions regarding LCNC capability to compensate ballswcrew error.

But first quick view on my hardware:
Ballscrew 5mm pitch (sorry metric here) dual nuts to prevent backlash.
Rotary encoder (Heidenhain ERN 180, 5000 pts) will goes directly to the drive (Etel DSB2P) and will be configured in speed mode (+-10V)
Linear encoder (Lida 28 0.2 mm period) to 7i77. Low resolution, I need to interpolate; 12 bits max, so it will give me 48 nm of resolution.
Thermal compensation will come, but after.

At max speed 0.125 m/s (Limit set to 1500 rpm) gives me 2.6 MHz TTL output.

For the moment I've just finished mecanical welding, but I got most of the electrical hardware.

So; If i'm going to run on 12bits, I will need a pretty fast computer, and a good one; i'm planning to run the servo loop at 6 KHz to match my drive position loop frequency; and increase 7i77 multiplexing speed. It seems possible (manual say so) and I will shorten cable.
Computer and 7i77 will be in aluminium box to avoid electrical noise.

Time for questions:

1°) What will be the maximum lenght of the cable to get; let's say; 3-4 MHz count rate ? Is 25 cm (10") short enough ? less ?

2°) I've got access to laser interferometer to calibrate my ballscrew, I know LinuxCNC does that, can i input on the file many point as i want ? Interpolation between thoses points is linear or tangent ?

3°) Does the system can use all of this linear resolution ? (I think it will be usefull for the servo loop, buy maybe it's too much).

Many thanks.

Please Log in or Create an account to join the conversation.

More
17 May 2015 18:04 #58782 by BigJohnT

Please Log in or Create an account to join the conversation.

More
17 May 2015 23:20 #58797 by PCW
3-4 Mhz is possible with the standard (6 foot) cable and a bit of skew adjustment.
also if you only need 3 axis of encoders you can run them non muxed and get
~8 MHz count rate

Please Log in or Create an account to join the conversation.

More
18 May 2015 03:04 #58801 by andypugh

So; If i'm going to run on 12bits, I will need a pretty fast computer, and a good one; i'm planning to run the servo loop at 6 KHz to match my drive position loop frequency; and increase 7i77 multiplexing speed.


I don't think that increasing the servo thread frequency increases the multiplexing speed. I believe that the multiplexing is between the FPGA card and the adapter card.

If you have to back-off from the 6kHz servo frequency I don't actually think it will matter much.

Please Log in or Create an account to join the conversation.

More
18 May 2015 23:31 #58827 by MrFouFou

See comp in the axis section of the ini.

linuxcnc.org/docs/html/config/ini_config.html#sub:AXIS-section

JT


Thanks for that, so it's 256 value per axis, but interpolation between thoses points are linear or tangent ? (just for my knowledge)

3-4 Mhz is possible with the standard (6 foot) cable and a bit of skew adjustment.
also if you only need 3 axis of encoders you can run them non muxed and get
~8 MHz count rate


Unfortunately I will run a 4th axis later (with a 72000pts TTL encoder)

I don't think that increasing the servo thread frequency increases the multiplexing speed. I believe that the multiplexing is between the FPGA card and the adapter card.

If you have to back-off from the 6kHz servo frequency I don't actually think it will matter much.



I understand the same, I would like to use 6kHz servo thread because in speed reference mode, my drive update the analog input at 6kHz.

Please Log in or Create an account to join the conversation.

More
18 May 2015 23:56 - 19 May 2015 00:12 #58829 by PCW
There really no major advantage to running a velocity mode drive via a position mode PID loop in linuxCNC
at higher that 1-2 KHz in most cases (assuming the velocity mode of the drive works well)

Where it might matter is when you have extreme acceleration
(so the chord errors caused by say 1 KHz velocity step intervals are significant)

It also may matter with high acceleration coupled with high accuracy.
(Note that high accel and high accuracy dont tend to get along because of the elastic nature of the hardware)

The fact that the drive samples the analog input at 6 KHz is not really important
(well only important in that you may have up to a 166 usec delay from a linuxCNC PID update
to when the drive notices)

In fact because of this it may in fact be a bad idea to run linuxcncs servo thread
at the same rate as the drives sample frequency since it will cause a low frequency beat
modulation of the command-response delay since the frequencies will not match exactly.
A more randomized beat pattern may well work better
Last edit: 19 May 2015 00:12 by PCW.

Please Log in or Create an account to join the conversation.

More
19 May 2015 02:02 #58830 by akb1212
Out of curiosity why don't you use an interpolator from iC-Haus? They have a BISS interface that will connect to the ISS ports on the Mesa cards. And you can have as many as you need. And you won't have any issues with speed being a problem. They come with up to 16 bit interpolation, and isn't expensive (about $90 for an evaluation board ready to use).

I'm trying to figure out if anyone else have tested this, but so far I haven't found anyone. PCW mentioned in a post he was waiting for his eval. board. But I haven't seen any results from that. Did you do that test, and did it work PCW? I'd be very interested in knowing. And also know more about how to implement it.

Anders

Please Log in or Create an account to join the conversation.

More
19 May 2015 02:13 #58831 by andypugh

I'm trying to figure out if anyone else have tested this, but so far I haven't found anyone.


I know someone who is using the ICHaus board but I think he is using it in quadrature mode.

Please Log in or Create an account to join the conversation.

More
19 May 2015 19:27 #58857 by akb1212
Yes, I have seen that. But for this topic, high resolution, it's irelevant. The whole point was to make use of the capability to increase the resoution to whatever you needed (and the hardware would allow taken noise and such in to account, and resolution of the interpolator).

By using the BISS protocol instead of normal quadrature the demand for high frequency communication would be lowered. In fact Renishaw states it's possible to have 1 nm resoluiton at 100m/s movement here: www.renishaw.com/en/resolute-absolute-op...onal-protocol--11041.

The trick would be to use encoders with analogue 1Vpp output instead of quadrature TTL level. Then use the iC-Haus converter to increase resolution with up to 16 bit.

The resulting quadrature signal would be way higher than the Mesa encoder inputs would be capable of reading. But then you would be able to use the BISS interface, which the Mesa cards can read dirrectly on the SSI (Mesa ports for daughter cards) ports. The 7i84 have 8 such ports, so you can have as many encoders as you need.

So, it would be possible to use your existing encoder (providing it has 1Vpp or other interpolateable output). Then interface that to an iC-Haus card. Interface that dirrectly to Mesa cards and you wouldn't have to worry about frequency limitations on the encoder inputs. And as an added benefit you could (in theory at least) increase your resolution from 12 Bits on the 0.2 mm encoders to 16 Bits.

The question remains, is there anyone who have an idea on how this would work in real life? I for one would like to know as I have a Lathe head with a 1Vpp encoder (with 512 pulses/rev) I'd like to utilize like this.

Sorry for stealing this thread like this, but I would hope this is an idea worh looking in to, and also help you get the high resolution you want.

Anders

Please Log in or Create an account to join the conversation.

More
19 May 2015 19:50 #58858 by andypugh

By using the BISS protocol instead of normal quadrature the demand for high frequency communication would be lowered. In fact Renishaw states it's possible to have 1 nm resoluiton at 100m/s movement here: www.renishaw.com/en/resolute-absolute-op...onal-protocol--11041.


Renishaw sent me a Resolute encoder to check the LinuxCNC interface with.
Very unfortunately it got lost in the post so I didn't get to try the experiment.

The question remains, is there anyone who have an idea on how this would work in real life? I for one would like to know as I have a Lathe head with a 1Vpp encoder (with 512 pulses/rev) I'd like to utilize like this.


I haven't tried it on actual hardware as I don't have any. But it ought to work.

Please Log in or Create an account to join the conversation.

Time to create page: 0.189 seconds
Powered by Kunena Forum