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 char * UserLabelGet ()=0
 Get the MultiAxis User defined Label. More...
 
virtual void UserLabelSet (char *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 (double *position)=0
 Point-to-point vector move. More...
 
virtual void MoveVectorRelative (double *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 (double *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 (double *startPosition)=0
 Start a line and arc point list for path motion. More...
 
virtual void PathLineAdd (double *position)=0
 Add a line segment to the path. More...
 
virtual void PathArcAdd (double *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 (double *position, double *vel, double *accel, double *decel)=0
 Point-to-point trapezoidal move. More...
 
virtual void MoveTrapezoidal (double *position)=0
 Point-to-point trapezoidal move using default values from each Axis. More...
 
virtual void MoveSCurve (double *position, double *vel, double *accel, double *decel, double *jerkPct)=0
 Point-to-point S-Curve Move. More...
 
virtual void MoveSCurve (double *position)=0
 Point-to-point S-Curve motion using default Axis values. More...
 
virtual void MoveVelocity (double *velocity, double *accel)=0
 Velocity move. More...
 
virtual void MoveVelocity (double *velocity)=0
 Velocity move using all the Axis default values for accelerations. More...
 
virtual void MoveRelative (double *relativePosition, double *vel, double *accel, double *decel, double *jerkPct)=0
 Command a relative point-to-point S-Curve motion. More...
 
virtual void MoveRelative (double *relativePosition)=0
 Command a relative point-to-point S-Curve motion using default values from each Axis. More...
 
virtual void MoveVelocitySCurve (double *velocity, double *accel, double *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 char * 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, double *position, double *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 (double *position, double *velocity, double *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 (double *position, double *velocity, double *acceleration, double *jerk, double *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 char * 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 char * 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 RsiErrorErrorLogGet ()=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 char * RsiErrorMessageGet (RSIErrorMessage msg)=0
 Get the RSI-specific error message text for a specific RSIErrorMessage.
 
virtual char * 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 *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 *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.