Table of Contents
Click desired link for faster navigation
The RMP Motion Controller
Open, powerful, and economical PC-based EtherCAT Motion Controller for OEM machine builders
Create EtherCAT machine control applications in C++, C#, VB, RapidScript
(proprietary language), Python, and all supported languages by gRPC.Operating system agnostic.
5 available APIs for real-time axis, robotic, or CNC motion control.
Up to 128 coordinated axes, 12,000 digital, and 1,000 analog I/O points.
Use any EtherCAT compatible servo, stepper, I/O, and sensors.
Integrated support for 50+ EtherCAT node manufacturers and counting.
400+ happy customers and counting.
10+
5
64+
40+
400+
Operating Systems | Windows • Linux • Linus Distributed • INtime • INtime Distributed |
Axis Count | 1 - 512 |
Sample Rate | 500 Hz - 8 KHz |
Programming Languages | C# • C++ • Python • RapidScript • gRPC • G-Code |
Protocols | EtherCAT |
Supported Manufacturers | 100+ (See all) |
Features | 30+ (See all) |
The OEM Cycle
Visualize the process building of machine with RMP
HARDWARE

Save Money
Cost effective for OEM machine builders.

Save Time
Use latest software tools to speed up development.

Save Headaches
RSI is here to support you and ensure your success.

Have Fun
Our feature rich controller makes development enjoyable.
Try Our Free Trial!
Sign up for a 30-day software evaluation.
An Engineer will assist you shortly.



Motion Controller Features
The RMP EtherCAT Motion Controller is packed with features and tools to help you build smart and powerful machines
Motion
Simple move to new command position. Move to absolute postion or position relative to current position.
Array of pre-defined position points which define a motion profile path. Multiaxis streaming allows for coordinated motion between multiple axes. Useful for shape cutting, dispensing, 3D printing, etc.
Geometric path motion allows complex 2D and 3D paths to be defined using simple geometric elements such as arcs and lines.
Simple constant velocity move. Will continue at constant velocity until modified, paused, or interrupted.
Point-to-Point and Velocity motion trajectories can be modified/overwritten on-the-fly.
Motion Hold allows the user to queue/load a motion command but the move doesn't execute immediately. The motion will be later triggered by a user defined condition executed in real-time by the RMP motion control firmware.
A Gantry attribute allows two axis positions to be summed or subtracted from each other allowing the delta position between them to be monitored and prevent skew.
Also possible (with Master-based tuning) a PID loop could control the linear position of agantry while another PID loop controls the skew or yaw of the gantry.
The position of a slave axis is mathematically linked to the position of a master axis. Create a table and start with camming.
Configure an axis’ commanded position to be electronically geared from a master axis or external encoder. A gearing ratio can be used to acheive desired rate and direction.
Capture enables high accuracy position latching based on an external electrical input. Typical sources are touch probes, home switches, or encoder index pulse.
Geometric path motion allows complex 2D and 3D paths to be defined using simple geometric elements such as arcs and lines.
Feed Rate (or Retrace) is a functionality that allows you to alter the speed of a loaded motion profile without affecting the motion profile (trajectory) itself.
The MultiAxis object allows you to map two or more axes together and command synchronized motion
This provides a unifying control interface in cartesian space for a diverse set of robots and machines.
The RMP soft motion controller has the ability to parse and plan 3D coordinated motions based on the G-Code syntax. This allows for easy adoption of our controller if you are already familiar with G-Code.
PostTrajectoryGearing enables cartesian or robotic systems to synchronize a process with a moving conveyor. Cutting shapes/dispensing on a moving conveyor, painting parts on a moving conveyor, picking/placing parts on moving conveyor, etc.
IO
Configure input comparisons to trigger outputs or other events. Conditions are monitored at the firmware level. When the condition is true, the configured response is generated.
Control general purpose digital IO, analog IO, or dedicated inputs such as limits/home sensors.
IO is part of the real-time network so can be synchronized to real-time events or triggered by real-time conditions.
Config
The RMP supports both drive-based and master-based tuning.
Most applications use drive-based tuning where the the servo drive is responsible for closing the position loop and the RMP sends position commands to the drive.
Master-based tuning allows users to run the servo drive in torque mode and close the position loop in the RMP.
Master-based tuning provides more control for torque sharing applications or special control algorithms.
The RMP supports both drive-based and master-based homing routines.
Most applications use drive-based homing where the the servo drive is responsible for performing the homing routine.
If using Master-based homing, users can create custom routines, or select from pre-defined list.
Configure input comparisons to trigger outputs or other events. Conditions are monitored at the firmware level. When the condition is true, the configured response is generated.
Axis Settling is the process of the RMP firmware determining that all settling criteria for a move has been met.
The backlash compensator adds/subtracts set value to command position depending on direction of motion. User can also control the rate at which the compensator adds/subtracts and hysteresis limits.
User can populate a compensation table to map the accuracy of a single linear axis or rotary axis. Compensation is executed automatically in RMP firmware so user doesn't need to modify command trajectories.
3D compensation allows users to map the accuracy of one axis relative to another or two other axes. In an XYZ cartesian system, a user could map the flatness of a table and compensate Z axis positions based on the position of X/Y axes. In a XY application, the Y axis positions could be mapped to X to compensate for straighness of the X axis.
Data
A Recorder object provides a mechanism to collect and buffer any data (positions, velocities, etc.) in the controller’s memory.
Error logs record motion control object errors that occur during the execution of code so you can target problems when debugging.
Supported Nodes
Many supported EtherCAT manufactures and counting
Manufacturers
Nodes












































Operating Systems
Use the RMP with your preferred OS.



Software APIs
Our RMP controller offers different ways to program motion and IO

RapidCode API
RapidCode is the RMP's primary API. It is powerful and intuitive, and allows developers to quickly create machine control applications in C++, C#, VB.NET, RapidScript (proprietary), or any GRPC supported language.

RapidRobot API
Easily deploy an EtherCAT robot using our UI and API. We handle all kinematics, collision, and singularity. Great option if you want to add robots to your existing EtherCAT machine.

RapidSequencer API
Powerful script language to quickly deploy machine code. OEMs can load a program with motion, IO, and math blocks that is executed in a real-time deterministic manner.
** Available for Windows and/or INtime RTOS

RapidCodeRT API
RapidCode Real-Time is the same as RapidCode but offered in C++ language. RapidCodeRT is compiled and runs inside the RTOS.

RapidGCode API
A G-Code interpolator and UI. The G-Code interpolator is also accessible through the RapidCode API. The RapidCode API enables OEMs to easily add to their custom UI. Simple applications can use the UI to reach production quickly. We use RMP Motion Controller in the back-end to guarantee real-time deterministic performance.

RapidAnalytics API
Web based portal to analyze machine performance and throughput so an OEM’s support team and management are able to collect data from machines shipped worldwide.
Software Tools
Our tools facilitate development and troubleshooting

RapidSetup
RapidSetup is an easy to use machine deployment tool to help with configuration, homing, tuning, commanding motion, and troubleshooting.

MotionScope
Plots data from any address on the motion controller. It is similar in its presentation to an oscilloscope. Used when developing and troubleshooting motion control systems.

VM3
The VM3 utility allows you to view and alter data stored in memory in either the RMP, QMP, or ZMP controllers. The VM3 is especially useful for locating memory addresses for plotting custom signals in MotionScope. When using VM3 to alter data on motion controllers, exercise extreme caution at all times.

RsiConfig
Using the rsiconfig.exe utility will help guarantee that your RMP is correctly configured and ready to run before your RapidCode application starts. It also can help you generate XML configurations for your current settings.

BodeTool
The Bode Tool is a utility that makes it easy to get frequency domain data from your system. The Bode Tool makes it easy to get the data a controls engineer needs to set up and tune the control system properly.
Configurations
The RMP can be configured in many ways
The most popular and default motion controller configuration.
Your application (UI or HMI) has been developed in Windows.
Allows you to leverage RapidSequencer for Windows. (non real-time configuration)
Need a high-performance machine for real-time and deterministic needs.

(Click image to expand)
User Interface & Program
Customer-created user interface and machine control application.
RapidCode API
C++, C#, VB .NET API for intuitive development.
NIC (EtherCAT)
Ethernet-based connection to EtherCAT® slaves on the network.
EtherCAT Master
Connects the master to slave devices using CoE (CAN application layer over EtherCAT®).
RMP Motion Firmware
Low-level operations for RMP’s motion controller memory.
Your application (UI or HMI) has been developed in Windows but needs to load some user logic in the RTOS.
Required to leverage RapidCodeRT or RapidSequencerRT software products.
Need to load control logic (if/else, for/while) or instructions (RapidCodeRT, math, comparison, etc.) in the RTOS.

(Click image to expand)
User Interface & Program
Customer-created user interface and machine control application.
RapidCode API
C++, C#, VB .NET API for intuitive development.
Real-Time RapidCode API
The real-time RapidCode® API for the INtime® or INtime® Distributed RTOS.
IO (NIC or Serial)
Ethernet-based or serial connection (COMM: RS232, RS422, or RS485) to external devices.
NIC (EtherCAT)
Ethernet-based connection to EtherCAT® slaves on the network.
User Firmware
Low-level control and operation of the user’s custom program.
EtherCAT Master
Connects the master to slave devices using CoE (CAN application layer over EtherCAT®).
RMP Motion Firmware
Low-level operations for RMP’s motion controller memory.
Your application (UI or HMI) has been developed in a non-Windows OS (ex: Linux, VxWorks, Unix, RTX/RTSS).
Your motion application will run inside the RTOS. Great for when every sub-microsecond matters.
You would like to program in C++.
Requires RTOS Development Kit.

(Click image to expand)
User Interface & Program
Customer-created user interface and machine control application.
RapidCode API
C++, C#, VB .NET API for intuitive development.
Real-Time RapidCode API
The real-time RapidCode® API for the INtime® or INtime® Distributed RTOS.
IO (NIC or Serial)
Ethernet-based or serial connection (COMM: RS232, RS422, or RS485) to external devices.
NIC (EtherCAT)
Ethernet-based connection to EtherCAT® slaves on the network.
Server Manager
Coordinate inputs and outputs between the Host System and Motion Controller over an Ethernet-based interface.
User Firmware
Low-level control and operation of the user’s custom program.
EtherCAT Master
Connects the master to slave devices using CoE (CAN application layer over EtherCAT®).
RMP Motion Firmware
Low-level operations for RMP’s motion controller memory.
Hardware Options
Select which hardware to use with RMP

Software
License
Use the RMP in a PC of your choice. This USB is transferrable.

Industrial
PC
RMP comes pre-installed in a ruggedized fanless industrial PC customized to suit.

Ruggedized
Industrial PC
RMP comes pre-installed in a fanless industrial Panel PC customized to suit.
ready to start automating?
1000+ customers have already automated with help of our products and team
The RapidCode API
The RMP's powerful, intuitive, and multi-language Motion Control software API
The axis class represents a single axis of motion control. This class provides an interface for commanding motion, reading trajectory parameters, configuring filter (control law) parameters, homing, limit switch configuration, motor configuration, position capture, electronic gearing and node information.
The MultiAxis class provides an interface to a group or collection of axes. Use the MultiAxis class when coordinated, synchronized or path motion is required.
The IO class provides an interface to an I/O Node. An I/O node can have various combinations of digital or analog inputs and outputs.
The IOPoint class provides a common interface to any I/O point, regardless of where it resides in the network (Motion Controller, Axis, or I/O Node).
The MotionController class Provides an interface to general controller configuration, firmware upload/download, network, and data recording.
The RSIError object is thrown as an exception by all RapidCode classes. It contains and error number, and a text message which describes the error. Throwing exceptions can be disabled on all RSI classes. If throwing exceptions is disabled, a log of RsiErrors can be accessed.
Support
Learning to use the RMP is easy due to our clean and extensive documentation
Case Studies
Explore some of our successful projects
Success Stories
Successful companies rely on RSI to grow their business


























































































Hunt Valve
Windy City Wire
IGEMS
MachAET
Nortek Group
JT Automation
FAQ
Some RMP commonly asked questions
Pricing
Can I request a trial version of RMP EtherCAT soft motion controller?
We offer a 30 day evaluation that is not limited to just the RMP EtherCAT motion controller. We can also provide hardware demo to free spin a motor and get started with applying all the RMP feature set.
How many RMP EtherCAT motion controllers are needed?
A single RMP EtherCAT motion controller runtime license is needed per machine.
What runtime licenses are needed for the RMP EtherCAT motion controller?
A RMP EtherCAT motion controller and INtime RTOS runtime licenses are needed. These licenses are locked against a single USB dongle.
How does pricing work?
RMP EtherCAT motion controller pricing structure based on axis count and the inclusion of premium features such as G-Code, FSoE, RapidRobot, RapidSequencerRT, RapidCodeRT, or RapidRemote. This ensures a cost effective solution where OEMs pay for features being used.
Do phantom axes count against my licensed axis limit?
Phantom or virtual axes do not count against licensed axis limit.
Is the INtime RTOS included?
RSI offers the RMP EtherCAT motion controller and INtime RTOS runtime licenses together. Upon issuance of purchase order, RSI uploads the licenses to our portal. The download links to install the RMP and RTOS are also available on the portal.
General
Advantages of using a software motion controller vs. dedicated hardware controller
RMP EtherCAT motion controller is compatible with most generic Industrial PCs. Industrial PCs are readily available and offered in various configurations. The OEM can select a PC and CPU with the absolute minimum processing power, squeezing the performance required for their application.
An OEM can select an IPC for their application by selecting a vendor that gives a good price, offers a short lead time, and guarantees long-term availability. With worldwide supply chain issues, the OEM can easily find a replacement IPC for their application.
Is RMP a true software based motion controller?
Yes, RMP is a true soft motion controller that utilizes the computing power of the modern computers to provide real-time deterministic performance by utilizing the EtherCAT communication protocol.
Is RMP simply an EtherCAT master stack?
Certainly not. RMP is a fully developed EtherCAT motion controller and offers much more than the typical EtherCAT master stacks sold in the industry.
Our RapidCode API and software tools make it very easy to program a machine, significantly reducing development time. Our RMP motion controller seamlessly handles all the configuration and setup. Our RapidCode API allows a user to deploy complex functionality in a straightforward manner so there is no laborious memory address pointers involved.
Do I need to setup and configure all my EtherCAT slave devices?
Each EtherCAT slave devices comes with an ESI file. RapidCode API and software tools enable the RMP EtherCAT motion controller to automatically detect all the nodes and establish a good EtherCAT network. This is done using a single API call or a click of a button usign our software tools. The nodes are then seamlessly presented in a tree view.
How to connect to the RMP EtherCAT Motion Controller?
RMP EtherCAT motion controller leverages the EtherCAT communication protocol. An Ethernet port on a computer is configured and dedicated to exchanging EtherCAT data packets. EtherCAT slaves are then connected via this Ethernet port to collect and relay information.
Can RMP support more than 128 axis counts?
The RMP can support more than 128 axes if needed by the application. The maximum number of axes is limited to the CPU power. A more powerful CPU can support higher axis counts.
Can I program the RMP EtherCAT motion controller without real hardware connected?
Yes, phantom (virtual) axes can used to program and simulate using the RMP EtherCAT motion controller
As a RapidCode user, do I need to configure or interact with the RTOS that RMP EtherCAT motion controller is runs on?
The INtime RTOS runs in the background. Users only need to develop their application using our RapidCode API and utilize our software tools. We manage all the interaction between our motion firmware, the EtherCAT master stack, and relaying data to/from the EtheCAT nodes on the network.
What type of applications has RMP been used with?
OEMs looking to build a multi-axis and high performance machine using a PC are great RMP users. The RMP EtherCAT motion controller is PC based that can be programmed using many languages such C++, C#, VB .NET, Python, Java, Ruby, and etc.
How many axes can be added to a synchronized and coordinated move?
RMP currently supports 128 axes and two sets of 64 axes can be synchronized to create a coordinated multi axis move.
What SDKs are needed to develop my application?
RapidCode SDK is used with Visual Studio (or other windows IDE) to develop most applications.
Note: INtime SDK is only required when using RapidCodeRT premium feature.
What hardware is required to run the RMP EtherCAT motion controller? Are there any bare minimum requirements?
We recommend using our iPC300 industrial products. OEMs can select their own PCs but we recommend selecting industrial computers and use Windows IoT LTSC operating system. The LTSC variant of Windows has a long life cycle and limits feature updates (not security updates). We recommend using Intel CPUs with atleast a dual or four core Celeron. 4GB RAM is recommended. An Intel NICs is recommended (as opposed to Broadcom or Realtek).
Technical
How is RMP a real-time and deterministic motion controller when it runs on Windows OS?
RMP EtherCAT motion controller’s firmware runs on INtime RTOS. A CPU core, memory, and Ethernet port are dedicated to the RTOS to ensure real-time deterministic traffic of data between the motion controller and EtherCAT hardware on the network.
Can IO be triggered in real-time (RT)?
IO’s can be triggered in real-time using various RMP features. The most commonly used feature to trigger IO in RT is User Limits. Single or multiple conditions can be defined for when to trigger an IO. However, User Limits is not an option when further math logic needs to be implemented to trigger an IO RT. In those cases, RapidSequencer or RapidCodeRT is the best solution.
Can RMP support EtherCAT nodes not listed in the supported list?
We support a variety of EtherCAT nodes. See our supported EtherCAT node list.
We specialize in drives which are CiA DS402 compatible and use CoE (CANOpen over EtherCAT). We can integrate new nodes if not present in our current supported list.
What sample rates can I run the RMP EtherCAT motion controller?
The default RMP sample rate is 1KHz. The sample rate can be increased up to the maximum drive interpolation rate.
What different modes/loops can I run the RMP?
RMP can run in Position, Torque, or Velocity modes. Most OEMs typically close the position loop in the servo EtherCat hardware.
Does RMP offer any safety features?
RMP supports FSoE (Field Safety over EtherCAT) to add safety to an industrial machine and significantly reduce wiring over the more traditional approach of using an external safety controller.
Can RapidRobot control my kinematic model?
Yes, at default we support several simple models and robotic arms we work with frequently. Other kinematic models for custom full Articulated (6 axis) serial, SCARA, and cartesian Robots can be easily added based on your needs.
What is the difference between RapidCode and RapidCodeRT?
Please see the following link to learn the differences:
https://docs.roboticsys.com/motion-controllers/rmp-ethercat/software-apis/rapidcodert-api-c++
Try Our Free Trial!
Sign up for a 30-day software evaluation.
An Engineer will assist you shortly.


