EC-Motion [Motion Control Library]

EtherCAT Motion Control Library

EC-Motion provides a simple C/C++ Motion Control Library for EtherCAT drives. This Library supports all the single-axis movement commands that are specified within the PLCopen standard without the need for costly additional hardware. Based on this Library it is also possible to implement applications for multi-axis coordinated movements.
The drives can be operated in the CSP (cyclic synchronous position mode) or CSV (cyclic synchronous velocity mode).

To achieve low CPU load no floatingpoint computations are executed while the drive is moving.
Thus, a big number of drives can be connected even on less performant embedded platforms.
Usually, the functions of the Motion Control Library are called cyclically (e.g. once every millisecond), no additional tasks are created.
In consequence, the integration of the EC-Motion Library into PLC runtime environments as well as on platforms without an operating is easily possible.

EC-Motion requires a 32 Bit CPU platform with floating-point support as well as a C++ runtime environment. The Library was successfully tested on a variety of platforms: Intel or AMD x86, ARM (e.g. Texas Instruments Sitara), PowerPC (e.g. CoreIQ).
To guarantee proper synchronization between the motion controller and the drives a deterministic real-time runtime environment is needed.

EC-Motion together with the proven and powerful EC-Master EtherCAT Master Stack running on the controller hardware is providing the basis for a custom motion solution.
Using the shipped Windows remote control application simple movement commands can be executed remotely.
The EtherCAT network can be configured using the optionally available EC-Engineer configuration tool, this tool also provides diagnosis functions.
To implement motion solutions on the Microsoft Windows platform acontis is providing EC-Win, a powerful and industry proven Windows real-time solution for EtherCAT.

EC-Motion product content

  • C++ motion demo example application
  • Windows remote control application for the motion demo
  • Optional: EC-Engineer for configuration and diagnosis of the EtherCAT network
  • Optional: EC-Win EtherCAT real-time platform for Windows

Used Standards

EC-Motion supports proven standards to be able that a wide variety of EtherCAT drivers can be used.
The motion control Library provides functions that are specified within the PLCopen (motion control function blocks, MCFB).
The drives have to be conforming to the ETG.6010 guidlines for CiA compatible drives.

EC-Motion functions according to PLCopen

General Functions
: Controls the power stage (On or Off).
MC_Home: Search home sequence
MC_ReadParameter, MC_ReadBoolParameter: Returns the value of a parameter
MC_WriteParameter, MC_WriteBoolParameter: Modifies the value of a parameter
MC_ReadActualPosition: Returns the actual position.
MC_ReadActualVelocity: Returns the actual velocity.
MC_ReadMotionState: Returns the actual velocity.
MC_ReadAxisError: Presents general axis errors not relating to the Function Blocks
MC_Reset: Transition from the state ‘ErrorStop’ to ‘Standstill’ 
MC_SetModeOfOperation: Set mode of operation (CSP or CSV mode)
MC_SetPosition: Shifting the coordinate system of an axis
Movement Functions
: Motion stop and transfers the axis to the state ‘Stopping’.
MC_Halt: Motion stop and transfers the axis to the state ‘Standstill’.
MC_MoveAbsolute: Motion to a specified absolute position.
MC_MoveRelative: Motion of a specified relative distance.
MC_MoveVelocity: Motion at a specified velocity. 
MC_ContinuousAbsolute: Motion to a specified absolute position ending with a specified velocity. 
Motion of a specified relative distance ending with a specified velocity. 


  • Support of the drive according to the profiles CANOpen DS402 or SERCOS
  • Support of Cyclic Synchronous Position (CSP) and Cyclic Synchronous Velocity (CSV) mode
  • Support of jerk limited movements
  • Support of changing parameters during movement (continuous update)
  • Support of buffer modes (buffered, blending)
  • Efficient implementation with low CPU load
  • Independent from communication layer (EtherCAT, CAN)
  • Available for CPU architectures x86, ARM and PowerPC
  • Library includes source code

More information

Data sheets and evaluation versions are available in the download area.

(C) 2014 - Alle Rechte vorbehalten