

Ti2 engineers Mehdi Shayestehfar and Ryan Stapleton recently completed a motion-control integration bringing together a Zaber E-MCC2 controller, EtherCAT, CODESYS Control for Linux SL and the CODESYS SoftMotion library.
EtherCAT communication and standard SoftMotion positioning were both working as expected. The project turned into a genuine engineering problem once homing came into play.
The Challenge
The drive could be enabled, and standard positioning ran without issue. But when the CODESYS MC_Home command was called, the generic CiA 402 SoftMotion driver couldn't complete the handoff from Cyclic Synchronous Position (CSP) mode to the Zaber drive's own internal Homing mode.
The real challenge wasn't getting the axis moving, it was making the Zaber-specific homing behaviour work inside the standard CODESYS SoftMotion interface, without breaking normal positioning in the process.
How Ti2 Solved It
Mehdi and Ryan built a custom Zaber-specific SoftMotion driver that extends the standard CODESYS EtherCAT DS402 cyclic-synchronous driver, rather than replacing it. The standard CODESYS PLCopen interface, MC_Power, MC_Reset, MC_Home and normal SoftMotion positioning, stayed exactly as applications expect it.
During the homing sequence, the custom driver handles the parts the generic driver couldn't:
Switches the E-MCC2 from CSP mode 8 into Homing mode 6
Generates the CiA 402 controlword sequence that mode needs
Monitors the Zaber drive's homing status as it runs
Keeps the drive operation-enabled for the whole homing move
Synchronises the SoftMotion command position with the drive's actual position once homing finishes
Restores CSP mode once the axis is homed
Hands control back to SoftMotion for normal operation
The driver also supports homing more than once in a session, so the axis can be re-homed without restarting the controller.
The Result
With the custom driver in place, a standard CODESYS MC_Home command now performs drive-controlled limit-switch homing on the Zaber E-MCC2, and SoftMotion keeps working exactly as expected the rest of the time.
It's a good example of what multi-vendor motion control often comes down to: the standard interface gets you most of the way there, and the last piece is understanding one device's own state machine well enough to bridge it into that standard cleanly.
Ti2 would also like to thank Zaber Technologies for documentation and examples detailed enough to make working out the required CiA 402 sequence possible.
Working on a Similar Integration?
If you're working with Zaber, EtherCAT, CODESYS Control for Linux SL or CODESYS SoftMotion and have run into a similar integration challenge, get in touch with the Ti2 engineering team.
You can also reach the team directly at [email protected].