KPA Motion Bridge is an add-on to KPA Motion Control Library that connects a real-time motion application to programs outside the real-time system. With KPA Motion Bridge, an operator interface, a line controller, or plant software can define, start, and supervise motion on a real-time computer without running inside its motion cycle.
Two sides. One connection.
Server Application
Real-time computer
The server, KPA Motion Bridge Server (hereafter Server Application), runs on the real-time computer and executes the motion application using KPA Motion Control Library.
Client
Non-real-time computer
The client is your program on the non-real-time computer: it sends the server a sequence of calls that create the axes and function blocks, link the blocks, and start or stop the application. While the application runs, the client can read its data and adjust the permitted parameters.
Built on established technologies
The two sides communicate through BridgeService over Eclipse eCAL. Its requests and responses are protobuf messages.
How It Works
A Motion Bridge application goes through four stages
01
Client development
Motion Bridge supplies the Bridge Protobuf definitions. The customer compiles them with protoc into message code for the client language, links the client with the third-party Eclipse eCAL library, and implements the application logic.
02
Server start
Server Application starts on the real-time computer and waits for a client on the same computer, over the network, or through shared memory.
03
Configuration
The client creates the motion environment with its axes, then creates the function blocks and links between them.
04
Cyclic mode
The client starts cyclic mode. Server Application runs the function blocks and passes data between the blocks according to the configured links. While the application is running, the client can read and write the inputs and outputs of the function blocks. Stopping cyclic mode returns the server to configuration and keeps the blocks and links.

Client Application Examples
Client application examples are included in the delivery for the supported programming languages.
Supported Platforms
Linux x86 Linux x64 Linux ARM32 Linux ARM64 Xenomai 3.3.1 x64
Additional real-time operating systems can be supported on request.
