RMP Windows - Master & Motion Controller programmed in C++, C#, VB, or Python

Overview:

  • Coordinated Axes: 128
  • Digital & analog IO: 10,000+
  • Supported nodes: 58 manufacturers (100+ SubDevices). Any CiA DS402 SubDevices can be supported.
  • Real-time deterministic: 500Hz ↔ 8KHz sample rate
  • Motion: Point-to-Point or Trajectory Streaming (PT, PVT, PVTAJ)
  • Advanced motion: 3D Interpolation, G Code, Robot.
  • Customers: 400+
  • CPU compatibility: (x86-64) Intel & AMD, (ARM64) Pi5
  • Support: Global presence

Architecture:

The RMP controller can run on any industrial PC. RMP Windows uses INtime RTOS to ensure real-time deterministic exchange with EtherCAT SubDevices. One CPU core, minimal RAM, and an Ethernet port are reserved for the RT core to process Master and Motion Firmware. This architecture allows user’s application software and diagnostic tools to run on Windows, while the RapidCode API Libraries (https://support.roboticsys.com/rmp/topics) bridge between user applications and the RMP Motion Firmware.

RapidCode is an Application Programming Interface (API) that allows developers to quickly create machine control applications in C++, C#, VB, or Python. Broken down into simple classes — Controller, Axis and Multi Axis and IO.

Features:

  • Motion:
    • Point-to-Point: Absolute or relative SCurve or Trapezoidal moves.
    • Modify: Modify Point-to-Point and Velocity motion trajectories on-the-fly.
    • Streaming: Streaming trajectories to command synchronized move using PT, PVT, PVTAJ.
    • Path: Define simple lines and arcs to generate complex 2D and 3D paths.
    • Velocity: Simple constant velocity moves.
    • Hold: Queue moves for conditional execution.
    • Gantry: Addition or summation of delta position between two axes to prevent skew.
    • Camming: Creating a move based on a defined table between the master and slave axes.
    • Gearing: Electronic gearing based on a ration between master and slave axis.
    • Capture: High-precision position latching with inputs like touch probe, encoder index pulse, or home switches.
    • Phantom Axes: Utilize virtual axes for machine simulation.
    • Feed Rate: Adjust speed of a loaded motion profile without changing the profile itself, also known as Retrace.
    • Multi-Axis: Map multiple axes for synchronized and coordinated motion.
    • 3D Interpolation: Provide a unified control interface in Cartesian space for diverse robots or machines.
    • G-Code: Execute 2D or 3D motion based on G-Code syntax.
    • Conveyor Tracking: Synchronize a moving conveyor with multi-axis (pick & place, dispensing, painting).
    • Dual Loop Feedback: Use secondary feedback to close position loop. Torque mode only.
  • IO:
    • Real-Time Triggers: Set up triggers in motion firmware for outputs or events based on conditions in real-time deterministic manner.
    • IO Control: Manage digital IO, analog IO, and dedicated inputs.
    • Dedicated IO: Control dedicated IOs such as Home, HW negative/positive limits.
  • Configuration:
    • Homing: Perform drive-based or master-based homing routines.
    • Safety (FSoE): Use RMP as part of a Black Channel to cover certification requirements for IEC 61508 and IEC 61784-3.
    • Interrupts: Trigger host interruptions at a specific period/sample rate cycle.
    • Settling: Define axis's settling criteria conditions for completion of a move and generate events.
    • Backlash Compensator: Adjust command position based on motion direction. Also control the rate based on hysteresis limits.
    • Linear Compensator: Create a compensation table to map the accuracy of a single linear or rotary axis.
    • 3D Compensator: Create a compensation table to map the accuracy of a single axis relative to another or two axes.
    • Tuning: Drive-based tuning closing the position loop in the drive, or master-based tuning closing the loop in RMP using PID or PIV in torque or velocity mode.
  • Data:
    • Recording: Collect and buffer any data available in controller firmware memory.
    • Error Logging: Record motion control object errors for debugging.