The RMP Motion Controller APIs
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. More...

Functions

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

Attributes

MotionControllerrsiControl
 Gets the parent MotionController object.
 

Description