APIs, concepts, guides, and more
❓ FAQ

Common questions about the RMP.

πŸ”Ή General

How do I request a RMP evaluation license?

Please visit the following link: RMP evaluation license and follow all instructions.

The default evaluation period is 30 days. Please contact us at tech@roboticsys.com if you need to extend RMP evaluation by an additional 30 day period.

What type of Ethernet chipsets (NICs) does RMP support?

What type of CPUs and chipsets does RMP support?

πŸ”Ή RapidCode API

What is RapidCode?

A software API that allows you to rapidly develop applications to suit all your motion and I/O needs. See the RapidCode page for more details.

Is RapidCode offered in 32-bit and 64-bit?

Yes. A user can write an application using our 32-bit or 64-bit libraries.

  • For Windows, both 32-bit and 64-bit libraries are available.
  • For Linux, only 64-bit libraries are available.
  • For INtime, only 32-bit libraries are available (INtime is a 32-bit OS).

What files do I need to setup my C++ project?

*Windows 32-bit:**

*rsi.h** Primary Header file. *RapidCode.lib** [32bit] - Import Library. *RapidCode.dll** [32bit] - C++ dll.

*Windows 64-bit:**

*rsi.h** Primary Header file. *RapidCode64.lib** [64bit] - Import Library. *RapidCode64.dll** [64bit] - C++ dll.

*Linux:**

*rsi.h** Primary Header file. *librapidcode.so** [64bit] - Shared Object Library.

*INtime:**

*rsi.h** Primary Header file. *RapidCodeRT.lib** [32bit] - Import Library. *RapidCodeRt.rsl** [32bit] - C++ Real-time Shared Library.

What files do I need to setup my C# project?

*32-bit:**

*RapidCode.NET.dll** [32bit] - .NET Standard 2.0 DLL

Note: RSI.System.dll is not needed, but some users might want to save Axis configurations that are not stored in the motion controller such as user units.

*64-bit:**

*RapidCode64.NET.dll** [64bit] - .NET Standard 2.0 DLL

What version of Visual Studio can I use?

2010, 2015, 2017, 2019, and/or 2022.

Which .NET frameworks can I use with RapidCode.NET.dll?

*RapidCode.NET.dll** is built for .NET Standard 2.0, making it compatible with applications built on the following frameworks:
— Windows —
.NET Standard
2.0βœ…
2.1βœ…

.NET Framework
4.5❌ 4.5.1❌ 4.5.2❌
4.6❌ 4.6.1βœ… 4.6.2βœ…
4.7βœ… 4.7.1βœ… 4.7.2βœ…
4.8βœ…

.NET Core
2.0βœ… 2.1βœ… 2.2βœ…
3.0βœ… 3.1βœ…

.NET (formerly .NET Core)
5βœ…
6βœ…
7βœ…
8βœ…
9βœ…
10βœ…

— Linux —
.NET
8βœ…
9βœ…
10βœ…

Note
If your desired framework is not supported, please contact us, we can work to offer our Dlls in your desired .NET framework.

Which MSVC runtime do I require to run my application?

The RapidCode API links to the runtime library which works for 2015, 2017, 2019, 2022. We offer both 32-bit (x86) and 64-bit (x64).

The 32-bit and/or 64-bit "Microsoft Visual C++ Redistributable packages for Visual Studio 2015, 2017, 2019, and 2022" can be downloaded from Microsoft's latest-supported-vc-redist site.

Which folder should I copy the RMP runtime license file?

Ensure this (rsi.lic) file is placed in your RapidCode folder C:\RSI\X.X.XX by default in Windows, \rsi\ in Linux.

How do I change RMP EtherCAT controller sample rate from 1KHz to 4KHz?

Can we just move one Axis in a MultiAxis?

Can a MultiAxis work with one axis in CSP and another in CST?

There is no need to use different functions for a combination of CSP and CST. (Other than setting up Tuning parameters for your CST axis.) The firmware will handle the appropriate calculations and send the command in the required mode over EtherCAT to achieve the command on the MultiAxis.

What is the fastest possible period for which the recorder can record?

The Recorder records every RMP sample periodβ€”it's limited by your RMP sample rate. In practice, rates above 4kHz are uncommon with servo drives, though using I/O nodes only might allow faster sampling.

Variation: RapidCodeRT

What is RapidCodeRT?

What are the INtime RapidCodeRT development requirements?

  1. RSI license (rsi.lic) with the RapidCodeRT feature activated.
  2. Multi-Core INtime runtime USB key
  3. INtime SDK (for C++ development in INtime) (Warning: this is purchased separately from Tenasys, see INtime SDK)

πŸ”Ή Troubleshooting

RapidSetup: I am seeing a firmware mismatch error/warning.

Between trying different versions of RMP you will need to restart the INtime node. This will clear out the old firmware.

RapidSetup: I am seeing this error popup "The type initializer for 'RapidSetup.ContainerHelper' threw an exception"

Please try deleting the following folder:

C:\Users\<YourUser>\AppData\Local\RSI

This may resolve the issue. It seems to be related to .NET and its installation and access.

INtime RapidSetup: I am seeing RapidSetup display a license serial number that does not match my INtime USB dongle.

We have seen that if the user's PC has an INtime trial license activated, sometimes the INtime dongle/USB serial number is not recognized.

When this happens you must manually delete all INtime licenses and re-enter a new license string.

Reset the License using a GUI as of INtime 7:

  1. Navigate to INtime License Manager
  2. Click "Purge License"
  3. Enter your dongle license and make sure it displays "key locked" correctly.

*OR:**

Manual INtime Lic Reset:

  1. Navigate to C:\ProgramData\TenAsys\INtime
  2. Delete the file with the name lservrc
  3. Open "INtime Configuration" app
  4. Select "License Manager" section
  5. Enter your dongle license and make sure it displays "key locked" correctly.

πŸ”Ή RMP Comparison

How does RMP compare to PLC-based motion platforms?

RMP is a motion-first controller that exposes full programming languages instead of a function-block sandbox. You can implement motion, I/O, and sequencing in a single codebase using RapidCode (C++, C#, VB.NET, Python) and offload deterministic logic to Real-Time Tasks 📖 . This makes it practical to replace PLC logic while gaining modern tooling, libraries, and software workflows.

See Motion 📖 , IO 📖 , Real-Time Tasks 📖 , and API Comparison.

Why is RMP more open and interoperable on EtherCAT?

RMP is the EtherCAT MainDevice and is designed to interoperate across mixed-vendor SubDevices (drives, I/O, sensors) without lock-in. Some platforms tie you to a single vendor's devices and toolchain; RMP keeps you open. You use standard ESI/ENI workflows and map devices through NodeInfo/CustomNodeInfo, while accessing each device through NetworkNode objects.

See ENI File (EtherCAT.xml), NodeInfo & CustomNodeInfo files, and Network.

How does RMP integrate with the rest of my software stack?

RMP integrates directly into your application via RapidCode or over the network through RapidCodeRemote and rapidserver. RapidCodeRemote exposes the same model over gRPC, so any gRPC-capable language can integrate cleanly. This lets you connect motion control to any HMI, vision, database, or factory system using the languages and tools your team already knows.

See RapidCode and RapidCodeRemote.

What makes RMP a strong choice for PC-based motion control?

What does commissioning and support look like?

RapidSetupX streamlines setup and diagnostics, while Recorder and Error Logging make it easy to validate performance and troubleshoot issues. RSI has delivered high-performance motion control since 1998, and our support team includes motion control experts who can help accelerate commissioning and optimization.

See RapidSetupX, Recorder 📖 , and Error Logging 📖 .

Why not just use a commercial EtherCAT master stack?

A standalone master stack still leaves you to build the motion layer, device models, diagnostics, commissioning tools, and lifecycle support around it. RMP delivers the full controller stack, so you can focus on the machine rather than recreating the infrastructure. Many teams try a raw stack first and switch after realizing the hidden engineering and maintenance cost.

See RapidCode, RapidSetupX, and API Comparison.

What about open-source EtherCAT stacks?

Open-source stacks can be useful for experiments, but production systems need predictable support, validated releases, and accountability when issues arise. RMP comes with responsive, experienced motion-control support and a product roadmap you can rely on.

See RapidSetupX and Error Logging 📖 .

How fast is the API?

RapidCode is designed for very low overhead, with most API calls completing in sub-microsecond timeframes and motion commands issued in just a few microseconds. That speed lets you keep control logic lean and deterministic without sacrificing application structure.

See RapidCode and Real-Time Tasks 📖 .

How does RSI ensure interoperability and reliability?

RMP is validated with extensive EtherCAT interoperability testing across drives, I/O, and sensors, and every build runs full hardware-in-the-loop (HIL) tests. This reduces integration risk and keeps regressions out of customer systems.

See Network and ENI File (EtherCAT.xml).

How does RMP save engineering time versus DIY stacks?

RMP provides configuration, diagnostics, logging, and motion abstractions out of the box. Instead of building tools and glue code, you can go straight to machine behavior, tuning, and commissioning.

See RapidSetupX, Recorder 📖 , and Motion 📖 .

How does RMP handle mixed-vendor EtherCAT networks without custom glue code?

What makes RMP maintainable and upgrade-friendly?

RMP keeps motion logic in a clean, versioned API and isolates configuration in files, which reduces rework when you update firmware or add devices. A clear changelog and consistent tooling make upgrades predictable.

See RapidCode and Changelog.

How quickly can I get an axis moving?

The spin-an-axis guides are designed to get you from hardware to motion in minutes, with step-by-step setup and verification.

See Spin an axis and Spin an axis.

Why is a motion-first controller better than a general automation runtime?

RMP is optimized for deterministic motion profiles, motion state handling, and real-time coordination. You get a motion-native API instead of adapting a general automation runtime to high-performance motion workloads.

See Motion 📖 and Point-to-Point Motion 📖 .

How does RMP simplify debugging?

Because you develop in full programming languages, standard debuggers just work with your application code. Built-in Recorder and Error Logging let you capture motion data and faults without adding custom diagnostics.

See Recorder 📖 and Error Logging 📖 .

How does RMP scale to multiple machines or robots?

RMP supports multiple motion groups in a single controller using MultiAxis, so you can run multiple machines or robots with synchronized or independent motion from one RMP instance.

See MultiAxis and Path Motion 📖 .

How does RMP support modern software workflows and testing?

RMP fits into CI and unit test pipelines because you can test logic in standard languages and run controller code without custom runtimes. Use Phantom Axes 📖 to validate motion logic without hardware or HIL systems.

See RapidCode and Phantom Axes 📖 .

How does licensing work for OEM deployment?

Licensing is managed through the RSI portal with a single license file per machine, and no internet connection is required after initial setup.

See License.

How does RMP support AI-driven visual servoing and VLA workflows?

AI pipelines can compute vision-driven setpoints or VLA (vision-language-action) commands, and RMP can execute them via RapidCode or RapidCodeRemote. VLA models map visual observations and language instructions into low-level robot actions, and visual servoing closes the loop with camera feedback to continually correct motion. In a VLA workflow, model outputs (target positions or velocity targets) can feed directly into MoveSCurve or MoveSCurve, and RMP updates the trajectory each control cycle for low-latency, on-the-fly adaptation.

AI inference and motion control stay connected in a deterministic loop, including on Linux systems such as NVIDIA Jetson.

See RapidCode, RapidCodeRemote, and Install RMP for Linux (Ubuntu).

πŸ”Ή Glossary

A

  • Absolute Encoder: An encoder that reports position without needing a homing routine after power-up.
  • Absolute Motion: A point-to-point move to a specific target position (not relative). See Absolute Motion 📖 .
  • Acceleration: Rate of change of velocity used to shape motion profiles.
  • API (Application Programming Interface): The code surface used to control RMP, such as RapidCode or RapidCodeRemote.
  • Axis: A single controllable motion channel represented by Axis in RapidCode.
  • Axis Count: Number of configured axes; may include Phantom Axes 📖 .

B

  • Backlash Compensation: Software correction for mechanical play. See Backlash Compensation 📖 .
  • Bandwidth: Frequency range where a control loop can respond effectively.

C

  • CANopen: A fieldbus standard from CAN in Automation; used over EtherCAT via CoE.
  • Cartesian Robot: A robot with orthogonal axes and Cartesian kinematics; some articulated kinematics are supported as well. See Cartesian Robot 📖 .
  • Camming: Nonlinear master/follower motion based on a cam table. See Camming 📖 .
  • Capture/Probe: Latches position on a trigger for measurement. See Capture/Probe 📖 .
  • CiA 402 (DS402): The CANopen device profile for drives and motion control. It defines standardized behavior, operation modes, and control/status words. The RMP simplifies and abstracts CiA 402 for drive control over EtherCAT via CoE.
  • CoE (CANopen over EtherCAT): EtherCAT mailbox protocol that carries CANopen objects. CoE uses SDOs for configuration and PDOs for cyclic process data. See PDO vs. SDO.
  • Compensator: Applies correction to motion commands (e.g., flatness or error compensation). See Compensator 📖 .
  • Configuration: Axis/network setup parameters that define system behavior. See Configuration 📖 .
  • Controlword / Statusword: CiA 402 words used to command and report drive state.
  • Coordinated Motion: Multiple axes move together as a coordinated system. See MultiAxis and Path Motion 📖 .
  • Counts per Unit (User Units): Scaling between encoder counts and engineering units. See Counts Per Unit (User Units) 📖 .
  • CustomNodeInfo / NodeInfo: XML files that define EtherCAT device mapping and customization. See NodeInfo & CustomNodeInfo files.
  • Cycle Time (Sample Rate): The period of the control loop and EtherCAT data exchange. See SampleRateSet.
  • Cyclic Synchronous Position (CSP): Drive mode where target position is updated cyclically by the RMP each network cycle. This is the most common mode for RMP.
  • Cyclic Synchronous Velocity (CSV): Drive mode where target velocity is updated cyclically by the RMP each network cycle.
  • Cyclic Synchronous Torque (CST): Drive mode where target torque is updated cyclically by the RMP each network cycle.

D

  • DC (Distributed Clocks): EtherCAT time synchronization between MainDevices/SubDevices to reduce jitter.
  • Dedicated I/O: Axis-specific inputs/outputs. See Dedicated IO 📖 .
  • Determinism: Predictable timing and response, essential for real-time motion control.
  • Drive: A servo or stepper amplifier that closes the motor control loop and executes motion commands.

E

  • E-Stop (Emergency Stop): A safety stop action for immediate motion termination. See Stopping Actions 📖 .
  • eRMP: RMP running on a distributed INtime node. See Run a sample app on eRMP.
  • EoE (Ethernet over EtherCAT): Tunnels Ethernet frames through EtherCAT. See EoE - Ethernet over EtherCAT.
  • ENI File (EtherCAT.xml): The EtherCAT Network Information file used by RMP to initialize the network. See ENI File (EtherCAT.xml).
  • Encoder: Position feedback device used by drives; can be incremental or absolute.
  • ESI File: EtherCAT Slave Information file from the device vendor, used to build ENI configurations. See ENI File (EtherCAT.xml).
  • EtherCAT (R): An open real-time Ethernet network originally developed by Beckhoff. (Learn more at the EtherCAT Technology Group)
  • EtherCAT MainDevice/SubDevice: Modern terms for the controller and devices on an EtherCAT network (legacy terms: master/slave). In RapidCode, a device is represented by a NetworkNode.
  • EtherCAT State Machine: Standard device states including INIT, PRE-OP, SAFE-OP, and OPERATIONAL.
  • Error Logging: Read and analyze controller errors. See Error Logging 📖 .

F

  • Feed Rate: Scale factor that adjusts commanded motion speed. See Feed Rate 📖 .
  • Fieldbus: An industrial network used for motion and I/O, such as EtherCAT.
  • Firmware: A real-time executable that uses shared memory to communicate with the API. Our firmwares are rmp (motion control), rmpnetwork (contains the EtherCAT master), and rttaskmanager (runs Real-Time Tasks 📖 ).
  • Firmware Object Count: Defines how many firmware objects (axes, nodes, I/O) are allocated. See Firmware Object Count 📖 .
  • FoE (File over EtherCAT): EtherCAT mailbox file-transfer protocol. See FoE - File over EtherCAT.
  • FSoE (Safety over EtherCAT): Functional safety protocol over EtherCAT. See FSoE - Safety over EtherCAT.
  • Following Error / Position Error: Difference between commanded and actual position. See Position Error 📖 .
  • Free Run: EtherCAT mode without Distributed Clocks synchronization. See Network 📖 .

G

  • G-Code: CNC/robot program format for motion paths. See G-Code 📖 .
  • Gantry: Coordinated axes that move a shared load. See Gantry 📖 .
  • General Purpose I/O: Discrete/analog I/O on EtherCAT nodes. See General Purpose IO 📖 .
  • Gearing (Electronic Gearing): Links a follower axis to a master axis with a ratio. See Gearing 📖 .
  • gRPC: Remote procedure call framework used by RapidCodeRemote. See RapidCodeRemote.

H

  • Hard Real-Time: Real-time system where missing a deadline is a failure.
  • Hardware Limits: Physical or drive-enforced limits. See Hardware Limits 📖 .
  • Homing: Procedure to establish a known reference position. See Homing 📖 .

I

  • INtime: The RTOS used for Windows-based RMP systems; not required for Linux installations. See INtime Real-Time OS.
  • Industrial PC (IPC): A PC designed for industrial environments and real-time control.
  • I/O (Input/Output): Digital or analog signals used for control and feedback. See IO 📖 .
  • IO-Link: Point-to-point industrial sensor/actuator interface. See IO Link.
  • IOPoint: RapidCode object for reading/writing individual data points. See IOPoint 📖 .
  • Interpolation: Generating intermediate setpoints between trajectory points, often used in streaming motion.

J

  • Jerk: Rate of change of acceleration; used in smooth motion profiles. See S-Curve Motion 📖 .
  • Jitter: Variation in timing between control cycles.

K

L

  • Latency: Time delay between a command and the resulting response.
  • Limit Switch: A hardware sensor used to detect end-of-travel. See Hardware Limits 📖 .

M

N

  • Network (EtherCAT Network): The collection of EtherCAT MainDevices and SubDevices. The network consists of the MainDevice (master) and connected SubDevices (NetworkNode). See Network.
  • NetworkNode: RapidCode object representing an EtherCAT node. See NetworkNode and RapidCode NetworkNode.
  • NIC (Network Interface Card): Ethernet adapter used for EtherCAT.

O

  • OEM (Original Equipment Manufacturer): A company that builds machines and integrates motion control into products.
  • Operational (OP) State: EtherCAT state where cyclic process data exchange is active.

P

  • PDO (Process Data Object): Cyclic real-time data exchange on EtherCAT. See PDO vs. SDO.
  • Phantom Axes: Virtual axes without hardware, used for configuration or simulation. See Phantom Axes 📖 .
  • PLC (Programmable Logic Controller): Industrial controller used for machine logic and sequencing. RMP can replace a PLC by running motion, I/O, and sequencing in RapidCode and Real-Time Tasks 📖 .
  • Position Error: Difference between commanded and actual position. See Position Error 📖 .
  • Post Trajectory Gearing: Applies gearing after a trajectory segment. See Post Trajectory Gearing 📖 .
  • Pre-Operational (PRE-OP) State: EtherCAT configuration state before cyclic data exchange.
  • Process Data: Cyclic data exchanged each EtherCAT cycle, typically via PDOs. See PDO vs. SDO.
  • PT / PVT / PVAJT: Streaming motion types using position-time, position-velocity-time, or position-velocity-acceleration-jerk-time arrays. See PT Streaming Motion 📖 , PVT Streaming Motion 📖 , and PVAJT Streaming Motion 📖 .

R

  • RapidCode: The RMP's primary API for C++, C#, VB.NET, and Python. See RapidCode.
  • RapidCodeRemote: gRPC-based API for remote control of RMP. See RapidCodeRemote. Internally it uses RapidCode and is served to users via rapidserver.
  • RapidCodeRT: Real-time C++ API for INtime-based applications. See Run a sample app in INtime in C++ and API Comparison.
  • RapidSetup: Windows GUI tool for configuration and diagnostics. See RapidSetup.
  • RapidSetupX: Newer, cross-platform configuration tool. See RapidSetupX.
  • Real-Time: Deterministic execution that meets timing deadlines.
  • Real-Time Tasks (RTTasks): Firmware tasks for deterministic logic that can help replace PLC code. See Real-Time Tasks 📖 .
  • Recorder: High-rate data capture/scope tool. See Recorder 📖 .
  • RMP: Rapid Motion Processor, the motion controller firmware and runtime.
  • RMPNetwork: The firmware process that manages EtherCAT network discovery and cyclic I/O exchange.
  • ROS 2: Open-source robotics framework used in many robot stacks. Nodes can be created with RapidCode or RapidCodeRemote.
  • RTOS: Real-time operating system or kernel (e.g., INtime or PREEMPT_RT Linux).

S

  • Sample Rate: Frequency of the RMP control loop and EtherCAT cycle. See SampleRateSet.
  • S-Curve Motion: Motion profile with non-constant, smoothed accelerations using Jerk Percent. See S-Curve Motion 📖 .
  • SDO (Service Data Object): Acyclic configuration/diagnostic data exchange on EtherCAT. See PDO vs. SDO.
  • Safe-Operational (SAFE-OP) State: EtherCAT state where outputs are safe and inputs are valid.
  • Servo Drive: A drive (also called an amplifier) that controls servo motors using position, velocity, or torque control modes.
  • Settling: Time within a tolerance band required to consider motion complete. See Settling 📖 .
  • Soft Limits / User Limits: Software-defined limits based on inputs or position. See User Limits 📖 .
  • Station Alias: EtherCAT node address alias used in network configuration. See ENI File (EtherCAT.xml).
  • Status & Faults: Axis and system status indicators. See Status & Faults 📖 .
  • Stopping Actions: Define how motion stops on events (e.g., E-Stop). See Stopping Actions 📖 .
  • Stopping Rates: Controlled deceleration parameters. See Stopping Rates 📖 .
  • Streaming Motion Sync Outputs: Output signals synchronized to streaming motion. See Streaming Motion Sync Outputs 📖 .
  • Sync Interrupts: Real-time sync events tied to EtherCAT timing. See Sync Interrupts 📖 .
  • SynqNet (R): Legacy motion controller offering high-performance servo control. (Learn more about MEI SynqNet)

T

  • Trajectory: Time-ordered sequence of setpoints for position/velocity.
  • Trapezoidal Motion: Profile with constant acceleration, cruise, and deceleration. Prefer S-Curve Motion when possible. See Point-to-Point Motion 📖 .
  • Tuning: Adjusting servo parameters for performance and stability. In RMP, tuning applies to CST mode; most users run CSP so tuning is handled by the servo drive. See Tuning.

U

  • User Limits: Software-defined limits triggered by inputs or positions; can also trigger Axis actions. See User Limits 📖 .
  • User Units: Engineering units defined by counts-per-unit scaling. See Counts Per Unit (User Units) 📖 .

V

  • Velocity Motion: Continuous motion at a target velocity. See Velocity Motion 📖 .
  • Vendor ID / Product Code: EtherCAT identifiers used to recognize devices during discovery. See VendorIdGet and ProductCodeGet.