Rapid Sequencer is a powerful new tool that allows you to easily create real-time deterministic programs.

Previously in RMP real-time deterministic actions needed to be pre-loaded into the firmware with functions like UserLimits or MotionHolds. Now you can create entire programs that run on the firmware in real-time.

Basic Usage

RapidSequencer does not have a concept of objects. Everything is a function call in RapidSequencer. It is built off of the RMP motion controller and has many of the same functions. However, there is an important difference in syntax.

RapidSequencer functions will have one extra parameter than RapidCode function that needs an object reference (such as Axis, IO, RMPNetworkNode). That extra parameter is the first parameter of RapidSequencer functions, is uint32 type, and represents the id of the object. For example,

  • Axis 0 is (uint32) 0,

  • Axis 1 is (uint32) 1,

  • IO 0 is (uint32) 0,

  • RMPNetworkNode 1 is (uint32) 1 and so on.

A few usages are shown below.

RapidCode➡ RapidSequencer

Rapid Code


Axis axis0 = controller.AxisGet(0);



IO io0 = controller.IOGet(0);

io0.DigitalOutSet(1, true);

IODigitalOutSet(0, 1, true);

IO io = controller.IOGet(0); io.NetworkNode.DigitalOutSet(1, true);

NetworkNodeDigitalOutSet(0, 1, true);

int32_t serialNum = controller.SerialNumberGet();

int32 serialNum = ControllerSerialNumberGet();