Hi Dan,
I think this feature is needed for all fieldbus solutions with modern
servos.
I'm using CAN with CANOpen servo-drives, spindle drives and Wago I/O, to
retrofit an air beared granite CNC router .
(old PCB router, linear scales on all axes, 3 metric tons weight, a
monster).
The servos (Danaher/Kollmorgen Servostar 300) are operated in autohoming
too,
because the Haidenhain linear scales are connected to the servo drives.
I added a parameter AUTOHOMING_SERVOSYSTEM = 1 in ini File and a new
flag in the homeing flags section.
My CAN / CANOpen HAL driver provides two additional pins.
An Input "do-homing" and an output "servo-homed".
These are connected to the axis component. When a homing request is
received, the DS402 drive statemachine is walked through.
Works fine for me for 5 years now.
I didn't check this solution into GIT, and this is why i didn't:
I'm a self employed contract developer.
Doing hard and software development for industrial applications is my
first job.
Part of my solution is a CANOpen Protocol stack with XML parser to read
the config.
The CANOpen protocol stack is a huge chunk of software that has grow
over years.
It's one of my products I sell.
Porting this to RTAI/LinuxCNC was a project to get a grasp on how to
work with hard realtime Linux, compared to vxworks (my most favourite RTOS).
So I can not publish this CANOpen master protocol stack and convert it
to open source by doing this.
BUT:
CANOpen is extremely powerful in configuring and describing industrial
devices to combine them in numerous different configurations
and keeping the devices exchangeable, not to be bound to one supplier.
It does this that good, that Beckhoffs Ethercat designers didn't spend
the effort to reinvent it.
They just reuse the definition layer and called it CANopen over EtherCAT
(CoE). Quite clever.
In the configuration process a configuration tool reads the electronic
datasheets(eds-file) from each device you want to use on the bus(ses)
and connects datapoints, like "speed set output" from the CANOpen
Master to "speed set intput" from the servo drive.
(defines fall back and error handling, bus usage by transfer methods and
much more.) This is made very generic, what makes is quite complicated.
However, if the application is given, like in a 3 axis CNC machine, the
effort to configure this once by hand is manageable.
As far as I kept track of the LinuxCNC EtherCAT solutions, there is no
full CoE Stack used.
They did it manually (correct me if I'm wrong).
long story short:
Thanks to the chip crisis i have "some" delay in my projects and will
probably find the time to setup an Ethercat LinuxCNC system to port the
self homing servo solution for field bus operated servo drives.
Hints regarding the EtherCAT Hardware are welcome.
I retrofitted and run a Brother TC221 Tapping center with QtPyVCP and a
modified probe basic.
The 30 year servo drives still work surprisingly well, but the amps
sound like the HV-capacitors run dry. The end seems to be near.
So a new set of servos will be needed anyhow.
200 Watts for X&Y and 400 Watts for Z are used now in the machine.
Hints regarding EtherCAT servos in this power range are welcome, too.
Cheers,
Rainer
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers