KPA Motion is a library used in software development for position control devices. KPA Motion is specially designed for the automation industry, medicine, and other application fields, where it is necessary to control the moving parts of machines or robots, e.g. numerical control (CNC) machines. It conforms to the PLCopen specification and does not rely on a specific drive model or vendor, offering a standard motion interface which can be used across various systems. Remote usage of product capabilities is provided by the proxy development kit (PDK). The PDK allows to control drives using a non-real-time OS on the client side, as the motion control performed in a real-time OS on the server side.

System compatibility

KPA Motion is implemented as a library with a “C” interface and is not bounded to any specific CPU architecture. Moreover, the architecture includes operating system abstraction layer (OSAL) which enables adaptation to any operating environment. KPA Motion already supports Windows, Linux, Intime and QNX. More operating systems are in development.

3D-axis, synchronized axis, and single-axis motion control

KPA Motion provides the possibility to create custom applications for managing portal systems and 3D-axis motion with complex trajectories.

Online generation of the time-optimal trajectory

Internal algorithms of KPA Motion allow to generate time-optimal trajectories at each motion cycle.

The time optimal algorithm transforms an arbitrary current state of motion into the desired target state of motion, taking into account motion constraints. The algorithm works without memory and only calculates the next state of motion, which is used as input value for lower-level motion controllers. The resulting trajectories are time optimal and synchronized in such a way that all selected degrees of freedom (DOF) simultaneously reach their target state of motion.

The online generation of the time-optimal trajectory allows to increase the efficiency of the tasks.

Jerk-limited motion

KPA Motion helps to reduce equipment wear, acoustic noise, and loads amplitude in motion. Position time-dependencies has continuous first- and second-ordered derivatives over the complete path.

Operating System Abstraction Layer

KPA Motion is compatible with various systems due to developed Operating System Abstraction Layer (OSAL).

OSAL provides an application programming interface (API) to allow KPA Motion Control Library to take advantage of an Operating System (OS) to run either in OS environment or without one. It is designed to take care of the underlying differences between the OS interfaces.

Any KPA Motion Control component that depends on OSAL does not include any specific implementation of the OSAL interface. The implementation is built as a static library and should be linked with a user application. Thereby, the implementation of OSAL API is exclusively resolved on application compile time.

KPA Motion Control allows the introduction of a custom OSAL implementation and the use of Motion Control capabilities within user’s specific environment.

Bus Abstraction Layer

Bus Abstraction Layer (BUSAL) allows interacting with drivers based on various profiles, such as CiA402/DS402, SERCOS and PROFIdrive. BUSAL is a modular KPA Motion Control component. It introduces an open interface for communication with physical or virtual drives. The BUSAL allows treating moving parts of machines as axes. It consists of several built-in modules. The user can implement own modules to handle any real or virtual equipment as drives.

Available for various CPUs

KPA Motion offers multi-thread processing for multi-core CPUs and is also optimized for low-end CPUs.

KPA Proxy addition

KPA Proxy is an add-on to KPA Motion that allows to transfer control logic of the real-time application to the non-real-time system. It means, that this add-on provides remote control of real-time motion application. The addition consists of two parts: client (works on non-real-time system) and server (works on real-time system). KPA Proxy is a bridge for GUI interfaces which allows to increase application interactivity and to improve visualization of the application.

Native EtherCAT bus support

EtherCAT bus support is provided by a comprehensive own-developed master driver.

Meets industry standards

koenig-pa GmbH is a voting member of PLCopen Group – an independent worldwide organization providing efficiency in industrial automation based on the needs of users. KPA Motion supports PLCopen Control specifications with additional extensions.

Integration with KPA Automation softPLC

KPA Motion library is integrated to KPA Automation softPLC that allows to assign driver control logic by the means of graphic interface without writing code.

Motion Configurator

KPA Motion is complemented with Motion Configurator – a plug-in of KPA EtherCAT Studio. KPA EtherCAT Studio allows to configure motion trajectory by the means of Motion Configurator which generates INI file with corresponding settings.

  KPA Motion Library Flyer (285.8 KB, 2,373 hits)

  KPA Motion Development Kit (269.6 KB, 2,417 hits)


KPA Motion is delivered as an archive, which includes documentation, header files, libraries and examples.

KPA Motion Control Library

Below are presented the examples of KPA Motion functional blocks.

Aside from the fact that there is the interface for C++ integration in a new application, there is an integrated solution by means of softPLC with these integrated blocks. So, if the user don’t want to integrate motion in its applications it may use ready to go solution represented by softPLC, where these blocks already have been integrated.

Ready to try our KPA Motion?

Request a free trial

Get more information if you have any questions

    By entering your email address you agree that we will answer your request via email.
    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.