The RMP Motion Controller API
MultiAxisabstract

The MultiAxis object allows you to map two or more axes together and command synchronized motion. More...

Attributes

RapidCode Objects
MotionControllerrsiControl
 

Functions

virtual void AxisAdd (Axis *axis)=0
 Add an Axis to a MultiAxis group. More...
 
virtual void AxesAdd (Axis **axes, int32_t axisCount)=0
 
virtual void AxisRemoveAll ()=0
 Remove all axes from a MultiAxis group.s. More...
 
virtual int32_t AxisCountGet ()=0
 Get the number axes in the MultiAxis class. More...
 
virtual AxisAxisGet (int32_t index)=0
 Get the Axis class used in this MultiAxis class. More...
 
virtual const char *const UserLabelGet ()=0
 Get the MultiAxis User defined Label. More...
 
virtual void UserLabelSet (const char *const userLabel)=0
 Set the MultiAxis User defined Label. More...
 
virtual double VectorVelocityGet ()=0
 Get the vector velocity. More...
 
virtual void VectorVelocitySet (double velocity)=0
 Set the vector velocity. More...
 
virtual double VectorAccelerationGet ()=0
 Get the vector acceleration. More...
 
virtual void VectorAccelerationSet (double acceleration)=0
 Set the vector acceleration. More...
 
virtual double VectorDecelerationGet ()=0
 Get the vector deceleration. More...
 
virtual void VectorDecelerationSet (double deceleration)=0
 Set the vector deceleration. More...
 
virtual double VectorJerkPercentGet ()=0
 Get the vector jerk percent. More...
 
virtual void VectorJerkPercentSet (double jerkPercent)=0
 Set the jerk percent for a vector move. More...
 
virtual void MoveVector (const double *const position)=0
 Point-to-point vector move. More...
 
virtual void MoveVectorRelative (const double *const relativePosition)=0
 
virtual double PathTimeSliceGet ()=0
 Set the time slice for the Path. More...
 
virtual void PathTimeSliceSet (double seconds)=0
 Set the time slice for the Path. More...
 
virtual void PathRatioSet (const double *const ratio)=0
 Set the scale factor ratios for each axis. More...
 
virtual double PathRatioGet (int32_t index)=0
 
virtual void PathBlendSet (bool blend)=0
 Set the blending attribute. More...
 
virtual void PathPlanTypeSet (RSIPathPlanType type)=0
 Set the path motion planning type. More...
 
virtual RSIPathPlanType PathPlanTypeGet ()=0
 Get the path motion planning type. More...
 
virtual void PathListStart (const double *const startPosition)=0
 Start a line and arc point list for path motion. More...
 
virtual void PathLineAdd (const double *const position)=0
 Add a line segment to the path. More...
 
virtual void PathArcAdd (const double *const center, double angle)=0
 Add an arc segment to the path. More...
 
virtual void PathListEnd ()=0
 End a line and arc point list for path motion. More...
 
virtual void PathMotionStart ()=0
 Start the path motion. More...
 
virtual void MoveTrapezoidal (const double *const position, const double *const vel, const double *const accel, const double *const decel)=0
 Point-to-point trapezoidal move. More...
 
virtual void MoveTrapezoidal (const double *const position)=0
 Point-to-point trapezoidal move using default values from each Axis. More...
 
virtual void MoveSCurve (const double *const position, const double *const vel, const double *const accel, const double *const decel, const double *const jerkPct)=0
 Point-to-point S-Curve Move. More...
 
virtual void MoveSCurve (const double *const position)=0
 Point-to-point S-Curve motion using default Axis values. More...
 
virtual void MoveVelocity (const double *const velocity, const double *const accel)=0
 Velocity move. More...
 
virtual void MoveVelocity (const double *const velocity)=0
 Velocity move using all the Axis default values for accelerations. More...
 
virtual void MoveRelative (const double *const relativePosition, const double *const vel, const double *const accel, const double *const decel, const double *const jerkPct)=0
 Command a relative point-to-point S-Curve motion. More...
 
virtual void MoveRelative (const double *const relativePosition)=0
 Command a relative point-to-point S-Curve motion using default values from each Axis. More...
 
virtual void MoveVelocitySCurve (const double *const velocity, const double *const accel, const double *const jerkPct)=0
 Velocity move with non-constant acceleration. More...
 
virtual uint16_t MotionIdExecutingGet ()=0
 
virtual uint16_t MotionElementIdExecutingGet ()=0
 
virtual int32_t AxisMapCountGet ()=0
 Get the number of Axis objects in the Axis map.
 
virtual uint64_t AddressGet (RSIMultiAxisAddressType addressType)=0
 Get the host address for some location on the MultiAxis. More...
 
virtual int32_t NumberGet ()=0
 Get the axis number. More...
 
virtual void TriggeredModify ()=0
 Modify the currently execuing motion to decelerate the Axis or MultiAxis to a zero velocity IDLE state. More...
 
virtual void Stop ()=0
 Stop an axis. More...
 
virtual void Resume ()=0
 Resume an axis. More...
 
virtual void EStop ()=0
 E-Stop an axis. More...
 
virtual void EStopAbort ()=0
 E-Stop, then abort an axis. More...
 
virtual void EStopModify ()=0
 E-Stop with a deceleration rate. More...
 
virtual void EStopModifyAbort ()=0
 
virtual void Abort ()=0
 Abort an axis. More...
 
virtual void ClearFaults ()=0
 Clear all faults for an Axis or MultiAxis. More...
 
virtual void AmpEnableSet (bool enable)=0
 Enable all amplifiers. More...
 
virtual void Map ()=0
 Writes the axis mapping relationship to the Controller. More...
 
virtual void Unmap ()=0
 Removes the axis mapping relationship of the MultiAxis. More...
 
virtual bool IsMapped ()=0
 Check to see if the axis mapping is active on the firmware. More...
 
virtual void FeedRateSet (double rate)=0
 Set the feed rate for an Axis. More...
 
virtual double FeedRateGet ()=0
 Get the axis feed rate. More...
 
virtual RSIState StateGet ()=0
 Get the Axis or MultiAxis state. More...
 
virtual RSISource SourceGet ()=0
 Get the source of an error state for an Axis or MultiAxis. More...
 
virtual const char *const SourceNameGet (RSISource source)=0
 Get the name (string) of the source of an error for an Axis or MultiAxis. More...
 
virtual int32_t MotionDoneWait ()=0
 Waits for a move to complete. More...
 
virtual int32_t MotionDoneWait (int32_t waitTimeoutMilliseconds)=0
 Waits for a move to complete. More...
 
virtual bool MotionDoneGet ()=0
 Check to see if motion is done and settled. More...
 
virtual bool StatusBitGet (RSIEventType bitMask)=0
 Return the state of a status bit. More...
 
virtual void InterruptEnableSet (bool enable)=0
 Control interrupts for this class. More...
 
virtual void InterruptWake ()=0
 Wake all threads waiting for an interrupt on this Axis. More...
 
virtual double StopTimeGet ()=0
 Get Stop Event deceleration time. More...
 
virtual void StopTimeSet (double seconds)=0
 Set the deceleration time for a Stop Event. More...
 
virtual double EStopTimeGet ()=0
 Get E-Stop Event deceleration time. More...
 
virtual void EStopTimeSet (double seconds)=0
 Set the deceleration time for an E-Stop Event. More...
 
virtual double MotionDelayGet ()=0
 Get the delay (seconds) that will occur before motion starts. More...
 
virtual void MotionDelaySet (double seconds)=0
 Set the time (seconds) that a motion will wait before starting. More...
 
virtual uint16_t MotionIdGet ()=0
 Get the motion identifier. More...
 
virtual void MotionIdSet (uint16_t id)=0
 Set the Motion identifier. More...
 
virtual double MotionFinalVelocityGet ()=0
 Gets final velocity value (!!! only used if FINAL_VEL motion attribute is used !!!) More...
 
virtual void MotionFinalVelocitySet (double finalVelocity)=0
 Sets final velocity value in UserUnits (!!! only used if FINAL_VEL motion attribute is used !!!) More...
 
virtual RSIMotionHoldType MotionHoldTypeGet ()=0
 Get the motion hold attribute type. More...
 
virtual void MotionHoldTypeSet (RSIMotionHoldType type)=0
 Set the motion hold type. More...
 
virtual int32_t MotionHoldGateNumberGet ()=0
 Returns the Motion Hold Gate number that the axis or multiaxis is set to. More...
 
virtual void MotionHoldGateNumberSet (int32_t gateNumber)=0
 Assigns the axis or multiaxis Motion Hold Gate number to the specified controller gate. More...
 
virtual double MotionHoldTimeoutGet ()=0
 Get the motion hold timeout value. More...
 
virtual void MotionHoldTimeoutSet (double seconds)=0
 Set the motion hold timeout value. More...
 
virtual bool MotionHoldGateGet ()=0
 Get the state of the hold gate. More...
 
virtual void MotionHoldGateSet (bool hold)=0
 Set the Motion Hold Gate. More...
 
virtual int32_t MotionHoldAxisNumberGet ()=0
 Gets the Axis number. More...
 
virtual void MotionHoldAxisNumberSet (int32_t number)=0
 Sets the Axis number for Motion Hold. More...
 
virtual double MotionHoldAxisPositionGet ()=0
 Gets the Axis position. More...
 
virtual void MotionHoldAxisPositionSet (double position)=0
 Sets the Axis position. More...
 
virtual RSIUserLimitLogic MotionHoldAxisLogicGet ()=0
 Get the logic when holding for Axis ActualPosition.
 
virtual void MotionHoldAxisLogicSet (RSIUserLimitLogic logic)=0
 Set the logic when holding for Axis ActualPosition.
 
virtual uint64_t MotionHoldUserAddressGet ()=0
 Gets the Motion Hold User Address. More...
 
virtual void MotionHoldUserAddressSet (uint64_t address)=0
 Sets the Motion Hold User Address. More...
 
virtual int32_t MotionHoldUserMaskGet ()=0
 Gets the Motion Hold User Mask. More...
 
virtual void MotionHoldUserMaskSet (int32_t holdMask)=0
 Sets the Motion Hold User bit mask. More...
 
virtual int32_t MotionHoldUserPatternGet ()=0
 Gets the Motion Hold user bit pattern. More...
 
virtual void MotionHoldUserPatternSet (int32_t pattern)=0
 Sets the Motion Hold User pattern bit mask. More...
 
virtual void MotionAttributeMaskDefaultSet ()=0
 Restore the motion attribute mask to the RapidCode default.
 
virtual bool MotionAttributeMaskOnGet (RSIMotionAttrMask maskOn)=0
 Check to see if a particular motion attribute mask is turned on. More...
 
virtual void MotionAttributeMaskOnSet (RSIMotionAttrMask maskOn)=0
 Turn on a particular motion attribute mask. More...
 
virtual void MotionAttributeMaskOffSet (RSIMotionAttrMask maskOff)=0
 Turn off a particular motion attribute mask. More...
 
virtual void MovePT (RSIMotionType type, const double *const position, const double *const time, int32_t pointCount, int32_t emptyCount, bool retain, bool final)=0
 A move commanded by a list of position and time points. More...
 
virtual void MovePVT (const double *const position, const double *const velocity, const double *const time, int32_t pointCount, int32_t emptyCount, bool retain, bool final)=0
 Move commanded by list of positions, velocities, and times. More...
 
virtual void MovePVAJT (const double *const position, const double *const velocity, const double *const acceleration, const double *const jerk, const double *const time, int32_t pointCount, int32_t emptyCount, bool retain, bool final)=0
 
virtual void StreamingOutputAdd (int32_t onMask, int32_t offMask, uint64_t address)=0
 
virtual void StreamingOutputAdd (int32_t onMask, int32_t offMask, uint64_t address, int32_t ptPointIndex)=0
 Applies the on and off bitmasks to the controller's memory address when the motion reaches the specified streaming point index. Used to toggle Digital Outputs and/or memory. More...
 
virtual void StreamingOutputAdd (RapidCode::IOPoint *point, bool on)=0
 
virtual void StreamingOutputAdd (RapidCode::IOPoint *point, bool on, int32_t ptPointIndex)=0
 Sets the state of the specified IOPoint when the motion reaches the specified streaming point index. More...
 
virtual void StreamingOutputsClear ()=0
 Clear the contents of the Streaming Output List. More...
 
virtual void StreamingOutputsEnableSet (bool enable)=0
 Sets whether Streaming Output is enabled (true) or disabled (false). More...
 
virtual RSIEventType InterruptWait (int32_t milliseconds)=0
 Suspend the current thread until an interrupt arrives from the controller. More...
 
virtual const char *const InterruptNameGet ()=0
 Get the text name of an interrupt type. More...
 
virtual int32_t InterruptSampleTimeGet ()=0
 Get the sample timer value when the last interrupt was generated. More...
 
virtual int32_t InterruptSourceNumberGet ()=0
 Get the number (or index) of the object (Axis, Motor, etc) that generated the interrupt. More...
 
virtual uint16_t InterruptMotionIdGet ()=0
 Get the 16-bit MotionId - only valid if RSIEventType == MOTION_DONE.
 
virtual void InterruptMaskClear ()=0
 Clear the interrupt mask so no interrupts will be generated.
 
virtual void InterruptMaskAllSet ()=0
 Set all the bits of the interrupt mask to get interrupts for ALL sources.
 
virtual void InterruptMaskOnSet (RSIEventType eventType)=0
 Set a bit in the interrupt mask so you will get interrupts for the given RSIEventType.
 
virtual void InterruptMaskOffSet (RSIEventType eventType)=0
 Clear a bit in the interrupt mask so you won't get interrupts for the given RSIEventType.
 
virtual bool InterruptMaskOnGet (RSIEventType eventType)=0
 Get the status of the interrupt mask for the given RSIEventType.
 
virtual uint64_t InterruptUserDataGet (uint32_t userDataIndex)=0
 Get the user data associated with the interrupt. More...
 
virtual const char *const VersionGet ()=0
 Get the RSI RapidCode version. More...
 
virtual int32_t MpiVersionMajor ()=0
 Get the major MPI version.
 
virtual int32_t MpiVersionMinor ()=0
 Get the minor MPI version.
 
virtual int32_t MpiVersionRelease ()=0
 Get the release MPI version.
 
virtual int32_t RSIVersionMajor ()=0
 Get the major RSI version.
 
virtual int32_t RSIVersionMinor ()=0
 Get the minor RSI version.
 
virtual int32_t RSIVersionMicro ()=0
 Get the micro RSI version.
 
virtual int32_t RSIVersionPatch ()=0
 Get the patch RSI version.
 
virtual int32_t ErrorLogCountGet ()=0
 Get the number of software errors in the error log. More...
 
virtual const RsiError *const ErrorLogGet ()=0
 Get the next RsiError in the log. More...
 
virtual void ErrorLogClear ()=0
 Clear the error log. More...
 
virtual void ThrowExceptions (bool state)=0
 Configure a class to throw exceptions. More...
 
virtual void CacheEnableSet (RSICacheObject cache, bool enable, uint32_t expirationMilliseconds)=0
 Configure a class to cache data for specified time. More...
 
virtual const char *const RsiErrorMessageGet (RSIErrorMessage msg)=0
 Get the RSI-specific error message text for a specific RSIErrorMessage.
 
virtual const char *const ErrorMessageGet (RSIErrorMessage msg)=0
 Get the detailed text message for an RSIErrorMessage.
 
virtual bool WarningMsgCheck (RSIErrorMessage msg)=0
 Check to see if an RSIErrorMessage is a warning (true) or not (false).
 
virtual void Trace (bool state)=0
 Enables/Disables trace output. More...
 
virtual void TraceMaskOnSet (RSITrace maskOn)=0
 Turn on a particular trace output mask. More...
 
virtual bool TraceMaskOnGet (RSITrace maskOn)=0
 Check to see if a particular trace output mask is turned on. More...
 
virtual void TraceMaskOffSet (RSITrace maskOff)=0
 Turn off a particular trace output mask. More...
 
virtual void TraceMaskClear ()=0
 Clear the trace output mask. More...
 
virtual void TraceFileSet (const char *const fileName)=0
 Channels Tracing messages to specified file. More...
 
virtual void TraceFileClose ()=0
 Stops Logging to the file. More...
 
virtual void TraceInjectMessage (RSITrace traceLevel, const char *const message)=0
 Add a message to the Trace Log. More...
 

Description

The MultiAxis object allows you to map two or more axes together and command synchronized motion.

This class provides an interface to a group or collection of axes. When axes are mapped together it is easir to command synchronized, coordinated, and/or with path motion.

Examples
MultiaxisMotion.cpp, PathMotion.cpp, PVTmotionMultiAxis.cpp, SyncOutputWithMotion.cpp, Template.cpp, and UpdateBufferPoints.cpp.