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

"John Dammeyer" <[email protected]>
Newsgroups gmane.comp.hardware.bus.can
Message-ID <F7675847B9BA4659B87A76647C18461A@asus>
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


> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On
> Behalf Of Albert Saenz
> Sent: Monday, December 17, 2012 4:54 AM
> To: [email protected]
> Subject: RE: [CANLIST] What to use? EtherCAT or Ethernet
> Powerlink with CANopen protocol
>
>
> Armin wrote:
> >It's sometimes hard to find out what are real fieldbus facts
> and what are
> marketing fictions :)
> >Regards
> >--Armin
>
> Anyhow, let me say something doesn't depends on the bus type:
> in case of to have different latencies in a robot or
> machine-tool, this has
> a direct reflection in the velocity's "jerk" (as a little
> ripple). E.g.
> imagine one axis is moving at a constant velocity of 60 m/min
> during a long
> distance. So V=60 m/min = 60 m/min* 1 min/60,000 ms *
> 1,000,000 um/m = 1,000
> um/ms (that is 1 mm per Tick=1ms). Imagine that the system
> can have 10us
> ('u' means 'micro') of latency, i.e. sometime SYNC message is
> processed at
> 1.01 ms or at 0,99 ms. And so, the velocity is 1,000
> um/1,01ms or 1,000
> um/0,99 ms (of course that the Servo Drive amplifier will
> react accordingly
> to the adjusted PID, but this will be the "jerk" I introduced before).
> V= 1,000 um/1.01ms =  990.1 um/ms or 59.406 m/min
> Or V= 1,000 um/0.99ms = 1010.1 um/ms or 60.606 m/min
> Error= 100 * (60.606- 59.406) / 60 = 120/60 % = 2%.
> Velocity's ripple is 2%.
> (These are the real terms we should talk in a Hard Real-Time
> environment!)
> If the SYNC message has a 10us latency (this could seem it is
> good enough),
> in applications of 0.5 ms the "jerk" would be of 4% and so
> on. For High
> Speed Cutting machines (very dynamic machines) with a
> Tick=0.1ms, it would
> be of 20% (!!!). We'd need, then, 1us latency.
> It's easy to understand that, when CNC interpolates two axis
> to generate a
> circle, the "velocity's jerk" will produce a little rugosity in the
> machining circle.
> That's all folks! If you are not more interested, I'll  try
> to 'switch' to
> another forum. It was a pleasure!
> Best and Merry Xmas,
> Albert
>
>
> >
> > -----Mensaje original-----
> > De: [email protected]
> > [mailto:[email protected]] En nombre de
> > [email protected] Enviado el: domingo, 16 de diciembre de
> 2012 13:46
> > Para: [email protected]
> > Asunto: RE: [CANLIST] What to use? EtherCAT or Ethernet
> Powerlink with
> > CANopen protocol
> >
> > On one hand:
> > - You are using the wrong platform for this discussion; I
> think this
> > is called CANLIST.
> > On the other hand:
> > - I like the discussion: it demonstrates the changes in the market
> > since the last ten years.
>
> --
> Archives and useful links: http://groups.yahoo.com/group/CANbus
> Subscribe and unsubscribe at www.vector.com/canlist/
> Report any problems to <[email protected]>
>

--
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.