Re: [Emc-users] A axis and spindle

2012-07-05 Thread andy pugh
On 5 July 2012 05:18, Jon Elson el...@pico-systems.com wrote:

 Rollover is a non-issue within the lifespan of most machines

 Not necessarily.  Assume 3000 RPM and a 1000 cycle/rev encoder.  Typical
 24-bit
 encoder counters will roll over on a bit over a minute (16 mil/12 mil).
 That gets overflowed to 32 bits, so it would take 358 minutes to overflow
 the 32-bit count.  I think all the encoder counters on LinuxCNC currently
 use a 32-bit count internally.

Having checked, it seems you are correct.

The software stepgen uses 64-bit accumulators, and the Mesa Resolver
module uses a 64-bit accumulator too.
For some reason I thought all the other encoder-like functions were
using 64 bit internal representation. I can't help feeling that they
ought to.

The software stepgen holds position data in a floating-point (double)
representation which will lose precision rather than wrap as the
counts increase as long as the 32-bit counter wrap is handled
carefully. I think I worked out that it would take an awfully long
time for the encoder position to become significantly innaccurate.
(assuming that we want a position accuracy of 0.0001 and a float has
15 places of decimal precision, then the notional axis can travel
10^11 notional inches before not being able to represent 0.0001. At a
 travel rate of 1000 in/min that is 190 years.

My initial impression is that the software encoder does not handle the
wrap as well as it might. It probably ought to add delta_counts *
scale to the position, not recalculate the position from total counts.
The magic of twos-complement means that calculating deltas on signed
integers handles the wrap automatically.

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread andy pugh
On 4 July 2012 22:08, andy pugh bodge...@gmail.com wrote:

 There is (somewhere) a config for aligning a milling spindle for tool
 change, so it's a solved problem. I just couldn't find it.

Ah, here it is. (Note that we currently have two almost-identical
threads on this subject)
http://www.linuxcnc.org/docs/html/man/man9/orient.9.html

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread Gene Heskett
On Thursday 05 July 2012 08:42:02 andy pugh did opine:

 On 5 July 2012 05:18, Jon Elson el...@pico-systems.com wrote:
  Rollover is a non-issue within the lifespan of most machines
  
  Not necessarily.  Assume 3000 RPM and a 1000 cycle/rev encoder. 
  Typical 24-bit
  encoder counters will roll over on a bit over a minute (16 mil/12
  mil). That gets overflowed to 32 bits, so it would take 358 minutes
  to overflow the 32-bit count.  I think all the encoder counters on
  LinuxCNC currently use a 32-bit count internally.
 
 Having checked, it seems you are correct.
 
 The software stepgen uses 64-bit accumulators, and the Mesa Resolver
 module uses a 64-bit accumulator too.
 For some reason I thought all the other encoder-like functions were
 using 64 bit internal representation. I can't help feeling that they
 ought to.

Probably.  But at what cost in time used?  Enough of this hunt for 
perfection and the code begins to bloat and slow.  On this box its largely 
moot as it is a 64 bit box, but...

 The software stepgen holds position data in a floating-point (double)
 representation which will lose precision rather than wrap as the
 counts increase as long as the 32-bit counter wrap is handled
 carefully. I think I worked out that it would take an awfully long
 time for the encoder position to become significantly innaccurate.
 (assuming that we want a position accuracy of 0.0001 and a float has
 15 places of decimal precision, then the notional axis can travel
 10^11 notional inches before not being able to represent 0.0001. At a
  travel rate of 1000 in/min that is 190 years.

I'm not inclined to push the panic button. The machine will have worn 
itself out to a lot more slop than .0001 long before that.  Shrug.

 My initial impression is that the software encoder does not handle the
 wrap as well as it might. It probably ought to add delta_counts *
 scale to the position, not recalculate the position from total counts.
 The magic of twos-complement means that calculating deltas on signed
 integers handles the wrap automatically.

Humm, but what happens when 'scale' is itself a floating point value?  My 
ancient mind says there will be a visible loss of precision at the rollover 
point.

I'll get me coat.

Cheers, Gene
-- 
There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order.
-Ed Howdershelt (Author)
My web page: http://coyoteden.dyndns-free.com:85/gene is up!
Put cats in the coffee and mice in the tea!

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread John Kasunich


On Thu, Jul 5, 2012, at 01:08 PM, andy pugh wrote:

 My initial impression is that the software encoder does not handle the
 wrap as well as it might. It probably ought to add delta_counts *
 scale to the position, not recalculate the position from total counts.
 The magic of twos-complement means that calculating deltas on signed
 integers handles the wrap automatically.

I respectfully disagree on this part.  Counts are counts, and
integers can be accumulated indefinitely with no error.  Floating
point math can be imprecise, and accumulating counts times scale,
where scale is a float, could result in accumulating errors.

Thinking about it a bit more, it definitely will result in
accumulating errors.  Suppose your scale is 3 counts per
inch.  So the amount you want to add to the accumulator each
count is 0.3.  In either scheme there will be some
error, since that number cannot be exactly represented as a
float.  Floats have a resolution of 24 bits (the other 8 are
used  for the exponent).  So the basic error will be 1 part
in 2^24, which isn't bad (for example, 3.6 micro-inches on
a 60 long travel).

If you are accumulating counts as an integer, and then
multiplying by the scale factor, the error will always be
1 part in 2^24, regardless of how far you travel.

But it can be a lot worse if you are accumulating chunks
of 0.3 as floats.  Suppose the axis has moved 35
inches.  On the next count, you will be adding 0.
to 35..  The 0.33 value starts out with 2^24
resolution, but it gets shifted right during the add,
because the exponents have to match before you can
actually perform the addition.  In this case, the shift
is 20 bits, leaving the scale factor with only 4 bits of
precision.

Working the example in decimal floating point notation
makes it easy to see.  Floats have about 7 decimal digits
of resolution.  So the scale factor would be represented
in decimal as 3.33e-5.  The current axis position is
3.50e+1.  To add them together, the scale factor gets
shifted right 6 digits, so it becomes 0.033e+1.  So
on every count, you miss 1% of your actual travel.

The situation gets much worse if you travel further.
Consider what happens when the axis reaches 1000 inches
(in the decimal case).  Axis position is 1.00e+3,
so the increment of 3.33e-5 needs to be shifted
8 positions.  The result is 0.00e+3.  Adding (or
subtracting) that from the accumulator will have no
effect, so the output of the encoder block will never
change - even if you start moving back towards zero.
It will simply be stuck.

By comparison, if you are accumulating integer counts
and then converting to float, you might reach a point
where you don't see a change in the float value on each
count, but the counts _are_ being recorded, and the float
output will continue to increase every couple of counts,
when its resolution permits.  And when you reverse and
start moving back towards the origin, the accumulator
will correctly track the position.

There is another issue, which could be considered good,
bad, or irrelevant, depending on your point of view. 
HAL allows anything (including scale) to be changed at
any time.  Suppose you move an axis for a while, then
change scale, move it some more, then change scale
back to the original value.

The current implementation will have a position jump
when you change scale.  But it will always know where
it is, because it is accumulating counts.  If you
change scale back to the original value, your position
will be correct, even if you moved while the scale was
wrong.

The proposed implementation avoids the position jump
when scale changes, but if you move after changing
the scale, you lose track of your original position.
The accumulator now contains some motion at the original
scale factor, and some motion at the new scale factor.

Avoiding the jump might be considered good.  Losing your
absolute position is bad.  And the whole issue is probably
irrelevant since few people change scale on the fly.  But
I prefer the current implementation, and would think hard
before changing it.  If there is a concern about rollover,
then change the accumulator to 64 bits.  But it should
still be an integer recording counts, not a float or
double recording scaled length increments.

-- 
  John Kasunich
  jmkasun...@fastmail.fm


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread andy pugh
On 5 July 2012 15:13, John Kasunich jmkasun...@fastmail.fm wrote:

 It probably ought to add delta_counts *
 scale to the position, not recalculate the position from total counts.

 I respectfully disagree on this part.  Counts are counts, and
 integers can be accumulated indefinitely with no error.  Floating
 point math can be imprecise, and accumulating counts times scale,
 where scale is a float, could result in accumulating errors.

I agree with your disagreement. The problem you describe is likely to
particularly acute in cases where someone has a 1:3 pulley ratio and
only bothers to type in the scale factor to as many significant
figures as they feel necessary.

What does work (and what the resolver module does) is to consider the
counts delta of the 16-bit data from the Mesa card and add that to a
64-bit accumulator, then multiply that by the scale.
There is still a problem if the scale has fewer significant figures
than the total revs. For example engraving text, machining an OD then
going back to underline the text might not work.
Re-indexing and zeroing the encoder counts is likely to work better.
It is worth noting that zeroing the encoder doesn't change the actual
counts (rawcounts)

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread Jon Elson
John Kasunich wrote:
   
 I respectfully disagree on this part.  Counts are counts, and
 integers can be accumulated indefinitely with no error.  Floating
 point math can be imprecise, and accumulating counts times scale,
 where scale is a float, could result in accumulating errors.

   
snip
 If you are accumulating counts as an integer, and then
 multiplying by the scale factor, the error will always be
 1 part in 2^24, regardless of how far you travel.
   
Yes, if what we are talking about is the rolling over of a smaller counter
(possibly in hardware) to a wider position value, then a raw count value
has to be maintained as an integer, and converted to float every cycle.
Different floating point formats will have different thresholds of minimum
guaranteed precision, but accumulating a series of products will
be guaranteed to eventually accumulate significant error.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread Jon Elson
andy pugh wrote:


 I agree with your disagreement. The problem you describe is likely to
 particularly acute in cases where someone has a 1:3 pulley ratio and
 only bothers to type in the scale factor to as many significant
 figures as they feel necessary.

   
Nope, doesn't really make any difference.  There are numbers that can be 
exactly
represented in floating point.  These are combinations of power of two 
fractions,
such as 1/2, 1/4, 1/8, etc.  But, there are many more values that have 
no EXACT
representation, such a the 1/3 you mention.  This is not a great problem for
a one-time computation, the error is quite small, depending on the 
number of mantissa
bits in that FP format.  BUT, there will be error EVERY TIME the computation
is performed.  If you do this at the servo rate of 1 KHz, you are 
summing this
tiny error a thousand times a second, it won't take long at all for this 
to accumulate
to a large and totally unpredictable magnitude.  In other words, one day 
the errors
may nearly all cancel out, the next day, when the machine sits in a 
different position
for a few minutes, the error could become vast.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-05 Thread andy pugh
On 5 July 2012 18:12, Jon Elson el...@pico-systems.com wrote:

 I agree with your disagreement. The problem you describe is likely to
 particularly acute in cases where someone has a 1:3 pulley ratio and
 only bothers to type in the scale factor to as many significant
 figures as they feel necessary.


 Nope, doesn't really make any difference.  There are numbers that can be
 exactly
 represented in floating point.  These are combinations of power of two
 fractions,
 such as 1/2, 1/4, 1/8, etc.  But, there are many more values that have
 no EXACT
 representation, such a the 1/3 you mention.  This is not a great problem for
 a one-time computation, the error is quite small, depending on the
 number of mantissa
 bits in that FP format.  BUT, there will be error EVERY TIME the computation
 is performed.

Perhaps I wasn't clear enough in saying that I now realise that
computing a new floating-point delta every time is a stupid idea.

I was talking about a different issue, that a million turns * 0.33
will have a huge error even if it looks like typing the ratio to 6
decimal places in the HAL file looks like it ought to be OK, and
probably would be for a typical linear axis.

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread andy pugh
On 4 July 2012 15:00, Kasey Matejcek someo...@lkm.bz wrote:

 I want to be able to turn down the part then change the tool to drimal type
 cutter tool and cut a pattern into the peace with one gcode file

 Is this possible?

It is possible. It isn't especially easy. It is probably easier with
servos than with steppers though.

The solution is probably to have two separate PID controllers in the
HAL file, one taking a command from axis.3.motor-position-cmd and one
taking an input from motion.spindle-speed-out (pin names from memory,
not from the docs).

You would then use a mux2 HAL component to send one or other of the
PID outputs to the PWM generator. You could switch the mux2 on the
basis of motion.spindle-on. Then M3 / M4 would disable A-axis control.

The main complication to this simple scheme is that the A-axis PID
will try to unwind all the lathe-mode rotations when you switch to
lathe-mode.

To counteract this you would need to force the encoder.N.index-enable
pin high when the mode changes. This will take a slightly complex
array of HAL functions, an edge-detector (HAL oneshot) to set the
index, and a HAL tristate_bit to set the encoder index-enable.
You would probably (this is untested) simply setp the
tristate-bit.0.in to 1, and net the oneshot output to
tristate-bit.0.enable.

The behaviour would then be that the axis would move in A-word control
until an M3 or M4, at which point the mux would direct the speed PID
to the PWM generator. On M5 the mux would switch to the old A-axis
position control, the oneshot would trigger, loading a true to the
encoder.N.index-enable pin. Because the spindle is many turns away
from it's required position the A-axis PID controller will be maxed
out, so the spindle will do at least one turn past the index. When it
passes the index the encoder counts will go to zero, the PID will no
longer be saturated, and the spindle should return to the last
commanded angular position.

http://www.linuxcnc.org/docs/html/hal/intro.html
http://www.linuxcnc.org/docs/html/man/man9/mux2.9.html
http://www.linuxcnc.org/docs/html/man/man9/oneshot.9.html
http://www.linuxcnc.org/docs/html/man/man9/tristate_bit.9.html

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread Jon Elson
andy pugh wrote:
 The behaviour would then be that the axis would move in A-word control
 until an M3 or M4, at which point the mux would direct the speed PID
 to the PWM generator. On M5 the mux would switch to the old A-axis
 position control, the oneshot would trigger, loading a true to the
 encoder.N.index-enable pin. Because the spindle is many turns away
 from it's required position the A-axis PID controller will be maxed
 out, so the spindle will do at least one turn past the index. When it
 passes the index the encoder counts will go to zero, the PID will no
 longer be saturated, and the spindle should return to the last
 commanded angular position.

   
And, how to do this without causing a momentary huge following error 
that either
causes a following error abort or a servo amp trip is not clear.  I 
think it needs
some kind of gradual gain change to allow the servo to catch up 
gradually before
going to full gain.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread andy pugh
On 4 July 2012 21:00, Jon Elson el...@pico-systems.com wrote:

 And, how to do this without causing a momentary huge following error

Ah, yes. Good point.
Given that, I think it has got to the point where a custom HAL module
is called for which mediates the position feedback. (though another
mux to short-circuit the feedback would work, connecting
axis.M.pos-feedback to either position-command or encoder-position as
required. (possibly triggered by a timedelay component).
The spindle doesn't have an f-error problem. I guess you could just
ignore f-error on A too, and short-circuit the feedback.

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread Terry Christophersen
I dont know how this is done on newer lathes but Ive seen
older ones with an electric clutch on the spindle that engages
and a seperate servo motor that does the milling or positioning moves
then disenguages for normal lathe turing.
Could an encoder be put on a the servo(except for the index pulse)
this way the servo encoder would not have the wrap up from turning
operations as it would be disengaged most of the time?
I am sorry that this is probably not helping this person but I am
thinking about doing this to a lathe of mine and this
topic reminded me of my question

Terry  

 
- Original Message -
From: Jon Elson el...@pico-systems.com
To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net
Cc: 
Sent: Wednesday, July 4, 2012 3:00 PM
Subject: Re: [Emc-users] A axis and spindle

andy pugh wrote:
 The behaviour would then be that the axis would move in A-word control
 until an M3 or M4, at which point the mux would direct the speed PID
 to the PWM generator. On M5 the mux would switch to the old A-axis
 position control, the oneshot would trigger, loading a true to the
 encoder.N.index-enable pin. Because the spindle is many turns away
 from it's required position the A-axis PID controller will be maxed
 out, so the spindle will do at least one turn past the index. When it
 passes the index the encoder counts will go to zero, the PID will no
 longer be saturated, and the spindle should return to the last
 commanded angular position.

  
And, how to do this without causing a momentary huge following error 
that either
causes a following error abort or a servo amp trip is not clear.  I 
think it needs
some kind of gradual gain change to allow the servo to catch up 
gradually before
going to full gain.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread Ralph Stirling
It is really a C axis lathe being described I believe (spindle
rotates about Z), and a C axis live tooled lathe is such a
mainstream machine in the industrial world that it seems a
shame not to have a robust, well-thought-out LinuxCNC
configuration for this application.

My thought is that it should use the C encoder all the time,
but with a velocity mode for normal turning, threading, and
CSS.  Encoder rollover would be needed, but 64 bits should
handle an awful lot of revolutions of the spindle.

-- Ralph

From: andy pugh [bodge...@gmail.com]
Sent: Wednesday, July 04, 2012 1:15 PM
To: Enhanced Machine Controller (EMC)
Subject: Re: [Emc-users] A axis and spindle

On 4 July 2012 21:00, Jon Elson el...@pico-systems.com wrote:

 And, how to do this without causing a momentary huge following error

Ah, yes. Good point.
Given that, I think it has got to the point where a custom HAL module
is called for which mediates the position feedback. (though another
mux to short-circuit the feedback would work, connecting
axis.M.pos-feedback to either position-command or encoder-position as
required. (possibly triggered by a timedelay component).
The spindle doesn't have an f-error problem. I guess you could just
ignore f-error on A too, and short-circuit the feedback.

--
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread andy pugh
On 4 July 2012 21:37, Ralph Stirling ralph.stirl...@wallawalla.edu wrote:

 My thought is that it should use the C encoder all the time,
 but with a velocity mode for normal turning, threading, and
 CSS.  Encoder rollover would be needed, but 64 bits should
 handle an awful lot of revolutions of the spindle.

Rollover is a non-issue within the lifespan of most machines (5
million years at 3000rpm and 2048 counts per rev)
There is (somewhere) a config for aligning a milling spindle for tool
change, so it's a solved problem. I just couldn't find it.

-- 
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread Jon Elson
andy pugh wrote:
 Given that, I think it has got to the point where a custom HAL module
 is called for which mediates the position feedback.
Yes, that sounds right.
 The spindle doesn't have an f-error problem. I guess you could just
 ignore f-error on A too, and short-circuit the feedback.
   
Right, going from axis to spindle shouldn't be a big problem, just 
freeze the encoder position
so it doesn't think C is moving.  But, going from spindle mode to axis 
mode is trickier,
as it has to gently engage the position servo.

When the spindle is being positioned, technically is is a C axis, as in 
rotating parallel to the
Z axis.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread Jon Elson
Terry Christophersen wrote:
 I dont know how this is done on newer lathes but Ive seen
 older ones with an electric clutch on the spindle that engages
 and a seperate servo motor that does the milling or positioning moves
 then disenguages for normal lathe turing.
 Could an encoder be put on a the servo(except for the index pulse)
 this way the servo encoder would not have the wrap up from turning
 operations as it would be disengaged most of the time?
 I am sorry that this is probably not helping this person but I am
 thinking about doing this to a lathe of mine and this
 topic reminded me of my question
   
If you need really rigid holding of the spindle then what you describe 
is probably the only
way to do it on a home shop budget.  If it is for very light work, then 
maybe a single
motor can do it without it being massive.  Then, it mostly becomes a 
software problem.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] A axis and spindle

2012-07-04 Thread Jon Elson
andy pugh wrote:
 On 4 July 2012 21:37, Ralph Stirling ralph.stirl...@wallawalla.edu wrote:

   
 My thought is that it should use the C encoder all the time,
 but with a velocity mode for normal turning, threading, and
 CSS.  Encoder rollover would be needed, but 64 bits should
 handle an awful lot of revolutions of the spindle.
 

 Rollover is a non-issue within the lifespan of most machines (5
 million years at 3000rpm and 2048 counts per rev)
 There is (somewhere) a config for aligning a milling spindle for tool
 change, so it's a solved problem. I just couldn't find it.

   
Not necessarily.  Assume 3000 RPM and a 1000 cycle/rev encoder.  Typical 
24-bit
encoder counters will roll over on a bit over a minute (16 mil/12 mil).
That gets overflowed to 32 bits, so it would take 358 minutes to overflow
the 32-bit count.  I think all the encoder counters on LinuxCNC currently
use a 32-bit count internally.

Jon

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users