Stuart Stevenson wrote:
> Gentlemen,
>     Due to the recent in depth discussion of scales I am planning to
> not use the scales on the G&L. I would like to try to use them.
>     I have seen one proposal to use them in the I component of the
> PID. I would try this if someone had the code to implement this.
>     I have also seen where Fadal uses them to determine the
> compensation values for the ball screws. This would be good also. The
> difference I would like to see is this. The Fadal runs a special
> program to determine the comp values and writes the comp tables with
> the values. I would like to see continuous determination with a max
> error value. The control would compare the error against the max error
> value and if the error was more than the max value the control would
> write a compensation amount into the compensation file.
>     Where in the code would be the place to implement this?
>     The G&L has 4 linear axes with A/C servos. Three have scales. The
> X, Y, and W axes have scales. The Z axis (quill) uses the Z axis
> encoder.
> thanks
> Stuart

Stuart:

Regarding scales + encoders.  I think I'm one of the people who says you 
could use scales if the PID loop got its velocity info from the encoders 
and its position info from the scales.  There might still be 
complications, its one of those things that just needs to be tried.  I'm 
willing to write the modified PID loop that would be needed.

Of course, you'd have to be able to read both scales and encoders at the 
same time - that means twice as many encoder reading channels.  If you 
have the hardware to do that, its not a big deal, but if if means buying 
another card it gets less attractive.

Regarding using scales for screw comp - again you need to be able to 
read both at the same time.  EMC can't change the comp data on the fly, 
and it would be a very serious rewrite to change that.  Right now the 
comp points are read from the file in ascending order, and EMC computes 
the slope between successive points at startup to simplify interpolating 
between the points.  Changing a point on the fly would also change the 
pre-computed slopes on both sides of the point.  If you wanted to change 
the location of a point, not just the amount of correction at that 
point, it gets even worse.

However, it _would_ be rather straightforward to gather the comp data
automatically.  A HAL sum block can be used to subract encoder position 
from scale position to get the screw error, and the sampler component 
can capture that error, as well as the nominal position, to a file at 
preset intervals.  So you could just start the sampler while the machine 
is at one end of travel, and do a slow G1 move to the other end, while 
sampler records the data.  I'd go slow to minimize the chance of error 
due to time-skew between readings - maybe 5-10 minutes to go from one 
end to the other, capturing a reading every second or so.

Regards,

John Kasunich



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to