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?

RMP uses the INtime RTOS. Visit this page from Tenasys (INtime) to see supported NICs: Supported Network Interface Cards.

⭐ We recommend using an Intel-based Ethernet chipset.

Additional NIC models can be supported. Please issue your request to tech@roboticsys.com.

What type of CPUs and chipsets does RMP support?

RMP uses the INtime RTOS. Visit this page from Tenasys (INtime) to see supported CPUs and chipsets:

https://tenasys.com/resources/knowledge-base/knowledge-base-page/?pageNum=47

What is the difference between RapidCode, RapidCodeRT, RapidSequencerWin, and RapidSequencerRT?

We have a full page dedicated to this comparison, please see here: RMP API Comparison (Windows vs RT).

⚙️ RapidCode API

What is RapidCode?

A software API that allows you to rapidly develop applications to suit all your motion and I/O needs.

To support RapidCode, Windows OS version can be 32-bit or 64-bit.

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

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

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

➡️ 32-bit

rsi.h → Primary Header file.

RapidCode.lib → [32bit] - Import Library.

RapidCode.dll → [32bit] - C++ dll.

➡️ 64-bit

rsi.h → Primary Header file.

RapidCode64.lib → [64bit] - Import Library.

RapidCode64.dll → [64bit] - C++ dll.

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

➡️ 32-bit

RapidCode.NET.dll → [32bit] - .NET Framework 4.5 DLL

RSI.System.dll → [32bit] - (only if using the Axis XML API)

❗ NOTE
 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 Framework 4.5 DLL

RSI.System64.dll → [64bit] - (only if using the Axis XML API)

❗ NOTE
 is not needed, but some users might want to save Axis configurations that are not stored in the motion controller such as user units. 

What version of Visual Studio can I use?

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

What .NET frameworks can I use to build my application?

RapidCode.NET.dll is built targeting .NET Framework 4.6.1, therefore you can build applications using the following frameworks:

.NET Standard

❌ Not Supported

.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

❌ Not Supported

.NET

5✅ 6✅ 7✅

❗ 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 here.

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.

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

For first time:

  1. Generate an ENI file when your controller is set to 4kHz. (One Time per network.)

  2. Click on the Motion Controller tab

    1. Change Sample Rate from 1000 to 4000

    2. Discover Network

    3. Generate ENI File

    4. Network Start

For future runs:

  1. Open RapidSetup

    1. Change Sample Rate from 1000 to 4000

    2. Network Start

In code using RapidCode:

  1. MotionController.CreateFromSoftware()

    1. controller.SampleRateSet(4000)

    2. controller.NetworkStart()

Can we just move one Axis in a MultiAxis?

Yes by telling the other axes to go where they already are.

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.

Variation: RapidCodeRT

What is RapidCodeRT?

Please navigate to: 🔹 What is RapidCodeRT?

What are the RapidCodeRT development requirements?
  1. RSI licensce (rsi.lic) with the RapidCodeRT feature activated.

  2. Multi-Core INtime runtime USB key

  3. INtime SDK (for C++ development in INtime) [⚠️ this is purchased separetly from Tenasys, see here]

⚙️ RapidSequencer API

What is RapidSequencer?

Please navigate to the RapidSequencer page.

What are the RapidSequencer API development requirements?
  1. RSI/RMP SDK licensce (rsi.lic)

  2. Multi-Core INtime runtime USB key

To use Real-Time (RT) version you will also need:

  1. RSI/RMP SDK licensce (rsi.lic) with the RapidSequencerRT feature activated.

What do I need to use RapidSequencerAPI?

You will only need RapidCode.NET.dll and RapidSequencerAPI.NET.dll to compile a program using the RapidSequencerAPI when running RapidSequencer on Windows. To run a RapidSequencer on a real-time (INtime) system, you will need an RMP+ license and a system set up with at least two INtime nodes.

Where can I find sample code for using the RapidSequencerAPI?

Visit our API documentation site to see sample applications.

Can I run RapidSequencer and RMP on the same INtime node?

We only recommend that you use a separate node for each.

How do I create new RapidSequencer instances or find existing instances?

The RapidSequencerFactory contains the following static methods:

  • Create: Creates a RapidSequencer process.

  • Discover: Discovers existing RapidSequencer process.

See this webpage for more information.

What port number do I specify as the gRPC port?

You may use any port number you wish, but we recommend avoiding port number conflicts with any well-known or reserved ports. A list may be found here. The sequencer can be connected to via a gRPC channel by specifying the IP address and the port number to connect to.

How many sequencer scripts can I run on a single RapidSequencer instance?

There is currently no limit to the number of scripts that can run on an instance, but each additional running script will slow down the performance of the RapidSequencer.

Do I have to compile a RapidSequencer script every time my program runs?

Compiling a RapidSequencer script generates a file with the .sqbin extension, which is the compiled version of the script. The path to the .sqbin file is can be found in the CompileSuccess object returned by a compile request as the CompileSuccess.bin_path member.

A RapidSequencer run request takes in a CompileSuccess object which is used to specify where the .sqbin file is located. To reuse previous compilation results, you may either save the previous CompileSuccess objects or create a new one and specify the bin_path member.

More information about the available sequencer methods can be found here.

Does a RapidSequencer instance terminate when my program terminates?

RapidSequencer instances are their own separate processes, and will not terminate unless explicitly commanded to via the Shutdown request.

🛠️ 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.

Glossary

E

  • EtherCAT®: Ethernet for Control Automation Technology (EtherCAT) was developed by Beckhoff. It’s based on the CANopen protocol and on Ethernet but differs from internet communication or network communications in being specifically optimized for industrial automation control. (Learn more here)

R

  • RapidCode: this the RMP's API. It allows developers to quickly create EtherCAT machine control applications in C++, C#, VB.Net, or Steeplechase VLC. RapidCode provides a powerful, yet easy to use interface for EtherCAT motion controllers, servo/stepper drives and I/O nodes.

  • RMP: Rapid Motion Processor (RMP) is our product code for the RDK (Rapid Development Kit) as a whole. It includes the RapidCode API, RapidSetup Tool, and some other software tools.

S

  • SynqNet®: our old motion controller that offers maximum servo performance and flexibility for demanding motion systems. OEMs can use MechaWare® and Bode Tool™ to implement perfect-fit control solutions using “off-the-shelf” hardware. The SynqNet network provides the convenience and low cost of 100BaseT cabling with the benefits of real-time determinism. (Learn more here)

Last updated