RE: What to use? EtherCAT or Ethernet Powerlink with CANopen protocol

"Albert Saenz" <[email protected]>
Newsgroups gmane.comp.hardware.bus.can
Organization iNAV electronica, S.L.
Message-ID <C173DBAFA0A54303B05D9FEE7C9B1320@DELLStudio>
John,
Thanks for your kind interest. I started in the machine-tool sector in 1979.
Our company stopped with Stepper motors in the far 1984 switching to DC
motors having many problems with electrical noise due to no jet E.M.C.
exist. (Nowadays almost all is installed are Brushless motors). 
Take a look at the following videos in order to know our concern, please.
Laser [year 2006]:  http://www.inavcnc.com/img/cl1010.wmv
EDM [year 1991]:    http://www.inavcnc.com/img/magcor.wmv
Best regards.
Albert Saenz
 

-----Mensaje original-----
De: [email protected]
[mailto:[email protected]] En nombre de John
Dammeyer
Enviado el: lunes, 17 de diciembre de 2012 18:21
Para: [email protected]
Asunto: RE: [CANLIST] What to use? EtherCAT or Ethernet Powerlink with
CANopen protocol

Albert,

I developed micro-stepping code for a stepper motor on my ELS protect.
I've learned that if you are driving a stepping motor with 8 uSteps per step
or 1600 steps per revolution that you need around a 20kHz clock to create a
reasonably smooth motion on the motor.

BTW, I made the ELS source code available under GPL so it's possible to see
how the stepping was actually done.  Since the ELS is designed to track the
speed of the Lathe Spindle to move the carriage of a lathe the target speed
of the stepper motor isn't very deterministic.  Especially if someone has a
variable speed spindle.

To describe it simply though if you wanted to run the stepper at 20,000
steps per second then on every processor clock tick the hardware step line
is pulsed high for 5usec.  If you want 10,000 steps per second then the step
line is pulsed every second clock tick.  So far there is no jitter.
The pattern is 101010101

Same at 5kHz the pattern is 100010001000...

But what about 12kHz?  1001010010100101

The stepping is no longer symmetrical with an time between steps.  One would
think this wouldn't work. But in fact the mass of the motor and that it's
micro-stepping means that it works quite nicely.  A Servo isn't any
different.  It's going to accumulate steps that result in an error
difference and the PID code will take care of smoothing out the erratic step
rate.

But, at 20kHz the maximum motor speed with 1600 micro-steps per rev the max
RPM is 750.  With a step pulse every 50uS we'd already be almost 3x the CAN
bus update rate.

Pick a Servo with a 1000 line encoder running in 4x quadrature mode (4000
lines per rev) and a max speed of 3000 RPM (50 RPS) and you now need a
theoretical motion update of 200kHz or 5uS.  This is the world of FPGAs not
CAN.

The solution in that case is a tightly coupled controller that accepts
motion profiles from a master controller over a network, queues them, and
then directly runs each motor.

Possibly CANFD with the larger packet size and slightly higher data bit rate
could maintain a motion profile as long as the granularity between moves was
large enough so there was always more move information inside the
controller.

That would be an interesting discussion.

John Dammeyer


"ELS! The Solution"
Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950

--
Archives and useful links: http://groups.yahoo.com/group/CANbus
Subscribe and unsubscribe at www.vector.com/canlist/
Report any problems to <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.