APIs, concepts, guides, and more


RapidCode is an API that allows developers to quickly create EtherCAT machine control applications in C++, C#, VB.Net, and more. RapidCode provides a powerful, yet easy to use interface for EtherCAT motion controllers, servo/stepper drives and I/O nodes.

✨ Class Diagram

RapidCode API - Class Diagram

Class Description
MotionController Represents the RMP soft motion controller. This class provides an interface to general controller configuration, firmware upload/download, network, user limits and data recording. To make a MotionController object, use MotionController creation methods..
Axis Represents a single axis of motion control. This class provides an interface for commanding motion, reading trajectory parameters, homing, limit switch configuration, motor configuration, position capture, configuring filter (control law) parameters, electronic gearing and access to its NetworkNode. Get or create an Axis object using MotionController::AxisGet.
MultiAxis Represents multiple axes of motion control, allows you to map two or more Axis objects together for error propagation and commanding coordinated, synchronized motion. Create or get a MultiAxis object using MotionController::MultiAxisGet or MotionController::LoadExistingMultiAxis.
NetworkNode Represents an EtherCAT node / SubDevice (Drive, I/O Block, etc) on the network. This class provides an interface to all digital and analog I/O on the node, as well as the ability to read and write SDOs. Get or create a NetworkNode using MotionController::NetworkNodeGet or the Axis property, NetworkNode.
IOPoint Represents one specific point: Digital Output, Digital Input, Analog Output, or Analog Input. This class provides a helper interface to any I/O, regardless of where it resides: MotionController, Axis, or NetworkNode. To create an IOPoint, use IOPoint Creation Methods.
RTOS Represents the real-time operating system (INtime) when using RMP for Windows. This class provides static methods to start, stop, and restart INtime.
Cartesian::Robot Represents a collection of joints in Cartesian space with forward and inverse kinematics. This class provides an interface for 3D Path motion for any actuator, whether it be an articulated arm, a linear gantry, or a custom robot. Use Robot Creation Methods to make one using a MotionController, MultiAxis and a kinematic model. Visit the Path Motion or G-Code for more information on how to use the Robot class.
Cartesian::Gcode Represents a G-code program executor. This class provides an interface to load and run G-code programs with a callback interface for M-codes. An instance of this class is created by the Robot class, access it via the Robot.Gcode property.
RsiError Represents the error details thrown as an exception by all RapidCode classes. This class contains an error number/type, RSIErrorMessage, 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. Inherits from std::exception in C++ and System.Exception in C#.

🚀 Getting Started

See Getting Started for instructions to set up your development environment.

📖 Concepts

Explore our Concepts to learn more about the RapidCode API capabilities.

🌐 Subsections


 Sample Apps