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

"John Dammeyer" <[email protected]>
Newsgroups gmane.comp.hardware.bus.can
Message-ID <6CF23DD7AAF94493A78B67B30732AC85@asus>
> You're right Kees!!
> But where can we follow with the discussion with the "field
> buses gurus"? (I
> will do my best. For sure!)
> Thnaks and sorry,
>
>
> Albert
> www.inavcnc.com

Albert,

Your concept of trying to stay with CANOpen and run multiple synchronized
motors is interesting.  However, I'm not sure it's cost effective or
feasable.  The add on card that has at least 3 CAN bus ports (one for I/O
and two for motors) can't be inexpensive.

In the hobby and small industry world there are two programs out there
that do CNC.  One is called MACH3 and the other was called EMC and runs on
Linux.  At the start these systems controlled at most 4 motors with
step/dir signals and the key to their functioning on a PC was the low
level device driver interface and the parallel port.  There's a whole
automation industry running off MACH3 and the peripherals.

Of course as the parallel port vanished from PCs a new solution had to be
found.  That's taken the form of either a USB or CAN bus add on module
that then duplicates two parallel ports plus adding other automation
features.

For existing users, they need only buy the add on and move the parallel
port cable from their old PC onto the add on and their CNC system
continues as before.

The key to the system is the simple step/direction signals for each motor.
The PC application sends down blocks with an image of step or not in each
byte to be sent out by the module at 25kHz or more.

If more I/O is needed there are several companies producing MODBUS RTU
modules that expand the I/O for limits, keypads, displays etc.

To get into simple CNC or even just a motion system for pick and place for
example, one need only buy an inexpensive set of stepper drivers, the
motors, obviously the connecting hardware and a USB or Ethernet interface.
The CNC software is $150.

Not that I haven't considered using CAN as the backbone for running
multiple steppers but I think the expense of intelligent motors plus the
add on card is perhaps a non-starter.  I know of one manufacturer who
makes a stepper motor driver with CANOpen interface but position
information is written using SDO messaging which always results in two
messages.   One to set the Object Dictionary value and one to reply that
the value has been set.

So you are right, PDOs with the data conntaining the next position is
required.  The code inside the motor driver has to be able to interpret
the messages quickly enough and if micro-stepping the windings also handle
everything involved in switching the current through the windings plus
interpolating the number of steps to the next target position including
accelerations and decelerations.

Adding a CANOpen module to MACH3 or the up coming MACH4 would be a useful
endeavour over say MODIO.  Possibly using CANOpen with the SYNC message
occuring often enough to tell each motor to now impliment the previously
loaded move could work.   But you need time for ERROR FLAGs and
retransmissions.  To design the system without room for those you can run
into trouble.

MilCAN dealt with that by banning ERROR FLAGs.  This way their SYNC Frame
from the master is guaranteed to be on time.  But what happens if one of
the move messages or position messages fails?

In the Ethernet world or even USB world the MACH3 and EMC systems send
enough data in larger blocks and the stepping engine accumulates these and
is responsible for toggling the pins on the step and direction signals to
the motor to make them move.  But these stepping engines are FPGAs and
everything is done in hardware.

My Electronic Lead Screw project has an LCD display, 35 button keypad, a
16 position knob encoder, beeper and a micro-stepping driver.  Plus CAN
bus.  So far I've ported the simple Microchip CANOpen stack to this and
can send an SDO to show a specfic message on the LCD screen.  I get PDOs
from the button presses.  But for the stepper drive the only solution I
can see is a move to X at V with acceleration A.  Which I really must get
around to one of these days.

I think with CAN it can be done.  But not fine resolution multi-axis
motion at a cost lower than what's already out there.  And that's the key.
At a lower cost.

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.