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.

Programming Languages

10+

Software APIs

5

Coordinated Axes

64+

Supported EtherCAT Nodes

40+

Happy Customers

400+

logo_vb

The OEM Cycle

Visualize the process building of machine with RMP

1
SELECT 
HARDWARE
Select your desired EtherCAT nodes from 50+ supported manufacturers
2
PROGRAM
Create your motion application using the RMP APIs with your favorite programming language and OS
3
TEST
Verify your software and hardware run correctly in conjunction
4
BUILD
Build one or many machines with your motion software and EtherCAT hardware
5
SHIP
Sell and ship the machine to your customers!

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 60-day software evaluation.
An Engineer will assist you shortly.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Motion Controller Features

The RMP EtherCAT Motion Controller is packed with features and tools to help you build smart and powerful machines

Motion

Point-to-Point

Simple move to new command position. Move to absolute postion or position relative to current position.

Streaming

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.

Path

Geometric path motion allows complex 2D and 3D paths to be defined using simple geometric elements such as arcs and lines.

Velocity

Simple constant velocity move. Will continue at constant velocity until modified, paused, or interrupted.

Modify

Point-to-Point and Velocity motion trajectories can be modified/overwritten on-the-fly.

Hold

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.

Gantry

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.

Camming

The position of a slave axis is mathematically linked to the position of a master axis. Create a table and start with camming.

Electronic Gearing

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 (Probe)

Capture enables high accuracy position latching based on an external electrical input. Typical sources are touch probes, home switches, or encoder index pulse.

Phantoms

Geometric path motion allows complex 2D and 3D paths to be defined using simple geometric elements such as arcs and lines.

Feed Rate (Retrace)

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.

Multi-Axis Control

The MultiAxis object allows you to map two or more axes together and command synchronized motion

Cartesian

This provides a unifying control interface in cartesian space for a diverse set of robots and machines.

G-Code

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.

Conveyor Tracking

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

Real-Time Triggers

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.

I/O Control

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

Tuning

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.

Homing

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.

Safety (FSoE)

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.

Settling

Axis Settling is the process of the RMP firmware determining that all settling criteria for a move has been met.

Backlash Compensator

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.

Linear Compensator

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 Compensator

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

Real-Time Recording

A Recorder object provides a mechanism to collect and buffer any data (positions, velocities, etc.) in the controller’s memory.

Error Logging

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

51

Manufacturers

94

Nodes

Operating Systems

Use the RMP with your preferred OS.

windows symbolintimo logowindows symbolwindows symbol

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.

Explore API

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.

Explore API

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

Explore API

RapidCodeRT API

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

Explore API

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.

Explore API

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.

Explore API

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.

Explore RapidSetup

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.

Explore MotionScope

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.

Explore VM3

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.

Explore Rsiconfig

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

Overview
  • 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.

Configuration Diagram
Definitions
Architecture Diagram

(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.

Overview
  • 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.

Configuration Diagram
Definitions
Architecture Diagram

(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.

Overview
  • 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.

Configuration Diagram
Definitions
Architecture Diagram

(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?

412 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

RapidCode API Class Diagram
Axis

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.

Multi-Axis

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.

IO

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.

IO Point

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).

Motion Controller

The MotionController class Provides an interface to general controller configuration, firmware upload/download, network, and data recording.

RSI Error

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.

Success Stories

Successful companies rely on RSI to grow their business

“Our experience with RSI has been great on this project. The package developed by RSI, especially the GUI is extremely well done and very user friendly. The field support on a world wide basis has also been excellent and we are very thankful to have RSI as a partner.”

Hunt Valve

“Overall, it has been a good experience. From the upfront initial visits to the presentation to the final delivery, installation, and implementation into manufacturing, it has been a positive experience.”

Windy City Wire

“We tried a lot of different motion controllers in the past, but now we have found the RMP motion controller from RSI.”

IGEMS

“RSI makes a great team member for development of motion applications!”

MachAET

“The well documented API was easy to work with and had good support. Using RMP enables us to fully integrate hardware control in our application, making the user experience much smoother.”

Nortek Group

“Our finished product impressed our customer enough that upon accepting the machine and before taking it home they sent us more work. This wouldn’t have been possible without some great support from RSI!”

JT Automation

FAQ

Some RMP commonly asked questions

Pricing

Can I request a trial version of RMP EtherCAT soft motion controller?

We offer a 60 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 all them 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?

Try Our Free Trial!

Sign up for a 60-day software evaluation.
An Engineer will assist you shortly.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.