Technical Forum

SINUMERIK CNC automation systems

Spindle Positioning with 840d Sl

Thread Starter: David_Wiens   Started: 6/26/2012 7:44 PM   Replies: 9

« Previous thread Next thread »
Page 1 of 1 (10 items)
  6/26/2012, 7:44 PM
Joined 4/27/2012
Last visit: 5/24/2013
Posts: 12
Rating:
Rated: Excellent [5 out of 5 / rated 1 time(s)]. (1) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hello,

I am working on a CNC-type machine in which we need to use the Spindle axis in speed mode and positioning mode (S=... vs SP=...). We have a Singleturn Absolute encoder on the spindle motor and there is a 4:1 belt connecting it to the spindle (4 motor turns = 1 spindle turn). 

The problem has to do with the spindle loosing its reference when the power is cycled (or a PO reset is performed). It will regain its position but it will be off by 0 degrees, 90 degrees, or 180 degrees.

I performed some tests and found that 
when the spindle is left at 100.15 degrees, position after reset is 10.15 degrees.
when the spindle is left at 190.15 degrees, position after reset is 10.15 degrees.
when the spindle is left at 280.15 degrees, position after reset is 10.15 degrees.
when the spindle is left at 10.15 degrees, position after reset is 10.15 degrees.

The behavior (I think) is that on power up, the position is always being set by adding some value (presumably obtained when the spindle axis is referenceed) to the absolute encoder 0 to get the axis 0. This works if the spindle was left within a 90 degree range surrounding zero (in our case 332 degrees to 62 degrees). But if the spindle was left in any of the other three 90 degree ranges, the spindle orientation will be off by 90 or 180.  

Isn't the position stored in SRAM and should be able to be found on after a reset (assuming no one moved the spindle more than 90 degrees while power is off)? Is there an parameter I am missing that would correct this behavior?

Any insight on this problem would be greatly appreciated.



Top
  6/26/2012, 10:11 PM
Joined 7/16/2006
Last visit: 5/24/2013
Posts: 1447
Rating:
Rated: Outstanding [3.47 out of 5 / rated 164 time(s)]. (164) 
Users with special expertise supervising conferences
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hi
David_Wiens wrote:
I performed some tests and found that 
when the spindle is left at 100.15 degrees, position after reset is 10.15 degrees.
when the spindle is left at 190.15 degrees, position after reset is 10.15 degrees.
when the spindle is left at 280.15 degrees, position after reset is 10.15 degrees.
when the spindle is left at 10.15 degrees, position after reset is 10.15 degrees.


Your Motor can NOT know, how if the position from the Spindel.


You can make an initiator on the Spindel, how say, here is the Zero-Position.
Information --> flying referenz with beru.
This is the same example as a long linear-encoder on a long axis with more than 1 zero-points.

Perhaps is possible:  (Normaly the best resolution)
You can try, place an aditional encoder direct on the spindel.


Regards Karl

Karl
Top
  6/26/2012, 10:12 PM
Joined 1/19/2008
Last visit: 5/24/2013
Posts: 374
Rating:
Rated: Excellent [4.63 out of 5 / rated 16 time(s)]. (16) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
HI,

It sounds like the encoder is acting as an incremental encoder. The spindle will reference on the first zero mark it sees. This could be any one of four with a 4:1 ratio.
Is the encoder a multiturn absolute encoder ?.

Even so it could run out of turns if used as a spindle encoder.

You will probably require a signal from a proxy once per revolution from the spindle to allow the system to reference to the correct one of four zero marks.

Pee
Top
  6/27/2012, 1:01 AM
Joined 4/27/2012
Last visit: 5/24/2013
Posts: 12
Rating:
Rated: Excellent [5 out of 5 / rated 1 time(s)]. (1) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
I am sure that the encoder is behaving as an absolute encoder because it requires no turning of the spindle in order to find a position (ie I do not have to rotate it past the 0 degree mark). 

We were hoping to avoid putting a prox on the spindle because it seems like the absolute encoders should be able to remember its position.

I dont think that every machine in the world with a absolute encoder on the motor and a gear ratio between the motor and the load has to have an encoder or prox placed directly on the load in order for its absolute positioning to work. Am I wrong?
Top
  6/27/2012, 7:12 AM
Joined 1/19/2008
Last visit: 5/24/2013
Posts: 374
Rating:
Rated: Excellent [4.63 out of 5 / rated 16 time(s)]. (16) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hi,

When the system powers up without moving the encoder does the spindle show zero or a position?

If the encoder is only a single turn absolute it will act as an incremental.

Pee
Top
  6/27/2012, 3:29 PM
Joined 4/27/2012
Last visit: 5/24/2013
Posts: 12
Rating:
Rated: Excellent [5 out of 5 / rated 1 time(s)]. (1) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
When I power up without moving the spindle, a non-zero position is immediately available, as I would expect an absolute encoder to behave. 

I honestly don't know what "Singleturn" means with respect to absolute encoders. Does it have limitations I should know about?

Thanks for your attention.
Top
  6/27/2012, 8:40 PM
Joined 1/19/2008
Last visit: 5/24/2013
Posts: 374
Rating:
Rated: Excellent [4.63 out of 5 / rated 16 time(s)]. (16) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hi,

Absolute encoders store the value themselves and do not rely on the CNC to maintain position integrity.
A multiturn absolute encoder will track a position over say 10000 revolutions of the encoder.
A single turn absolute encoder only tracks the position for one revolution of the encoder which is great for rotary axes and the like on a one to one ratio with the encoder.
My gut feeling is that you have a single turn absolute encoder which the 840d appears to recognise but it doesn't work properly.
Absolute encoders do not have an infinite number of turns to work with so for a spindle there is probably no benefit. I think you need a proxy and define your encoder as incremental.


Pee
Top
  6/28/2012, 7:09 PM
Joined 4/10/2006
Last visit: 5/21/2013
Posts: 224
Rating:
Rated: Outstanding [3.48 out of 5 / rated 31 time(s)]. (31) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
From Doc on CD:

Supplementary conditions

● Linear axes with a traversing range > 4096 encoder revolutions, rotatory absolute value

encoder EQN 1325 and a parameterized absolute value encoder range of

MD34220 $MA_ENC_ABS_TURNS_MODULO = 4096:

–The maximum possible travel range corresponds to that of incremental encoders.

● Endlessly turning rotary axes with absolute encoders:

–Any number of integer transmission ratios are permitted.

–We recommend that you parameterize endlessly turning rotary axes with absolute

encoders as modulo rotary axes (traversing range 0...360 degrees).

MD34220 $MA_ENC_ABS_TURNS_MODULO

Otherwise, the machine axis may require a very long traverse path to reach absolute

zero when the measuring system is activated.

● Machine axes with absolute encoders:

–To ensure that the NC correctly determines the current actual position when the

measuring system is reactivated, the machine manufacturer / user must ensure that

the machine axis is moved less than half the assigned traversing range when the

measuring system is deactivated (POWER OFF, "parking" selected).

MD34220 $MA_ENC_ABS_TURNS_MODULO

Do you have MD34220 set to 1 for the spindle axis?

HTH,
SteveA

Top
  6/29/2012, 8:06 PM
Joined 4/27/2012
Last visit: 5/24/2013
Posts: 12
Rating:
Rated: Excellent [5 out of 5 / rated 1 time(s)]. (1) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
SteveA wrote:

MD34220 $MA_ENC_ABS_TURNS_MODULO

Do you have MD34220 set to 1 for the spindle axis?


Steve, that parameter (MD34220) did come up in our research on the subject and we looked at it and found that it was set to 4096. It seemed like it should be set to 1 but when we did that, an alarm cropped up stating that the parameter was invalid (though with no indication as to why).

I was wondering also, is there a formal way to Park, or when you included that, were you just meaning the spindle would be in a state where the axis would not be moved or is moving?

And FYI, the problem is a bit more education at this point. We couldnt figure it out so we went ahead and installed some homing proxes. It would still be nice to get to the bottom of it though for future projects.
Top
  6/29/2012, 8:19 PM
Joined 4/10/2006
Last visit: 5/21/2013
Posts: 224
Rating:
Rated: Outstanding [3.48 out of 5 / rated 31 time(s)]. (31) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Was that alarm after a reboot?  It could be complaining that the axis data doesn't match the drive data.  Check parameter p0421 for the spindle drive and see if it is set to 4096 also.

I think if it's an endat encoder it reads that info during commissioning and copies it to the axis data.  Or, if it is a "catalog" encoder.  If the encoder is not endat and not a catalog encoder and you don't manually set the multiturn resolution, it defaults to 4096.

If you used a catalog entry, that locks that parameter.  You have to make it a user defined encoder to change it.  Might be easier to re-run the wizard on the drive.

HTH,
SteveA
Top
Page 1 of 1 (10 items)
Actions